技术干货|使用Prometheus+Grafana监控Tomcat实例详解

前面推文中我们分享了Prometheus和Grafana部署及操作知识,现在我们要开始学会利用普罗米修斯+Grafana搭建监控系统。今天给大家分享使用Prometheus+Grafana监控Tomcat实例。

01下载jmx_prometheus_javaagent包

下载jmx_prometheus_javaagent包,jar包下载地址:

复制代码
https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.3.1/jmx_prometheus_javaagent-0.3.1.jar

02配置config.yaml文件

创建一个config.yaml文件,并在config.yaml文件中写入以下内容:​​​​​​​

复制代码
---lowercaseOutputLabelNames: truelowercaseOutputName: truerules:- pattern: 'Catalina<type=GlobalRequestProcessor, name=\"(\w+-\w+)-(\d+)\"><>(\w+):'name: tomcat_$3_totallabels:port: "$2"protocol: "$1"help: Tomcat global $3type: COUNTER- pattern: 'Catalina<j2eeType=Servlet, WebModule=//([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), name=([-a-zA-Z0-9+/$%~_-|!.]*),J2EEApplication=none, J2EEServer=none><>(requestCount|maxTime|processingTime|errorCount):'name: tomcat_servlet_$3_totallabels:module: "$1"servlet: "$2"help: Tomcat servlet $3 totaltype: COUNTER- pattern: 'Catalina<type=ThreadPool, name="(\w+-\w+)-(\d+)"><>(currentThreadCount|currentThreadsBusy|keepAliveCount|pollerThreadCount|connectionCount):'name: tomcat_threadpool_$3labels:port: "$2"protocol: "$1"help: Tomcat threadpool $3type: GAUGE- pattern: 'Catalina<type=Manager, host=([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), context=([-a-zA-Z0-9+/$%~_-|!.]*)><>(processingTime|sessionCounter|rejectedSessions|expiredSessions):'name: tomcat_session_$3_totallabels:context: "$2"host: "$1"help: Tomcat session $3 totaltype: COUNTER

03将jar和配置文件拷贝到指定目录

将下载好的jar包和config.yaml文件拷贝tomcat 服务器上tomcat安装的bin 目录下

04修改catalina.sh

修改tomcat的启动文件 ,修改bin目录下的catalina.sh文件,大概在255行后加入如图第257行内容(路径根据实际情况改写)​​​​​​​

复制代码
JAVA_OPTS="-javaagent:jmx_prometheus_javaagent-0.3.1.jar=39081:config.yaml"#39081为端口号,端口号可以自己随意定义

05测试是否可收集到数据

重启tomcat,访问服务器上的39081(这个端口应该与JAVA_OPTS中设置的为准)端口,查看是否采集到数据,也可以浏览器直接访问ip+端口。

06prometheus中添加监控目标​​​​​​​

复制代码
- job_name: tomcatstatic_configs:- targets:- 192.168.1.131:39081

07grafana中导入模板

在grafana中导入8563模板,在导入模板时,需要将job中的内容修改为tomcat,否则无法获取到tomcat中的数据

相关推荐
yangshicong3 小时前
第11章:结构化输出与数据提取 —— 让 AI 直接返回你想要的数据格式
数据库·人工智能·redis·python·langchain·ai编程
汽车仪器仪表相关领域4 小时前
Kvaser Hybrid Pro 2xCAN/LIN 双通道可编程CAN/LIN通讯接口:一机双模可编程,汽车车身混合总线测试专用设备
人工智能·功能测试·安全·fpga开发·汽车·压力测试
一路向北·重庆分伦4 小时前
09:Redis-高级特性与原理
redis
qq_265153376 小时前
Redis在游戏服务器中怎么实现开合服数据同步?
服务器·redis·游戏·游戏服务器
ElevenS_it18810 小时前
Redis监控实战:内存使用+命中率+连接数三类核心指标接入Zabbix+分级告警完整配置方案
运维·网络·redis·mybatis·zabbix
测试员周周10 小时前
【Appium 系列】第14节-断言与验证 — Validator 的设计
android·人工智能·python·功能测试·ios·单元测试·appium
回眸&啤酒鸭10 小时前
【回眸】嵌入式软件单元测试工具链实战指南
开发语言·单元测试·白盒测试
雨辰AI12 小时前
完整版信创微服务国产化架构实战:Nacos+Seata+Redis + 人大金仓(生产可落地)
数据库·redis·微服务·架构·政务
Mr. zhihao12 小时前
Redis 内存管理深度解析:过期删除与内存淘汰策略
数据库·redis·缓存
Mr. zhihao12 小时前
Redis 持久化完全指南:从 RDB、AOF 到 MP-AOF
redis