参考资料:
https://blog.csdn.net/qq_23435961/article/details/106101186
https://blog.csdn.net/qq_43417559/article/details/109049477
jar包下载地址:
https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.3.1/jmx_prometheus_javaagent-0.3.1.jar
本文章在上述两篇文章的基础上根据自己的搭建过程做记录
1. 在需要监控的tomcat 服务器上做3步
第一步
1)下载 jmx_prometheus_javaagent-0.3.1.jar jar包,新建一个配置文件,命名config.yaml,
内容如下,完全复制即可
---
lowercaseOutputLabelNames: true
lowercaseOutputName: true
whitelistObjectNames: ["java.lang:type=OperatingSystem"]
blacklistObjectNames: []
rules:
- pattern: 'java.lang<type=OperatingSystem><>(committed_virtual_memory|free_physical_memory|free_swap_space|total_physical_memory|total_swap_space)_size:'
name: os_$1_bytes
type: GAUGE
attrNameSnakeCase: true
- pattern: 'java.lang<type=OperatingSystem><>((?!process_cpu_time)\w+):'
name: os_$1
type: GAUGE
attrNameSnakeCase: true
第二步
将 下载好的jar包和新建的配置文件放到,服务器上 tomcat 的bin 目录下
第三步
修改tomcat的启动文件 ,修改bin目录下的catalina.sh文件,大概在255行后加入如图第257行内容(路径根据实际情况改写)
JAVA_OPTS="-javaagent:jmx_prometheus_javaagent-0.3.1.jar=39081:config.yaml"
[root@node-3 bin]# vim catalina.sh
...
252 if [ -z "$JSSE_OPTS" ] ; then
253 JSSE_OPTS="-Djdk.tls.ephemeralDHKeySize=2048"
254 fi
255 JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS"
256 #关闭tomcat程序前需要注释下行(2第57行)内容,否则无法关闭。或直接kill掉监控进程在进行关闭tomcat.
257 JAVA_OPTS="-javaagent:/srv/program/tomcat-8.5.47/bin/jmx_prometheus_javaagent-0.14.0.jar=30018:/srv/program/tomcat-8.5.47/bin/config.yaml"
30018冒号后面为config.xml 路径 因为在同级目录也可以这么写
第四步 查看是否安装成功
重启tomcat,访问服务器上的39081端口,查看是否采集到数据,也可以浏览器直接访问ip+端口
[root@sfa_1-47 sfa_haid]# curl -s http://192.168.1.47:39081/ | more
# HELP jmx_config_reload_success_total Number of times configuration have successfully been reloaded.
# TYPE jmx_config_reload_success_total counter
jmx_config_reload_success_total 0.0
# HELP jmx_config_reload_failure_total Number of times configuration have failed to be reloaded.
# TYPE jmx_config_reload_failure_total counter
jmx_config_reload_failure_total 0.0
# HELP jvm_buffer_pool_used_bytes Used bytes of a given JVM buffer pool.
# TYPE jvm_buffer_pool_used_bytes gauge
jvm_buffer_pool_used_bytes{pool="direct",} 381497.0
jvm_buffer_pool_used_bytes{pool="mapped",} 0.0
# HELP jvm_buffer_pool_capacity_bytes Bytes capacity of a given JVM buffer pool.
# TYPE jvm_buffer_pool_capacity_bytes gauge
jvm_buffer_pool_capacity_bytes{pool="direct",} 381497.0
jvm_buffer_pool_capacity_bytes{pool="mapped",} 0.0
# HELP jvm_buffer_pool_used_buffers Used buffers of a given JVM buffer pool.
# TYPE jvm_buffer_pool_used_buffers gauge
jvm_buffer_pool_used_buffers{pool="direct",} 5.0
jvm_buffer_pool_used_buffers{pool="mapped",} 0.0
# HELP jvm_threads_current Current thread count of a JVM
# TYPE jvm_threads_current gauge
jvm_threads_current 155.0
2. 在普罗米修斯服务器上修改配置文件
prometheus.yml中增加
- job_name: 'tomcat'
file_sd_configs:
#引用刚才编写的配置文件
- files: ['/etc/prometheus/tomcat.yml']
refresh_interval: 15s
下一步新建 配置文件 tomcat.yml 问件内新增配置
[root@localhost prometheus]# vim /opt/prometheus/sd_config/tomcat.yml
- targets:
- 192.168.1.47:39081
labels:
idc: bj_company
service: tomcat
然后从起普罗米修斯,去grafana上查看是否显示数据