Ubuntu Tomcat监控如何实现
导读:Ubuntu 上 Tomcat 监控落地方案 一 基础巡检与日志监控 进程与服务状态 查看进程:执行 ps -ef | grep tomcat 获取 PID、启动参数与占用资源。 查看服务:使用 sudo systemctl statu...
Ubuntu 上 Tomcat 监控落地方案
一 基础巡检与日志监控
- 进程与服务状态
- 查看进程:执行 ps -ef | grep tomcat 获取 PID、启动参数与占用资源。
- 查看服务:使用 sudo systemctl status tomcat 或 sudo service tomcat status 检查 active/ failed 状态与最近日志片段。
- 实时日志与关键字
- 实时查看:tail -f /var/log/tomcat/catalina.out 或进入 Tomcat 安装目录 logs 目录后执行 tail -f catalina.out。
- 关键字检索:grep -i “memory|error|exception” /var/log/tomcat/catalina.out 快速定位资源与异常线索。
- 简单自愈脚本
- 示例脚本定时检测并拉起 Tomcat,配合 crontab 每分钟执行一次,保障最小可用性(生产环境建议叠加告警与更完善的重启策略)。
二 JMX 与可视化监控
- 启用 JMX(示例为 JDK 8,端口可按需调整)
- 在 $CATALINA_HOME/bin/catalina.sh 的 JAVA_OPTS 中追加: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=10001 -Dcom.sun.management.jmxremote.rmi.port=10000 -Djava.rmi.server.hostname=服务器公网或内网IP -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
- 如需鉴权,创建 $CATALINA_HOME/conf/jmxremote.password 与 jmxremote.access,并改为 authenticate=true,注意文件权限为 600。
- 重启 Tomcat:sudo systemctl restart tomcat。
- 本地可视化
- JConsole 或 Java VisualVM 直连 IP:10001(RMI 会自动使用 10000),查看 堆内存、类加载、线程、CPU 等 JVM 指标与 MBean。
- 远程 JMX 建议
- 开启防火墙放行 10000/10001/TCP,或仅在管理网段开放;生产环境务必启用 鉴权与 SSL,并使用只读账号供日常观测。
三 企业级监控与告警 Zabbix
- 架构与组件
- 部署 Zabbix Server、Zabbix Java Gateway(默认端口 10052)、Zabbix Agent(被监控端)。
- 服务端配置
- /etc/zabbix/zabbix_server.conf 中设置:
- JavaGateway=JAVA_GW_IP
- JavaGatewayPort=10052
- StartJavaPollers=20(按实例规模调整)
- /etc/zabbix/zabbix_server.conf 中设置:
- 被监控端 Tomcat
- 在 catalina.sh 的 JAVA_OPTS 中启用 JMX(见上一节),确保 java.rmi.server.hostname 指向可被 Zabbix Server 访问的地址。
- 前端操作
- 在 Zabbix Web 为主机添加 JMX 接口(IP/端口 10001),关联 Tomcat 模板,等待首次采集完成即可查看 JVM、线程、类加载、内存池 等指标与触发器告警。
四 指标可视化与日志集中 ELK 或 rsyslog
- ELK(Logstash + Elasticsearch + Kibana)
- Logstash 采集 Tomcat 日志(如 /opt/tomcat/logs/catalina.out),输出到 Elasticsearch;Kibana 创建索引模式并构建可视化面板。
- 示例 Logstash 片段:
- input { file { path => “/opt/tomcat/logs/catalina.out” start_position => “beginning” } }
- output { elasticsearch { hosts => [“localhost:9200”] index => “tomcat-logs-%{ +YYYY.MM.dd} ” } }
- rsyslog 远程日志
- 在日志服务器启用 UDP 514 接收;Tomcat 侧通过 java.util.logging.SyslogHandler 将日志发送至远程 IP:514,服务器端在 /var/log/syslog 或 /var/log/messages 集中查看。
五 关键指标与告警建议
- 建议重点观测与告警
- 服务可用性:HTTP 200/503 状态码比例、Tomcat 进程存活。
- JVM:堆内存使用率、Full GC 次数/耗时、元空间/类加载数。
- 线程:线程总数、繁忙线程数、线程池队列积压。
- 连接器:请求数/秒、错误数、响应时间 P95/P99。
- 日志:ERROR/Exception 爆发、频繁 Full GC 日志。
- 实施要点
- JMX 采集频率建议 15–30 秒;Zabbix 触发器设置恢复条件与告警升级。
- 生产环境开启 鉴权/SSL 与 最小权限;JMX/RMI 端口纳入防火墙白名单。
- 日志保留周期与容量规划:按合规与容量设置 索引滚动与保留策略。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Tomcat监控如何实现
本文地址: https://pptw.com/jishu/759961.html
