部署Prometheus
(1)安装
下载安装包:
解压安装包:
tar -zxvf prometheus-2.42.0.linux-amd64.tar.gz
mv prometheus-2.42.0.linux-amd64 /opt/prometheus-2.42.0
(2)启动
cd /opt/prometheus-2.42.0
./prometheus
部署jmx-exploger(用于集成到tomcat实施监控指标采集)
(1)下载
(2)安装
#将jmx_prometheus_javaagent-0.3.1.jar放入Tomcat安装目录bin下
mv jmx_prometheus_javaagent-0.3.1.jar /opt/tomcat-8.5.87/bin
#tomcat
/opt/tomcat-8.5.87/bin目录下创建配置文件config.yaml,并写入以下内容(这块儿内容跟使用的grafana仪表盘模板有关):
wercaseOutputLabelNames: 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
#修改/opt/tomcat-8.5.87/bin/catalina.sh文件中的JAVA_OPTS变量,加入javaagent相关配置
JAVA_OPTS="$JAVA_OPTS -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -javaagent:/opt/tomcat-8.5.87/bin/jmx_prometheus_javaagent-0.3.1.jar=30018:/opt/tomcat-8.5.87/bin/config.yaml"
(3重启Tomcat
(4) 验证监控是否生效
curl -s http://127.0.0.1:30018
30018端口正是我们在catalina.sh添加到JAVA_OPTS上的javaagent端口
响应(本次请求采集的各项监控指标数据):

Prometheus新增Tomcat监控Job
(1)我们新建一个名为tomcat-exploder的json文件,用于配置job,内容如下
[
{
"targets": [
"127.0.0.1:30018" //监控数据采集地址,必填
],
"labels": {
"group": "ES-SQL", //任意标签,不作要求
"app": "Tomcat", //任意标签,不作要求
"hostname": "Q-ALA2-OMP-01" //任意标签,不作要求
}
}
]
(2)将json文件添加到到prometheus配置文件中
# ------------------------------------------ES-SQL Tomcat-------------------------------------
- job_name: 'es-sql-tomcat'
file_sd_configs:
- files:
- /opt/prometheus-2.28.0/json/tomcat-exporter.json
该Tomcat监控job也可以直接在prometheus.yaml中添加,像这样:
scrape_configs:
- job_name: 'es-sql-tomcat'
static_configs:
- targets: ['localhost:8080', 'localhost:8081']
labels:
group: 'production'
但是有些情况,将job定义写到一个json文件里更灵活
(3)在Prometheus WebUI查看监控数据


可以看到我们新增的es-sql-tomcat job状态是正常的,我们进入Graph标签页查询个数据试试,
首先我们可以手动请求下exploder获取采集数据,找一个指标查询下,例如我们找到jvm_memory_bytes_used这个指标,

执行查询,输入表达式:jvm_memory_bytes_used{job="es-sql-tomcat",group="ES-SQL"}

可以查询出值来就ok了。
接入grafana
(1)导入一个现成的grafana仪表盘面板
下载地址:https://grafana.com/grafana/dashboards/8563-jvm-dashboard/
下载完成后导入:


最后点击“import”导入即可,展示:

(2)也可以自定义面板
