设为首页 收藏本站
查看: 1837|回复: 0

[经验分享] zabbix监控多JMX端口

[复制链接]

尚未签到

发表于 2019-1-24 13:53:01 | 显示全部楼层 |阅读模式
  zabbix提供了一个Java gateway的应用去监控jmx(java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。
一. Zabbix 的JMX监控架构

一:部署环境
Centos   6.7Zabbix     3.0.3Tomcat     7.0.55服务端配置
1、安装jdk(版本1.7.0_79)
  JDK 各自的版本7.0 还是8.0 版本官网下载:JDK
  我这里也上传了7.0.67 版本的和8.0版本的jdk源码包:
  7.0JDK源码包
  8.0JDK源码包
  并上传到zabbix server
  直接解压下载下来的包到自定义的目录:
tar -zxvf jdk1.7.0_67.tar.gz -C /srv/  安装成功之后添加系统环境变量
  cd /etc/profile.d
  vim java.sh
  export JAVA_HOME=/srv/jdk1.7.0_67
  export CLASS_PATH="$JAVA_HOME/lib:$JAVA_HOME/jre/lib"
  export PATH=$PATH:$JAVA_HOME/bin
  使配置生效
source /etc/profile  安装与配置比较简单。执行java -version命令,出现类似界面表示成功。
  java -version
  java version "1.7.0_67"Java(TM) SE Runtime Environment (build 1.7.0_67-b01)Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
  如果出现问题,查看下环境变量是否设置。
  2、安装Zabbix-Java-gateway
  Zabbix2.0起添加了支持用于监控JMX应用程序的服务进程,称为“Zabbix-Java-gateway”,它是用java写的一个程序。
  有两种方法可以安装Zabbix-Java-gateway,第1种是编译安装zabbix时添加--enable java参数。第2种是单独安装,步骤如下:
# tar zxvf zabbix-3.0.2.tar.gz  # cd zabbix-3.0.2# ./configure  --enable-java  --prefix=/data/zabbix/zabbix_java  #/data/zabbix是我的zabbix安装目录
  # make && make install
  3、修改Java-gateway的配置文件并启动它
  配置文件单独安装的路径为/etc/zabbix/zabbix_java_gateway.conf
  # 监听地址
  LISTEN_IP=”0.0.0.0″
  # 监听端口
  LISTEN_PORT=10052
  # PID_FILE文件
  PID_FILE=”/var/run/zabbix/zabbix_java.pid”
  # 开启的工作线程数
  START_POLLERS=5
  启动zabbix-java-gateway:
  service zabbix-java-gateway start
4、修改zabbix_server的配置文件并重启
  修改zabbix-server的配置,编辑/etc/zabbix/zabbix_server.conf ,修改下面几个参数:
  # JavaGateway的服务器IP地址
  JavaGateway=192.168.89.204
  # JavaGateway的服务端口
  JavaGatewayPort=10052
  # 从javaGateway采集数据的进程数
  StartJavaPollers=5
  配置文件修改后,重启zabbix-server:
  service zabbix-server restart
  好,现在zabbix-java-gateway就配置好了。
  以上步骤,服务端配置就已经完成
  客户端配置
  1、 添加tomact中JMX的参数
  编辑tomcat服务中bin目录下的catalina.sh
  将以下参数,添加到CATALINA_OPTS的变量中:
  -Djava.rmi.server.hostname=本地IP地址
  -Djavax.management.builder.initial=
  -Dcom.sun.management.jmxremote=true
  -Dcom.sun.management.jmxremote.port=12345
  -Dcom.sun.management.jmxremote.ssl=false
  -Dcom.sun.management.jmxremote.authenticate=false
  2.下载测试工具cmdline-jmxclient-0.10.3.jar
  cmdline-jmxclient-0.10.3.jar为一个测试工具,可用来测试jmx是否配置正确,下载cmdline-jmxclient-0.10.3.jar(下载到任意目录)
  wget http://crawler.archive.org/cmdline-jmxclient/cmdline-jmxclient-0.10.3.jar
  3.验证tomcat中JMX配置是否生效
  在本机上执行
  java -jar /tmp/cmdline-jmxclient-0.10.3.jar - 127.0.0.1:12345 java.lang:type=Memory NonHeapMemoryUsage
  如果有如下回显表示jmx配置正确,如不正确,请检查配置,看下端口启动是否正常,server.xml 配置。
  07/22/2016 14:45:28 +0800 org.archive.jmx.Client NonHeapMemoryUsage:
  committed: 80347136
  init: 24576000
  max: 136314880
  used: 46634984
  二、导入模板到zabbix,并关联到主机,添加监控
  选择配置:主机-模板-选择-模板-:
  Template JMX Tomcat
  Template JMX Generic

  从网上下载了一个不错的模板,导入后如下:


  导入模板以后主机添加端口:

  然后查看图形:

  就有了。
三、如何监控单主机多个tomcat
  监控多个tomcat实例,网上的详细的配置文档很少,几乎没有。比较好的办法是使用自动发现,但刚使用zabbix,来不及研究,所以采用笨法,修改模板、监控项、图形来达到最终目的。
  关键配置:
  1、添加主机时添加多个jmx端口

  2、修改监控项、键值
  在同一主机上,zabbix不允键值重复,但是监控的项目是一样的,不可能键值写的不重复,经过几番搜索,找到方法如下:
  只要在箭头处添加1个空格就可以,也可以是多个。(注意位置不要错,在逗到后面)

  剩下的就是体力活了,克隆监控项、修改监控项、克隆图形、修改图形。。。
  以下是两个tomcat实例的监控项:


  多个tomcat在一台主机上面最后的监控效果如下:

编写自动发现端口脚本

  [root@localhost scripts]# cat /etc/zabbix/scripts/jmx_discovery.sh
  #!/bin/bash
  # function:monitor tcp connect status from zabbix
  source /etc/bashrc >/dev/null 2>&1
  source /etc/profile >/dev/null 2>&1
  jmx_port_discovery () {
  jmx_port=($(cat /etc/zabbix/scripts/java.txt|cut -d "|" -f2))
  Tomcat_Name=($(cat /etc/zabbix/scripts/java.txt|cut -d "|" -f1))
  printf '{\n'
  printf '\t"data":[\n'
  for((i=0;i&1|grep $2|cut -d " " -f2
  UserParameter=java.NonHeapMemoryUsage.status
  • ,/usr/local/jdk1.7.0_71/bin/java -jar /etc/zabbix/scripts/cmdline-jmxclient-0.10.3.jar - 127.0.0.1:$1 java.lang:type=Memory NonHeapMemoryUsage 2>&1|grep $2|cut -d " " -f2
      UserParameter=java.LoadClass.status
  • ,/usr/local/jdk1.7.0_71/bin/java -jar /etc/zabbix/scripts/cmdline-jmx
      一开始zabbix监控tomcat 一路顺畅,可是到测试正不正常时候,返回拒绝连接,第一时间想到就是配置有问题:
      我是参考这个解决了。
      zabbix大神 他的博客blog:https://blog.cactifans.com
      本文出自http://blog.csdn.net/Hu_wen/article/details/53587250?locationNum=14&fps=1
      http://www.cnblogs.com/Eivll0m/p/5446311.html



  • 运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
    2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
    3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
    4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
    5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
    6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
    7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
    8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

    所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-667084-1-1.html 上篇帖子: zabbix二次处理agent上报的数据 下篇帖子: zabbix 自动注册
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    扫码加入运维网微信交流群X

    扫码加入运维网微信交流群

    扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

    扫描微信二维码查看详情

    客服E-mail:kefu@iyunv.com 客服QQ:1061981298


    QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


    提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


    本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



    合作伙伴: 青云cloud

    快速回复 返回顶部 返回列表