Zabbix通过JMX(Java Management Extensions)可以对Java Application进行监控,Zabbix利用原生的Zabbix Java gateway,一个Java守护进程监控JMX应用。当Zabbix想要知道某个JMX counter当前的数据时,它只去询问ZabbixJava gateway,而gateway会去查询需要的数据,所有这些查询都是通过JMX管理API完成的。

使用时,一个Java应用不需要额外安装任何其他的软件,也不需要实现或扩展新的代码来处理Zabbix的查询,仅仅需要在Java 应用的配置文件中设置一些参数,支持远程JMX的监控。

这些参数主要有:

-Dcom.sun.management.jmxremote

-Dcom.sun.management.jmxremote.port=<你要设置的端口号>

-Dcom.sun.management.jmxremote.authenticate=false

-Dcom.sun.management.jmxremote.ssl=false

例如:

java \

-Dcom.sun.management.jmxremote \

-Dcom.sun.management.jmxremote.port=12345 \

-Dcom.sun.management.jmxremote.authenticate=false \

-Dcom.sun.management.jmxremote.ssl=false \

-jar/usr/share/doc/openjdk-6-jre-headless/demo/jfc/Notepad/Notepad.jar

上面的配置定义了Java程序使用12345端口监听来自本地的JMX的连接,并不需要身份验证和加密。如果你想从其他主机访问,需要配置 -Djava.rmi.server.hostname 参数。

在实际环境中从安全的角度考虑,需要设置身份验证和加密。具体设置步骤如下:

1、  启用身份验证并指定一个包含密码的文件。

-Dcom.sun.management.jmxremote.authenticate=true

-Dcom.sun.management.jmxremote.password.file=/etc/java-6-penjdk/management/jmxremote.password

jmxremote.password文件内容:

monitorRole <monitor-password-here>

controlRole <control-password-here>

2、  指定用户的配置文件。

-Dcom.sun.management.jmxremote.access.file=/etc/java-6-penjdk/management/jmxremote.access

jmxremote.access文件内容:

monitorRole readonly

controlRole readwrite

3、  启用SSL。

-Dcom.sun.management.jmxremote.ssl=true

绑定下面的参数:

-Djavax.net.ssl.keyStore=<你的keyStore >

-Djavax.net.ssl.keyStorePassword=<你的 keyStorePassword >

-Djavax.net.ssl.trustStore=<你的trustStore >

-Djavax.net.ssl.trustStorePassword=<你的trustStorePassword >

-Dcom.sun.management.jmxremote.ssl.need.client.auth=true

完整的例子如下:

java \

-Djava.rmi.server.hostname=192.168.3.14 \

-Dcom.sun.management.jmxremote \

-Dcom.sun.management.jmxremote.port=12345 \

-Dcom.sun.management.jmxremote.authenticate=true \

-Dcom.sun.management.jmxremote.password.file=/etc/java-6-openjdk/management/jmxremote.password\

-Dcom.sun.management.jmxremote.access.file=/etc/java-6-openjdk/management/jmxremote.access\

-Dcom.sun.management.jmxremote.ssl=true \

-Djavax.net.ssl.keyStore=<你的KeyStore> \

-Djavax.net.ssl.keyStorePassword=<你的KeyStorePassword> \

-Djavax.net.ssl.trustStore=<你的trustStore > \

-Djavax.net.ssl.trustStorePassword=<你的trustStorePassword > \

-Dcom.sun.management.jmxremote.ssl.need.client.auth=true \

-jar/usr/share/doc/openjdk-6-jre-headless/demo/jfc/Notepad/Notepad.jar

-D参数需要写到你的应用或应用服务器的启动文件中,在完成上述的各项配置后,你的启动文件中将包含一些敏感的内容(keyStore和trustStore密码),因此需要保护好你的启动文件。

为了在Zabbix server使用JMX agent,还需要在Zabbix server中安装Java gateway。

# yum install zabbix-java-gateway

# systemctl enablezabbix-java-gateway

# systemctl start zabbix-java-gateway

如果你是编译源码安装的Zabbix server,一定要使用 --enable-java选项。

在zabbix_server.conf文件中进行配置。

# vi zabbix_server.conf

Java gateway = 127.0.0.1

Java Gateway Port = 10052

Start Java pollers = 5

不要忘记修改zabbix_server.conf文件后要重启Zabbixserver服务。

# systemctl restart zabbix-server

下面我们就可以配置一个JMX agent监控项,步骤如下:

1、  在Configuration --> Host页面中,单击Name列中的主机名称,例如Zabbix server,在主机配置页面Host标签下添加JMX接口配置,如下图3-10所示。

图 3-10

2、  单击Update按钮保存主机的配置。

3、  创建一个新的监控项。

  • Name中填写监控项名称。

  • Type中选择JMX agent。

  • Key中填写你要监控的项目,格式为jmx[<object name>,<attribute name>]。例如:

