【Kubernetes】Tomcat 启用 Prometheus 监控指标
之前出过一篇文章关于 “自定义监控指标实现业务 HPA 伸缩” ,其中使用了 webapp 应用的指标数据(JVM),接下来,这篇文章将介绍如何在通过 Tomcat 部署的 webapp 中启用 Metrics 指标,一起来看看吧!
- 下方为《自定义监控指标实现业务 HPA 伸缩》博客链接
- https://blog.csdn.net/mm1234556/article/details/150494365
1、下载 JMX Exporter 及配置文件
# 下载 JMX Exporter
# https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/<最新版本号>/jmx_prometheus_javaagent-<最新版本号>.jar
https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.20.0/jmx_prometheus_javaagent-0.20.0.jar
# 下载通用配置文件
https://github.com/prometheus/jmx_exporter/blob/release-0.20.0/example_configs/tomcat.yml
2、配置 Tomcat 使用 JMX Exporter
2.1、基本步骤
# 编辑 %CATALINA_HOME%\bin\catalina.bat 或 $CATALINA_HOME/bin/catalina.sh,设置 JAVA_OPTS 添加 javaagent 参数
# Linux
export JAVA_OPTS="$JAVA_OPTS -javaagent:$CATALINA_HOME/jmx/jmx_prometheus_javaagent-0.20.0.jar=9404:$CATALINA_HOME/jmx/tomcat.yml"
# windows
set JAVA_OPTS=%JAVA_OPTS% -javaagent:%CATALINA_HOME%\jmx\jmx_prometheus_javaagent-0.20.0.jar=9404:%CATALINA_HOME%\jmx\tomcat.yml
# 重启 Tomcat 并验证,浏览器访问 http://localhost:9404 可查看到 jvm 指标
2.2、此处举例在 K8s-pod 中配置
# 查看容器 id
docker ps |grep webapp
# 进入容器查看 tomcat_webapp 的部署路径
docker exec -it 0cbf20f3be76 /bin/bash
# 将 jmx_xx.jar 和 tomcat.yml 拷贝进容器中 tomcat 根目录下
docker cp ./jmx 0cbf20f3be76:/etc/test/tomcat-webapp-1.0.0-linux-x64
# 配置 catalina.sh / catalina.bat,推荐新建一个 setenv.sh,此处已有 setenv.sh,修改即可
docker cp 0cbf20f3be76:/etc/test/tomcat-webapp-1.0.0-linux-x64/bin/setenv.sh ./
vi setenv.sh
-----
# set JAVA_OPTS
if [ -f "$WEBAPP_ROOT/bin/javaopts.config" ]; thenconfig_value=$(cat $WEBAPP_ROOT/bin/javaopts.config)
fi
JAVA_OPTS="$JAVA_OPTS $config_value"
JAVA_OPTS="$JAVA_OPTS -javaagent:$WEBAPP_ROOT/jmx/jmx_prometheus_javaagent-0.20.0.jar=9404:$WEBAPP_ROOT/jmx/tomcat.yml"
-----
docker cp setenv.sh 0cbf20f3be76:/etc/test/tomcat-webapp-1.0.0-linux-x64/bin/setenv.sh
# 重启容器
docker restart 0cbf20f3be76
# 查看 webapp 的进程是否添加 JAVA_OTPS 参数
docker exec -it 0cbf20f3be76 ps -ef |grep 9404
# 验证 metrics 配置成功
docker exec -it 0cbf20f3be76 curl localhost:9404
3、配置 Prometheus 拉取 Metrics
- 配置 Prometheus 拉取 Metrics 可参考下方博客
- https://blog.csdn.net/mm1234556/article/details/150492509