Grafana+Telegraf+Influxdb监控Tomcat集群方案

发布时间 2023-09-12 17:48:43作者: qk523

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 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容器,访问如下地址: