grafana+prometheus+tomcat 监控tomcat
1、tomcat作为java项目首选的部署容器。但是,在做测试,或者是在运维管理生产服务器的时候,想要监控tomcat的实时运行情况,却不是那么容易的
2、grafana(已安装和prometheus在同一台)-->前端数据展示
3、prometheus(已安装)-->实时数据库存储数据
二、获取jvm_exporter
(1)浏览器访问:
https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/
(2)页面中显示了多个版本,可以根据自己需要选择版本,找到你需要的jar包下载地址:
https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.14.0/jmx_prometheus_javaagent-0.14.0.jar
(3)进入tomcat服务器,执行下面命令,下载jvm_exporter:
wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.14.0/jmx_prometheus_javaagent-0.14.0.jar
(4)拷贝下载的jar包,到tomcat的bin文件夹中
三、配置tomcat.yaml文件
在tomcat的bin文件夹下,新建tomcat.yaml文件,黏贴
--- lowercaseOutputLabelNames: true lowercaseOutputName: true rules: - pattern: 'Catalina<type=GlobalRequestProcessor, name=\"(\w+-\w+)-(\d+)\"><>(\w+):' name: tomcat_$3_total labels: port: "$2" protocol: "$1" help: Tomcat global $3 type: COUNTER - pattern: 'Catalina<j2eeType=Servlet, WebModule=//([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), name=([-a-zA-Z0-9+/$%~_-|!.]*), J2EEApplication=none, J2EEServer=none><>(requestCount|maxTime|processingTime|errorCount):' name: tomcat_servlet_$3_total labels: module: "$1" servlet: "$2" help: Tomcat servlet $3 total type: COUNTER - pattern: 'Catalina<type=ThreadPool, name="(\w+-\w+)-(\d+)"><>(currentThreadCount|currentThreadsBusy|keepAliveCount|pollerThreadCount|connectionCount):' name: tomcat_threadpool_$3 labels: port: "$2" protocol: "$1" help: Tomcat threadpool $3 type: GAUGE - pattern: 'Catalina<type=Manager, host=([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), context=([-a-zA-Z0-9+/$%~_-|!.]*)><>(processingTime|sessionCounter|rejectedSessions|expiredSessions):' name: tomcat_session_$3_total labels: context: "$2" host: "$1" help: Tomcat session $3 total type: COUNTER - pattern: ".*"
四、修改catalina.sh文件
进入tomcat的bin文件夹,编辑catalina.sh文件,增加如下:
JAVA_OPTS="-javaagent:./jmx_prometheus_javaagent-0.14.0.jar=3088:./tomcat.yaml" # jmx_prometheus_javaagent-0.14.0.jar 这个根据你自己下载的jvm_export修改 # 30188 监控的端口,自行设置
五、验证tomcat监控
执行./startup.sh 看能否正常启动, 如果没有报错,可以执行
curl -s http://localhost:3088
能正常返回信息,就说明监控正常
六、修改prometheus.yml文件
在prometheus解压后的文件夹中,找到prometheus.yml文件,编辑,在最后面添加
vim prometheus.yml - job_name: 'tomcat_export' static_configs: - targets: ['被监控机器ip:3088']
# 30188是前面在tomcat中配置的监控端口
注意:如果被监控的服务器和 安装了prometheus的机器不是同一台,还需要保证机器间网络和防火墙通畅
七、启动prometheus
1、在prometheus解压的文件夹中,执行:./prometheus
2、验证prometheus
在浏览器中访问:http://prometheus机器ip:9090
注意:prometheus机器的防火墙要开放9090端口,浏览器才能正常访问
想查看prometheus监控jvm信息,可以在界面中执行,jvm_info
八、启动grafana
1、在安装了grafana的机器上,执行:systemctl restart grafana-server
2、配置grafana+prometheus
浏览器访问 http://grafana机器ip:3000, 用admin\admin登录
添加datasource,选择prometheus,配置信息,保存
引入模板
可以输入:8563
或者可以用:3457