prometheus 监控tomcat

  • Post author:
  • Post category:其他


参考资料:


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上查看是否显示数据



版权声明:本文为weixin_43560924原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。