prometheus监控JVM(接入tomcat)

一、整合jmx_exporter及tomcat

1、 jmx_exporter下载地址

https://github.com/prometheus/jmx_exporter/releases

2、 tomcat配置文件下载地址

https://github.com/prometheus/jmx_exporter/blob/main/example_configs/tomcat.yml

3、创建tomcat_exporter目录

root@localhost \~# mkdir /usr/local/jmx_prometheus

将下载的jmx_exporter的jar包及tomcat.yml文件放在此目录下

二、配置相关参数

1、配置tomcat.yml

将tomcat.yml文件中的所有Catalina字段全部替换成Tomcat

2、在/usr/local/tomcat/bin/catalina.sh文件中添加JVM参数

复制代码
PROMETHEUS_JMX_EXPORTER_OPTS="-javaagent: /usr/local/tomcat_exporter /jmx_prometheus_javaagent-0.20.0.jar =12345: /usr/local/tomcat_exporter /tomcat.yml"
JAVA_OPTS="$JAVA_OPTS $PROMETHEUS_JMX_EXPORTER_OPTS"

注:以上javaagent为jmx_exporter的jar包所在路径,12345端口可以在不占用端口的情况下自定义,后面为tomcat的yml配置文件路径。

3、启动tomcat并查看业务端口及12345端口是否启动,查看tomcat启动日志,查看是否报错

root@localhost \~# cd /usr/local/tomcat/bin/

root@localhost \~# ./startup.sh

4、访问prometheus jmx exporter HTTP服务获取监控数据

http://192.168.1.11:12345/metrics

三、prometheus监控部署及配置

部署略

1、配置

root@nginx-rtmp prometheus# cd /usr/local/prometheus

root@nginx-rtmp prometheus# vi prometheus.yml

最后添加:

复制代码
  - job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
    - targets: ['localhost:9090']

  - job_name: "Tomcat"
    static_configs:
      - targets: ["192.168.1.11:12345"]

root@nginx-rtmp prometheus# systemctl start prometheus.service

2、登录查看是否有数据

http://192.168.1.11:9090/

相关推荐
Allocator8 分钟前
彻底解决ubuntu上腾讯会议无法共享问题
linux·ubuntu·腾讯会议
anxiao_m10 分钟前
内外网文件交换如何兼顾安全与效率?2026企业工具选型攻略
运维·服务器·安全
青瓦梦滋18 分钟前
【在线五子棋对战】在线用户
服务器·网络·网络协议
程序员-Benothing25 分钟前
Linux编码转换命令:iconv、dos2unix、base64、md5sum
linux·运维·服务器
重生之小比特27 分钟前
【Linux系统】06 进程概念
linux
RoboWizard35 分钟前
搭配W790芯片组的超频服务器内存(架构选型)FAQ合集
运维·服务器·架构
2402_8828938637 分钟前
Linux 进程概念详解(上)—— 从冯诺依曼体系到僵尸进程与孤儿进程
linux·运维·服务器
qetfw42 分钟前
Debian iptables 防火墙:默认拒绝、SNAT 与 DNAT 验证
linux·服务器·debian·php
格物致胜工业数智技术44 分钟前
皮尔磁纸板进料安全方案运维实录:O300传感器用了三年的个人体会
运维·安全
夜之眷属1 小时前
服务启动即崩:InetAddress.getLocalHost() 抛 UnknownHostException 排查记
java·运维·后端·docker