技术干货|使用Prometheus+Grafana监控Tomcat实例详解
前面推文中我们分享了Prometheus和Grafana部署及操作知识,现在我们要开始学会利用普罗米修斯+Grafana搭建监控系统。今天给大家分享使用Prometheus+Grafana监控Tomcat实例。
01下载jmx_prometheus_javaagent包
下载jmx_prometheus_javaagent包,jar包下载地址:
https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.3.1/
jmx_prometheus_javaagent-0.3.1.jar
02配置config.yaml文件
创建一个config.yaml文件,并在config.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|connecti
onCount):'
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
03将jar和配置文件拷贝到指定目录
将下载好的jar包和config.yaml文件拷贝tomcat 服务器上tomcat安装的bin 目录下
04修改catalina.sh
修改tomcat的启动文件 ,修改bin目录下的catalina.sh文件,大概在255行后加入如图第257行内容(路径根据实际情况改写)
JAVA_OPTS="-javaagent:jmx_prometheus_javaagent-0.3.1.jar=39081:config.yaml"
#39081为端口号,端口号可以自己随意定义
05测试是否可收集到数据
重启tomcat,访问服务器上的39081(这个端口应该与JAVA_OPTS中设置的为准)端口,查看是否采集到数据,也可以浏览器直接访问ip+端口。
06prometheus中添加监控目标
- job_name: tomcat
static_configs:
- targets:
- 192.168.1.131:39081
07grafana中导入模板
在grafana中导入8563模板,在导入模板时,需要将job中的内容修改为tomcat,否则无法获取到tomcat中的数据