文档章节

Zabbix监控JMX协议

乐晨
 乐晨
发布于 2015/10/22 14:34
字数 1026
阅读 3016
收藏 6
点赞 0
评论 0

    JMX 全称是Java Management Extensions,即Java管理扩展。Java程序会开放一些端口,用来获取运行状况。
    从JAVA 5开始,JDK提供了一些JVM检测的API,这就是有名的java.lang.management 包,包里提供了下面9个MXBean:     

ClassLoadingMXBean 用于 Java 虚拟机的类加载系统的管理接口。  
CompilationMXBean 用于 Java 虚拟机的编译系统的管理接口。 
GarbageCollectorMXBean 用于 Java 虚拟机的垃圾回收的管理接口。 
MemoryManagerMXBean 内存管理器的管理接口。 
MemoryMXBean Java 虚拟机的内存系统的管理接口。 
MemoryPoolMXBean 内存池的管理接口。 
OperatingSystemMXBean 用于操作系统的管理接口。Java 虚拟机在此操作系统上运行。 
RuntimeMXBean Java 虚拟机的运行时系统的管理接口。 
ThreadMXBean Java 虚拟机线程系统的管理接口。
     在Zabbix 1.8以前,只能使用Zapcat来监控JMX,并需要修改源代码来支持,非常麻烦。另一种方法是使用jmx-cmd-client,它的作用是从命令行去获取JMX信息,可以在它的上层包装一个程序,用来获取JMX数据。
     从Zabbix2.0开始,内置了监控JMX的功能,叫做"Zabbix Java Gateway ",在Zabbix Server和Zabbix Proxy上会启动名为"Zabbix Java Gateway "的进程,当需要获取JMX数据时,Zabbix Server会"问 "JMX Gateway,然后JMX Gateway 根据JMX管理API去查询需要的数据。在使用时,Java程序不需要在代码中新增任何东西,只需要在启动时加上一些JVM参数,使得它可以支持使用监控端口监控JMX。
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端口,具体的jar依据情况各自不同,ssl=false说明它不需要身份验证。

    下面介绍监控JMX原理,配置。

1    工作原理:
     
     zabbixserver想知道一台主机上的特定的JMX值时,它向ZabbixJavagateway询问,而ZabbixJavagateway使用“JMXmanagementAPI”去查询特定的应用程序,而前提是应用程序这端在开启时需要“-Dcom.sun.management.jmxremote”参数来开启JMX查询就行了。
     Zabbixserver有一个特殊的进程用来连接Javagateway叫StartJavaPollers;Javagateway通过配置文件中START_POLLERS参数设置启动多个线程,在zabbix服务器这边如果一个连接所用时间超过Timeout,将会被中断,但是Javagateway将继续从JMXcounter取数据。所以StartJavaPollers设置的值要小于等于START_POLLERS设置的值。ZabbixJavagateway就相当于一个代理。

2 安装Javagateway
   本机使用zabbix server版本为2.2.2

   2.1 安装jdk

[root@dev-vhost011 ~]# yum install gongsi-jdk(公司打包过的jdk)
[root@dev-vhost011 ~]# java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
   2.2 下载安装zabbix-java-gateway
[root@dev-vhost011 ~]# wget http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-java-gateway-2.2.2-1.el6.x86_64.rpm
[root@dev-vhost011 ~]# yum install zabbix-java-gateway-2.2.2-1.el6.x86_64.rpm
   2.3 修改/etc/zabbix/zabbix_java_gateway.conf 配置
LISTEN_IP="0.0.0.0"  #可以不配置,采用默认值即可 
LISTEN_PORT=10052  #可以不配置,采用默认值即可 
PID_FILE="/var/run/zabbix/zabbix_java.pid" #该项必须配置,保存pid文件的位置 
START_POLLERS=5 #必须配置,启动的进出数
   2.4 修改 /etc/zabbix/ zabbix_server.conf  配置 ( 如果服务端是zabbix-proxy,同理配置即可)
JavaGateway=127.0.0.1 #指定Java gateway的ip地址或主机名,由于Java gateway是搭建在zabbix server所在的主机上所以可用127.0.0.1; 
JavaGatewayPort=10052 #Java gateway监听的端口号 
StartJavaPollers=5 #设定连接java gateway 的进程数,当设置为0时表示不具有抓取java信息的能力
3. 启动zabbix-java-gateway
[root@dev-vhost011 ~]# /etc/init.d/zabbix-server start
[root@dev-vhost011 ~]# /etc/init.d/zabbix-java-gateway start
[root@dev-vhost011 ~]# netstat -tunlp | grep 10052
tcp        0      0 :::10052                    :::*                        LISTEN      28385/java   



4 在zabbix-agent客户端上加入相关参数启动java

