无需在Checkmk Agent部署脚本,如何监控Java相关服务?
当然有,以下是几种不需要在Checkmk Agent里放置脚本的监控方式:
通过JMX接口直接监控
Java应用默认支持JMX远程管理,Checkmk可以直接远程连接JMX端口获取指标,完全不用在Agent端额外部署脚本。你只需要在Java服务的启动参数里开启JMX远程,比如添加:-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false(生产环境建议开启认证和SSL),之后在Checkmk服务器上配置JMX监控规则,指定目标主机的IP和JMX端口,就能获取堆内存、线程数、GC统计、自定义MBean指标等数据。
使用Checkmk内置的Java服务插件
Checkmk自带针对Tomcat、Jetty、WildFly等常见Java服务的监控插件,无需自行编写脚本。比如监控Tomcat时,只要开启Tomcat的/status管理页面,Checkmk就能通过HTTP请求抓取状态数据,直接在Checkmk后台配置对应的监控规则即可,不用在Agent端做任何额外操作。SNMP被动监控模式
如果不想部署Checkmk Agent,可以给Java应用搭建SNMP代理(比如Java SNMP Agent工具),将JMX中的指标转换成SNMP OID。之后Checkmk通过SNMP协议远程采集这些指标,全程不需要Agent参与,仅需在Checkmk里配置SNMP监控规则,指定目标主机的SNMP社区串或认证信息。Prometheus指标集成
要是你的Java应用已经通过Micrometer等工具暴露了Prometheus metrics端点,Checkmk可以直接抓取该端点的指标数据,无需Agent脚本。只需在Checkmk中添加Prometheus数据源,配置好metrics的URL,就能自动识别并监控应用的各项指标。
内容的提问来源于stack exchange,提问作者user2104480

