使用jmx_exporter来监控tomcat,并推送给Prometheus。 此文档用来记录一下
tomcat已经安装好的 不再安装
项目地址:电梯直达
下载jmx_exporter
1
2
3
|
wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.12.0/jmx_prometheus_javaagent-0.12.0.jar
mkdir /usr/local/jmx
mv jmx_prometheus_javaagent-0.12.0.jar /usr/local/jmx/
|
编写jmx_exporter配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
cd /usr/local/jmx/
# 也可以下载官方配置修改 https://github.com/prometheus/jmx_exporter/blob/master/example_configs/tomcat.yml
vim tomcat.yml
# 写入以下内容
---
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: ".*" #让所有的jmx metrics全部暴露出来
|
配置启动参数
java应用一般两种启动方式。 一种是jar包启动方式,一种是tomcat方式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# jar包方式启动
java -javaagent:/usr/local/jmx/jmx_prometheus_javaagent-0.12.0.jar=38081:/usr/local/jmx/tomcat.yml -jar yourJar.jar
# tomcat启动 需要配置catalina.sh 我们是用catalina.sh来启动tomcat的
vim your-tomcat/bin/catalina.sh
#加入以下内容
JAVA_OPTS="-javaagent:/usr/local/jmx/jmx_prometheus_javaagent-0.12.0.jar=38081:/usr/local/jmx/tomcat.yml"
#如果你是使用startup.sh来启动tomcat 可以配置setenv.sh文件
#注意setenv.sh和catalina.sh 二选一配置 不要配置重复了
cat > your-tomcat/bin/setenv.sh << EOF
JAVA_OPTS="-javaagent:/usr/local/jmx/jmx_prometheus_javaagent-0.12.0.jar=38081:/usr/local/jmx/tomcat.yml"
EOF
#配置好 重启tomcat
web访问http://<your-ip>:38081 即可看到监控的指标
|
Prometheus配置
1
2
3
4
5
6
|
## prometheus.yml文件配置
- job_name: 'tomcat'
static_configs:
- targets: ['172.16.7.124:38081']
labels:
appname: 'tomcat'
|
grafana配置
关于jmx的监控,grafana官方有个模板提供电梯直达,导入grafana中,稍微修改就可使用
完成图展示:
Author
dylan
LastMod
2019-11-13
License
如需转载请注明文章作者和出处。谢谢!