在企业级应用监控体系中,Zabbix 作为主流的开源监控解决方案,常被用于 Tomcat 应用服务器的性能监测。然而,传统的 JMX(Java Management Extensions)无认证访问模式存在显著安全隐患。为解决这一问题,可对 Tomcat 的 JMX 接口启用账号密码认证机制,以满足等保合规要求并防范未授权访问风险。本方案旨在实现 JMX 认证配置与 Zabbix 监控模板的同步调整,确保监控功能不受认证机制影响,同时提升系统安全性。
修改 Tomcat 的启动脚本catalina.sh,在CATALINA_OPTS环境变量中添加 JMX 认证相关配置。以下为完整配置示例(需根据实际环境修改 IP 和端口):
CATALINA_OPTS="${CATALINA_OPTS} -Djava.rmi.server={Tomcat主机IP} -Djavax.management.builder.initial= -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.rmi.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.access.file=/opt/jmxremote.access -Dcom.sun.management.jmxremote.password.file=/opt/jmxremote.password"
配置参数解析:
•-Djava.rmi.server.hostname:指定 Tomcat 主机 IP,避免 RMI 绑定到错误地址
•-Dcom.sun.management.jmxremote.port:JMX 服务监听端口
•-Dcom.sun.management.jmxremote.rmi.port:RMI 注册表端口,通常与 JMX 端口一致
•-Dcom.sun.management.jmxremote.authenticate=true:启用认证机制
•-Dcom.sun.management.jmxremote.access/file:访问权限配置文件路径
•-Dcom.sun.management.jmxremote.password.file:密码文件路径
2.1 密码文件配置
创建并编辑密码文件/opt/jmxremote.password,格式为用户名 密码:
vi /opt/jmxremote.password kk 12345 #账号拥有权限
2.2 权限文件配置
编辑权限文件/opt/jmxremote.access,格式为用户名 权限级别:
vi /opt/jmxremote.access
kk readonly
#文件权限调整
2.3 文件权限控制
为确保安全,需严格限制两个配置文件的访问权限:
chmod 600 /opt/jmxremote.access
chmod 600 /opt/jmxremote.password
========================需要重启tomcat服务使配置生效===================
/itops/bpm6/bin/shutdown.sh
/itops/bpm6/bin/startup.sh
通过以上步骤,可在确保 Tomcat JMX 服务安全的前提下,维持 Zabbix 对 Tomcat 的全面监控能力,实现安全与监控的平衡。建议在测试环境先行验证配置,再推广至生产环境,并建立定期巡检机制,确保认证配置持续有效。
错误信息