之前出過一篇文章關于 “自定義監控指標實現業務 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