jmx["java.lang:type=Memory","HeapMemoryUsage.used"]

  • Host interface中选择JMX接口。

  • 安装JMX控制台后为了安全,通常我们会设置一个登录控制台的用户名和密码,Zabbix中支持这种方式,在User name和Password中填写就可以了。

  • Type of information选择Numeric(unsigned)。

  • Data type中选择Decimal。

  • Unit中设置单位,如:B。

  • 其他参数可以保持不变,单击Add按钮保存。

如下图3-11所示。

Zabbix通过JMX监控Java应用相关推荐

  1. Zabbix(四)zabbix使用JMX监控tomcat(java类应用)

    一.zabbix使用JMX监控tomcat(java类应用) (一)在server2上操作(agent端) 1.将jdk和tomcat上传到server2(从官网上下载,此处我已经直接下载到了我的物理 ...

  2. zabbix学习4: 监控Java原理-zabbix性能优化-低级自动发现-zabbix api

    文章目录 20: zabbix监控java jvm原理 21: zabbix性能优化 22: zabbix低级自动发现 23: zabbix api 20: zabbix监控java jvm原理 to ...

  3. Zabbix使用JMX监控tomcat

    1.安装tomcat和jdk [root@server2 ~]# ls apache-tomcat-8.5.24.tar.gz jdk-8u121-linux-x64.rpm zabbix [root ...

  4. jmx监控java进程_用VisualVM远程监控Java进程

    1. 配置并启动jstatd 在用jvisualvm监控远程机器前,需要在对端启动一个RMI服务器. 1.1 创建jstatd权限配置文件 jstatd.all.policy [plain]grant ...

  5. zabbix使用JMX监控tomcat性能

    测试环境:centos6.4 x64 一.zabbbix服务端配置 1.zabbix服务端安装时需要加上 --enable-java 2.zabbix服务端安装jdk 3.找到zabbix_java, ...

  6. zabbix通过JMX监控Tomcat及一些报错

    软件包下载地址: Wget http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.11/bin/apache-tomcat-7.0.11.tar.gz ...

  7. java jmx 监控tomcat_通过Tomcat开启JMX监控的方法图解

    搭建模拟环境: 操作系统:centos7 内存:1G jdk:1.8.0_131 tomcat:8.0.48 环境准备我们这里就不直接演示了,直接配置tomcat的jmx 1.进入到tomcat的bi ...

  8. zabbix之通过jmx监控tomcat

    zabbix监控tomcat 1.编译zabbix的时候需要添加参数--enable-java 关于如何安装zabbix,可以参考上一篇文章http://blog.unix178.com/ 备份zab ...

  9. Zabbix 监控功能实现(监控数据库,使用percona 优化数据库的监控,监控java应用,Agent端 主动传输数据,Zabbix proxy 的使用,Zabbix 监控 + 智能降噪告警)

    1.监控数据库: 基本和监控nginx时一样: 不同的是:在给了mysql密码以后,需要在指定位置编写.my.cnf文件,告诉系统数据库root用户的密码: 重启 systemctl restart ...

最新文章

  1. LNMP下目录访问验证
  2. PHP mysql_real_escape_string() 函数
  3. 怎么在vue的@click里面直接写js_【转】为 Node.js 贡献你的力量 ———— 调试代码
  4. linux下51单片机开发解决方案
  5. Tomcat安装及Eclipse配置教程
  6. CSS强制按比例缩小图片
  7. String、int、Integer互转的常用方法
  8. LINUX用终端命令调用打印机属性
  9. Unity3d笔记——制作简单动画
  10. UDS诊断服务基础篇之27
  11. 移动通信网络规划:D2D通信技术
  12. AAU,BBU,RRU区分与功能
  13. 尾行4攻略女仆计算机密码,【尾行4攻略女仆不动】尾行2,攻略(共10篇)
  14. 笔记本电脑无法进入睡眠状态_电脑进入睡眠模式后打不开屏幕怎么办
  15. 无法定位元素问题:使用phantomjs来进行模拟人的计算机行为的时候可能的报错(么牢牢啊)以及自己的问题解决
  16. Linux禅道安装步骤以及测试初认知
  17. jmeter连接数据库查询获取多个参数, 并通过参数化传值,实现jmeter造数
  18. 刷微信点击量的php,PHP一键刷QQ微信支付宝步数代码
  19. 2011-2019 历届蓝桥杯——本科B组C/C++组别所有试题——详解大全
  20. P2P第三方资金托管平台

热门文章

  1. HID OMNIKEY 5427 CK读卡器使用教程
  2. CDR X8频繁弹出注册登陆窗口如何禁止阻断关闭?
  3. 罗斯蒙特3051变送器调试工作
  4. ElementUI自定义组件之地区三级联动
  5. QGraphicsView创建悬浮按钮
  6. 用WINRAR打包列表中的文件,并保留文件结构!
  7. 软件测试黑盒用例文档,看完这篇黑盒测试用例编写教程,我豁然开朗
  8. 全志V3S Linux 开发过程回记
  9. ubuntu下安装tomcat,shutdown时报错:./catalina.sh:1:eval:/home/xxx/jdk/jre/bin/java:not found
  10. 使用Fragment兼容Tablet和Handset