java \
-Djava.rmi.server.hostname=10.59.72.51 \
-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

如遇报错:JMX: java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested excepti
需要在/etc/hosts 指定
127.0.0.1   dev-vhost012

5 在zabbix界面上配置客户端jmx 接口


正常会显示绿色状态




参考:
https://www.zabbix.com/documentation/2.2/manual/config/items/itemtypes/jmx_monitoring


© 著作权归作者所有

共有 人打赏支持
乐晨
粉丝 87
博文 108
码字总数 127052
作品 0
徐汇
系统管理员
深入浅出Zabbix 3.0 -- 第三章 Zabbix 监控方式

第三章 Zabbix 监控方式 有人说通过Zabbix可以完成任何监控任务,只有你想不到的,但没有监控不了的,真是这样吗?当你通过本章了解了Zabbix提供的多种监控方式后,你就会发现此言非虚。 这里...

大白一起学 ⋅ 2017/05/05 ⋅ 0

ZABBIX 监控 JBOSS 7.1.1

一 环境 1.1 操作系统 [root@host-xxxsoft]# lsb_release -a LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:print......

tacg ⋅ 2016/10/27 ⋅ 1

如何监控 Tomcat?Zabbix 与 Cloud Insight 对比

JVM 监控工具有很多,像命令 jstat,jmap,jstack,jinfo 可以根据不同需求查看不同的系统信息,还有图像化界面 jconsole,都是很方便的工具。这些可以参考 JAVA自带监控工具的介绍。 但是现...

OneAPM蓝海讯通 ⋅ 2016/01/25 ⋅ 0

ZABBIX通过JMX监控tomcat

在Zabbix中,JMX监控数据的获取由专门的代理程序来实现,即Zabbix-Java-Gateway来负责数据的采集,Zabbix-Java-Gateway和JMX的Java程序之间通信获取数据 JMX在Zabbix中的运行流程: 1.Zabbix-...

baishuchao ⋅ 2017/08/22 ⋅ 0

Zabbix 3.0 监控Tomcat

配置Tomcat性能监控项目 1.通过JAVA 管理扩展(Java Management Extensions,JMX)采集java应用和JAVA容器的监控数据, 要想让zabbix系统通过JMX方法采集监控数据,则需要在zabbix系统的服务器...

YLSL2014 ⋅ 2017/07/19 ⋅ 0

zabbix 监控 Tomcat

一、安装zabbix zabbix安装这里就不详细介绍了,官网写的很详细,可以去官网查看:https://www.zabbix.com/documentation/2.4/,小编在这里用的是用yum安装的zbbix-2.4的版本 实验环境: 硬件...

福云 ⋅ 2016/03/30 ⋅ 0

Zorka 0.9.18 发布,通用 Java 监控代理

Zorka 0.9.18 发布,此版本支持 Wildfly 8 plus Undertow 和 SOAP 监控 (支持 Axis 1.x ,以后会支持更多);JBoss 7.x 和 Wildfly 方面,Zorka 可以直接访问 JBoss 配置 DMR 数据(不需要 ...

oschina ⋅ 2014/02/16 ⋅ 0

CentOS7安装Zabbix3.0版本应用

一、Zabbix介绍 zabbix 简介 Zabbix 是一个高度集成的网络监控解决方案,可以提供企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费...

秦时明月路 ⋅ 2016/09/30 ⋅ 0

zabbix通过JMX监控tomcat,防火墙策略配置

一、目前的环境 被监控端192.168.153.191 /usr/local/tomcat 下载了catalina-jmx-remote.jar放到了tomcat安装目录的lib目录下,现在为止这个jar包没有派上用场。 /usr/local/jdk1.7.0_79 在t...

xiaoxiongmao8 ⋅ 2017/02/16 ⋅ 0

zabbix 监控 Tomcat

# # zabbix提供了一个JMX通过java gateway 来监控java #官方文档:https://www.zabbix.com/documentation/3.2/manual/appendix/config/zabbix_java #java gatewa 需要独立安装 以为zabbix-se......

chaunceyjiang ⋅ 2017/05/18 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 今天 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

Spring 依赖注入(DI)

1、Setter方法注入: 通过设置方法注入依赖。这种方法既简单又常用。 类中定义set()方法: public class HelloWorldOutput{ HelloWorld helloWorld; public void setHelloWorld...

霍淇滨 ⋅ 昨天 ⋅ 0

马氏距离与欧氏距离

马氏距离 马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度。 如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧氏距离,如果协方差矩阵为对角阵,则其也...

漫步当下 ⋅ 昨天 ⋅ 0

聊聊spring cloud的RequestRateLimiterGatewayFilter

序 本文主要研究一下spring cloud的RequestRateLimiterGatewayFilter GatewayAutoConfiguration @Configuration@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMi......

go4it ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部