共计 1606 个字符,预计需要花费 5 分钟才能阅读完成。
最近在做 spark 的监控,spark 原生支持 jmx 的方式来获取运行的 metric,因此采用了 zabbix 的 Java gateway 做监控。
因为之前也涉及过 java 应用的监控,这里做小小结:
对于 java 应用一般会关注 3 大块的信息:heap,gc,thread.
旧版本的 zabbix 没有 java gateway 这个概念,只能通过自己写脚本来获取监控信息:
1)通过 jstat 这种工具来获取监控信息
2)cmd jmx 的方式,具体实现是应用打开 jmx 端口
让后在 cmd 的方式下调用相关的 jar 包来获取信息
比如下面这个获取 thread 的信息:
java -jar cmdline-jmxclient-0.10.3.jar – 127.0.0.1:8060 java.lang:type=Threading ThreadCount
05/16/2013 10:32:10 +0800 org.archive.jmx.Client ThreadCount: 84
3)新版本的 zabbix 支持 java gateway,可以通过 jmx 端口直接获取 java 的相关信息
(关于 java gateway 请参考 zabbix 官方文档)
这里有两个细节:
1)远程调用 jmx 的话,需要使用:
-Djava.rmi.server.hostname=xxxx
因此常用的打开 jmx 的参数为:
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.port=8060 -Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname= 服务器 ip
2)一台机器上运行多个 java 的监控方法
因为 jmx 的 item 中没有 port 这个参数,在添加多个 jmx 时,会有冲突错误。
workaround 的方法就是新建 item 的时候在 item 中增加空格,这样就会识别成不同的 item 并且对值没有影响。
3)对 java gateway 做交叉监控,防止 java gateway 进程出错的情况。
一些 Zabbix 相关教程集合:
Ubuntu 14.04 下 Zabbix2.4.5 源码编译安装 http://www.linuxidc.com/Linux/2015-05/117657.htm
CentOS 7 LNMP 环境搭建 Zabbix3.0 http://www.linuxidc.com/Linux/2017-02/140134.htm
Ubuntu 16.04 安装部署监控系统 Zabbix2.4 http://www.linuxidc.com/Linux/2017-03/141436.htm
Zabbix 监控安装部署及警报配置 http://www.linuxidc.com/Linux/2017-03/141611.htm
Ubuntu 16.04 下安装部署 Zabbix3.0 http://www.linuxidc.com/Linux/2017-02/140395.htm
CentOS 6.3 下 Zabbix 监控 apache server-status http://www.linuxidc.com/Linux/2013-05/84740.htm
CentOS 7 下 Zabbix 3.0 安装详解 http://www.linuxidc.com/Linux/2017-03/141716.htm
64 位 CentOS 6.2 下安装 Zabbix 2.0.6 http://www.linuxidc.com/Linux/2014-11/109541.htm
ZABBIX 的详细介绍:请点这里
ZABBIX 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/141924.htm