Tomcat

JMX(英语:Java Management Extensions,即Java管理扩展)是Java平台上为应用程序、设备、系统等植入管理功能的框架。

JMX_exporter搭配不同的配置文件可提供不同系统的metrics数据。

下载

本次我们监控tomcat,所以只需要准备jmx_exportertomcat.yml即可。

# 创建目录
mkdir -p /ops/jmx_exporter && cd /ops/jmx_exporter

# 下载jmx_exporter
wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.12.0/jmx_prometheus_javaagent-0.12.0.jar

# 下载tomcat.yml
wget https://raw.githubusercontent.com/prometheus/jmx_exporter/master/example_configs/tomcat.yml

# 目录结构
tree /ops
/ops
└── jmx_exporter
    ├── jmx_prometheus_javaagent-0.12.0.jar
    └── tomcat.yml

1 directory, 2 files

启动

JMX_exporter支持jar包启动直接添加javaagent,但是这里监控的是tomcat,一般是修改path/bin/catalina.sh添加JAVA_OPTS,让jar包跟随tomcat启动。

根据tomcat启动顺序,不建议直接修改catalina.sh,可以新建path/bin/setenv.sh写入内容,启动tomcat会直接加载,这里我们监控tomcat使用38080端口,如果有多个tomcat实例,请注意每一个实例需要有不同的监控端口。

# 新建添加内容,path为你tomcat目录
vi path/bin/setenv.sh

export JAVA_OPTS="-javaagent:/ops/jmx_exporter/jmx_prometheus_javaagent-0.12.0.jar=38080:/ops/jmx_exporter/tomcat.yml"

# 重新启动tomcat
cd path/bin
sh shutdown.sh
sh startup.sh

# 防火墙放行
firewall-cmd --add-port=38080/tcp --permanent
firewall-cmd --reload

这时候访问ip:38080即可查看metrics数据,后面接任何路径不影响数据展示,如ip:38080/metrics,所以在Pormetheus配置文件中,无需修改metrics_path默认路径。

添加Prometheus配置

加入需求监控的主机,然后重启Prometheus或者热加载配置。

# 修改加入内容
vi prometheus.yml

-scrape_configs:
  - job_name: JMX
    static_configs:
    - targets:
      - ip:38080
      labels:
        instance: Tomcat_name

# 重启Prometheus
# 如果你是systemd管理
systemctl restart prometheus
如果你是supervisor管理
supervisorctl restart prometheus

Last updated