Grafana+Telegraf+Influxdb监控Tomcat集群方案
Grafana
docker pull grafana/grafana mkdir -p /var/data/docker/grafana docker inspect docker.io/grafana/grafana docker cp grafana:/var/lib/grafana/ /var/data/docker/grafana ID=$(id -u) docker run -d --user $ID --name=grafana -v /var/data/docker/grafana:/var/lib/grafana -p 3000:3000 grafana/grafana #默认账号密码 admin/admin
Influxdb
docker pull tutum/influxdb docker run -d -p 8083:8083 -p 8086:8086 -e ADMIN_USER="root" -e INFLUXDB_INIT_PWD="root" -e PRE_CREATE_DB="telegraf" --name influxdb tutum/influxdb 各个参数含义: -d:容器在后台运行 --name:容器名称 -e:指定环境变量,容器中可使用该环境变量 -p:将容器内端口映射到宿主机端口,格式为 宿主机端口:容器内端口;8083是influxdb的web管理工具端口,8086是influxdb的HTTP API端口
Telegraf
docker run --name telegraf -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -v /var/data/docker/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf -v /var/data/docker/telegraf/telegraf.conf:/etc/telegraf/telegraf.d/telegraf.conf -d telegraf
#拉取镜像 docker pull telegraf #创建容器 mkdir -p /var/data/docker/telegraf docker run --name telegraf -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -d telegraf #把telegraf相关配置拷贝到宿机 docker cp telegraf:/etc/telegraf/telegraf.conf ./telegraf #采集Tomcat数据:若是想监控多个Tomcat,这里配置多个[[inputs.tomcat]]便可,可是必定要配置不一样的tags标识。 [[inputs.tomcat]] url = "http://192.168.1.190:8080/manager/status/all?XML=true" # Tomcat访问帐号密码 必须配置 username = "tomcat" password = "tomcat" timeout = "5s" # 标识Tomcat名称、根据实际项目部署状况而定 [inputs.tomcat.tags] host = "blog" [[inputs.tomcat]] url = "http://192.168.1.190:8081/manager/status/all?XML=true" # Tomcat访问帐号密码 必须配置 username = "tomcat" password = "tomcat" timeout = "5s" # 标识Tomcat名称、根据实际项目部署状况而定 [inputs.tomcat.tags] host = "bbs" #采集数据到influxdb [[outputs.influxdb]] # urls = ["udp://localhost:8089"] # UDP endpoint example urls = ["http://localhost:8086"] # required,这个url改为本身host ## The target database for metrics (telegraf will create it if not exists). database = "telegraf" # 这个会在influx库建立一个库 #执行拷贝 docker cp /var/data/docker/telegraf/telegraf.conf telegraf:/etc/telegraf/telegraf.conf docker cp /var/data/docker/telegraf/telegraf.conf telegraf:/etc/telegraf/telegraf.d/telegraf.conf docker restart telegraf
###报错: [telegraf] Error running agent: no outputs found, did you provide a valid config file?
执行命令: docker cp /var/data/docker/telegraf/telegraf.conf telegraf:/etc/telegraf/telegraf.d/telegraf.conf
Tomcat-8
修改位于conf下的tomcat-users.xml文件: <tomcat-users> <user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status"/> </tomcat-users> 新建conf/Catalina/localhost 文件 manager.xml 注意tomcat web 管理路径 (docBase) <Context privileged="true" antiResourceLocking="false" docBase="/data/tools/tomcat-9897/webapps/manager"> <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" /> </Context> 重启Tomcat容器,访问如下地址: