技术干货|使用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中的数据

相关推荐
森林-几秒前
MyBatis 从入门到精通(第一篇)—— 框架基础与环境搭建
java·tomcat·mybatis
爱敲代码的TOM4 分钟前
Grafana+Loki+Alloy构建企业级日志平台
grafana
lifallen1 小时前
字节跳动Redis变种Abase:无主多写架构如何解决高可用难题
数据结构·redis·分布式·算法·缓存
纪元A梦1 小时前
Redis最佳实践——安全与稳定性保障之高可用架构详解
redis·安全·架构
小阳睡不醒2 小时前
小白成长之路-部署prometheus监控平台
prometheus
三体世界3 小时前
测试用例全解析:从入门到精通(1)
linux·c语言·c++·python·功能测试·测试用例·测试覆盖率
ZzzZZzzzZZZzzzz…4 小时前
Nginx_Tomcat综合案例
运维·nginx·tomcat·负载均衡·rhce·反向代理·https加密服务
潇I洒12 小时前
若依4.8.1打包war后在Tomcat无法运行,404报错的一个解决方法
java·tomcat·ruoyi·若依·404
无敌的神原秋人13 小时前
关于Redis不同序列化压缩性能的对比
java·redis·缓存
恣艺15 小时前
Redis列表(List):实现队列/栈的利器,底层原理与实战
数据库·redis·list