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

相关推荐
永远睡不够的入7 分钟前
C++继承详解
java·c++·redis
Meepo_haha13 分钟前
Tomcat闪退问题以及解决原因(三种闪退原因有解决办法)
java·tomcat·firefox
Yu_摆摆1 小时前
windows部署prometheus+windows_exporter+grafana+alertmanager实现监控CPU、内存、磁盘并邮件告警
windows·grafana·prometheus
计算机学姐1 小时前
基于SpringBoot的网吧管理系统
java·spring boot·后端·spring·tomcat·intellij-idea·mybatis
念越10 小时前
蓝桥杯17届功能测试模拟1期题目及解析(1)
功能测试·蓝桥杯·测试用例·场景法
百锦再11 小时前
Java 并发编程进阶,从线程池、锁、AQS 到并发容器与性能调优全解析
java·开发语言·jvm·spring·kafka·tomcat·maven
姚青&12 小时前
Pytest 测试用例生命周期管理-yield
测试用例·pytest
wyt53142912 小时前
Redis的安装教程(Windows+Linux)【超详细】
linux·数据库·redis
vpk11213 小时前
Docker Compose 安装 Redis
redis·docker·容器
紫丁香14 小时前
pytest_自动化测试3
开发语言·python·功能测试·单元测试·集成测试·pytest