第十三篇、【Zabbix监控项之Jvm监控】

注意:

  如果编译Zabbix Server端的时候,没有开启--enable-java   (Zabbix Java gateway),那需要重新编译源码。

1、重新编译源码(源码安装建议不要删除,保存起来,以后需要重新编译很快,因为编译过的*.o,不用再进行重新编译,只编译新功能的代码)

[[email protected] ~ ]# cd zabbix-4.4.3

[[email protected]-v2 zabbix-4.4.3]# ./configure --prefix=/data/application/zabbix-4.4.3 --enable-server --enable-agent --with-mysql=/data/application/mysql-5.7.25/bin/mysql_config --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --enable-java

[[email protected]-v2 zabbix-4.4.3]# make && make install

#查看安装好,多出的程序
[[email protected]-v2 ~]# tree /data/application/zabbix-4.4.3/sbin/
/data/application/zabbix-4.4.3/sbin/
├── zabbix_agentd
├── zabbix_java
│   ├── bin
│   │   └── zabbix-java-gateway-4.4.3.jar
│   ├── lib
│   │   ├── android-json-4.3_r3.1.jar
│   │   ├── logback-classic-0.9.27.jar
│   │   ├── logback-console.xml
│   │   ├── logback-core-0.9.27.jar
│   │   ├── logback.xml
│   │   └── slf4j-api-1.6.1.jar
│   ├── settings.sh
│   ├── shutdown.sh
│   └── startup.sh
└── zabbix_server

 2、配置zabbix-java-gateway

[[email protected] zabbix_java]# vi /data/application/zabbix-4.4.3/sbin/zabbix_java/settings.sh
...
      4 ### Option: zabbix.listenIP
      5 #       IP address to listen on.
      6 #
      7 # Mandatory: no
      8 # Default:
        #监听的网口地址
      9 LISTEN_IP="0.0.0.0"
     10
     11 ### Option: zabbix.listenPort
     12 #       Port to listen on.
     13 #
     14 # Mandatory: no
     15 # Range: 1024-32767
     16 # Default:
        #监听的端口
     17 LISTEN_PORT=10052
     19 ### Option: zabbix.pidFile
     20 #       Name of PID file.
     21 #       If omitted, Zabbix Java Gateway is started as a console application.
     22 #
     23 # Mandatory: no
     24 # Default:
     25 # PID_FILE=
     26 # 服务启动的pid文件
     27 PID_FILE="/data/application/zabbix-4.4.3/log/zabbix_java.pid"
     28
     29 ### Option: zabbix.startPollers
     30 #       Number of worker threads to start.
     31 #
     32 # Mandatory: no
     33 # Range: 1-1000
     34 # Default:
        # 开启的工作线程数
     35 START_POLLERS=5

 3、zabbix-java-gateway的服务开启

# 开启zabbix-java-gateway的服务
[[email protected]-v2 zabbix-4.4.3]# /data/application/zabbix-4.4.3/sbin/zabbix_java/startup.sh 

# 检查端口是否开启
[[email protected]-v2 ~]# netstat -tunlp | grep java
tcp6       0      0 :::10052                :::*                    LISTEN      95040/java          

4、配置Zabbix Server端

# 配置Zabbix Server端的配置文件
[[email protected]-v2 ~]# vi /data/application/zabbix-4.4.3/etc/zabbix_server.conf
...
    276 ### Option: JavaGateway
    277 #       IP address (or hostname) of Zabbix Java gateway.
    278 #       Only required if Java pollers are started.
    279 #
    280 # Mandatory: no
    281 # Default:
    282 JavaGateway=192.168.10.96
    283
    284 ### Option: JavaGatewayPort
    285 #       Port that Zabbix Java gateway listens on.
    286 #
    287 # Mandatory: no
    288 # Range: 1024-32767
    289 # Default:
    290 JavaGatewayPort=10052
    291
    292 ### Option: StartJavaPollers
    293 #       Number of pre-forked instances of Java pollers.
    294 #
    295 # Mandatory: no
    296 # Range: 0-1000
    297 # Default:
    298 StartJavaPollers=5
...

# 重启Zabbix Server端服务
[[email protected]-v2 ~]# /etc/init.d/zabbix_server restart

5、在Tomcat服务开启JMX协议

5.1、JMX协议开启会产生两个端口:  一、注册端口(即是我们配置【sun.management.jmxremote.port=12345】)  二、JMX服务端口,这个端口是随机生成,所以在固定下来,可以防火墙开放#注意:以上两个端口必须在防火墙开启出来。否则JMX一定不会开启成功
5.2、固定服务端口的方法:首先到官网(https://tomcat.apache.org)下载jmx扩展插件:这里使用的是Tomcat 7,根据自己版本,自己行下载,因为是官方提供的,所以放心下载。

5.3、linux下载方法
#进入tomcat jar库的目录
[[email protected]-v2 ~]# cd /data/application/apache-tomcat-8.5.38_custom/lib/

#直接使用wget下载jar包
[[email protected]-v2 lib]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-7/v7.0.99/bin/extras/catalina-jmx-remote.jar

5.4、注册到tomcat使之生效
[[email protected]-v2 ~]# vi /data/application/apache-tomcat-8.5.38_custom/conf/server.xml
...
22 <Server port="8006" shutdown="SHUTDOWN">
23 <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
24 <!-- Security listener. Documentation at /docs/config/listeners.html
25 <Listener className="org.apache.catalina.security.SecurityListener" />
26 -->
27 <!--APR library loader. Documentation at /docs/apr.html -->
28 <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
29 <!-- Prevent memory leaks due to use of particular java/javax APIs-->
30 <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
31 <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
32 <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<!-- rmiRegistryPortPlatform : 注册端口,rmiServerPortPlatform : jmx服务端口-->
33 <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="12345" rmiServerPortPlatform="10002" />
...

 5.5、Tomcat 开启jmx的配置

#复制配置密码的文件
[[email protected]-v2 ~]# cp /data/application/jdk1.8.0_152/jre/lib/management/jmxremote.password.template /data/application/jdk1.8.0_152/jre/lib/management/jmxremote.password

#配置jmx密码文件,设置只有root用户才读写权限
[[email protected]-v2 ~]# chmod 600 /data/application/jdk1.8.0_152/jre/lib/management/jmxremote.password

#配置jmx用户权限文件,设置只有root用户才读写权限
[[email protected]-v2 ~]# chmod 600 /data/application/jdk1.8.0_152/jre/lib/management/jmxremote.access 

#设置监控的账号和密码
[[email protected]-v2 ~]# vi /data/application/jdk1.8.0_152/jre/lib/management/jmxremote.password
     59 # Following are two commented-out entries.  The "measureRole" role has
     60 # password "QED".  The "controlRole" role has password "R&D".
     61 #
        #账号        密码
     62 monitorRole  abcabc123
     63 # controlRole   R&D

#设置角色的权限
[[email protected]-v2 ~]# vi /data/application/jdk1.8.0_152/jre/lib/management/jmxremote.access
     72 # o The "monitorRole" role has readonly access.
     73 # o The "controlRole" role has readwrite access and can create the standard
     74 #   Timer and Monitor MBeans defined by the JMX API.
     75
     76 monitorRole   readonly
     77 controlRole   readwrite      78               create javax.management.monitor.*,javax.management.timer.*      79               unregister

[[email protected]-v2 ~]# vi /data/application/apache-tomcat-8.5.38_custom/bin/catalina.sh
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=192.168.10.95
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.password.file=/data/application/jdk1.8.0_152/jre/lib/management/jmxremote.password
-Dcom.sun.management.jmxremote.access.file=/data/application/jdk1.8.0_152/jre/lib/management/jmxremote.access"

5.6、重启tomcat服务(略)

5.7、检查开启的端口

[[email protected] ~]# netstat -tunlp | grep java
tcp6       0      0 :::10002                :::*                    LISTEN      106539/java 
tcp6       0      0 :::8088                 :::*                    LISTEN      106539/java
tcp6       0      0 :::12345                :::*                    LISTEN      106539/java  
tcp6       0      0 :::8443                 :::*                    LISTEN      72188/java  

 6、在tomcat服务器防火墙放行jmx协议的12345和10002端口

[[email protected] ~]# firewall-cmd --permanent --add-port=12345/tcp
success
[[email protected] ~]# firewall-cmd --permanent --add-port=10002/tcp
success
[[email protected]-v2 ~]# firewall-cmd --reload success

 7、用java自带的工具测试【jconsole.exe】和【jvisualvm.exe】

 7.1、【jconsole.exe】

显示效果

7.2、【jvisualvm.exe】

显示效果

8、开始在Zabbix Server配置JMX

9、增加JMX的模板

点击【更新】

由于设置账号和密码,批量修改用户名和密码

10、查看JMX是否配置成功



11、利用jmx协议自定义监控jvm堆使用内存(必须会)

11.1、利用【jconsole.exe】工具查询key项的值【这里以堆使用内存为例】

键值格式:
jmx["ObjectName",属性值]

11.2、组装jmx[]第一项值

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

11.3、组装jmx[]第二项

#最终监控项组装成功jmx["java.lang:type=Memory",HeapMemoryUsage.used]

 11.4、开始配置该监控项

11.5、配置画图

11.6、查看画图的效果

12、有关JVM更多参数的监控自行利用上面的工具,获取参数进行监控

原文地址:https://www.cnblogs.com/ygbh/p/12145371.html

时间: 2024-11-08 22:56:08

第十三篇、【Zabbix监控项之Jvm监控】的相关文章

第十篇、【Zabbix监控项之自定义监控磁盘IO】

一.自定义监控项获取磁盘IO所需的值 1.在zabbix Agent端配置文件配置如下内容 [[email protected]_3WYY_WEB ~]# vi /usr/local/zabbix-4.4.3/etc/zabbix_agentd.conf 305 ### Option: UserParameter 306 # User-defined parameter to monitor. There can be several user-defined parameters. 307 #

Zabbix添加自定义监控项之(监控mysql状态)

一.实验环境 Zabbixserver    192.168.1.103    版本:V3.0.4 ZabbixAgent    192.168.1.128 Mysql       192.168.1.102 二.监控需求 监控mysql的状态,当状态发生异常,发出报警 三.mysql添加监控监控脚本 3.1.使用mysqladmin工具来检测mysql状态 [email protected]:~# mysqladmin -uroot -p1qaz#EDC ping 说明:如果MySQL状态正常

第八篇、【Zabbix监控项之网卡流量监控】

1.增加入口流量的监控项[这个监控项可以在模板内增加,也可以在主机上面直接增加,具体看网卡标准化了没有] 键值 : net.if.in[eth2,bytes] #参数1指定网口,参数2是单位 2.入口流量的监控项-配置每秒更改的倍数,不然的话,画形有误差 倍数值的计算:从agent获取的数据是bytes即是字节,我们这里设置的单位是bps(bit per second) 单位换算:1byte = 8 bit,所以每秒需要乘于8 3.保存-eth2出口的流量的监控项 键值 : net.if.out

(十三)Zabbix_linux添加定义的ITEM监控项

(十三)Zabbix_linux添加定义的ITEM监控项 背景: 1.zabbix3.4.4服务器搭建完成 思路: 1.被监控端允许自定义监控项及创建自定义监控项 2.通过zabbix服务器端用zabbix_get命令测试是否正常显示数据 3.通过web端创建监控项以及触发器 4.本内容仅供参考,以便以后学习使用. 一.被监控端配置文件 1.在配置文件zabbix_agentd.conf中设置允许添加自定义监控项,去掉前面的#,然后书写正确的路径, 2.重启客户端服务 注意:先用pkill  -

Zabbix常用监控项

这是Zabbix系列的第四篇文章,主要介绍下我使用Zabbix监控过的项目. 建议阅读本篇文章前,可以在Zabbix官方文档上看一下,Zabbix可以监控哪些项目及key,以及不同服务器监控项的区别. 1. 监控进程内存 我们可以监控进程所占用的内存,可以据此判断程式的内存耗用量及有没有内存泄漏.注意Linux和windows监控方式不同. linux windows 监控内存,当然要对内存有所了解了,下面的3篇参考博客对此进行了介绍. buffer和cache怎么让你们解释的那么难理解? Li

zabbix学习笔记4-创建外部监控项

之前学习了如何使用zabbix自带的监控项来监控 zabbix的监控项的类型很多,这里讲如何创建外部监控项,外部监控是由zabbix server通过脚本来对节点进行获取信息的一个过程,被监控的节点不需要启动agentd也是可以被监控到的 如果不想传递任何参数,如下: script[] orscript zabbix server会再定义好的目录里面执行外部脚本(zabbix server中的配置extenalScripts),这个脚本将使用zabbix的运行用户身份运行.请注意权限以及只有指定

深入浅出Zabbix 3.0 -- 第六章 监控项配置与管理

第六章 监控项配置与管理 Zabbix系统中监控项(Items)的定义和管理非常重要,所有的监控指标都是通过定义不同的监控项收集数据.Zabbix通过主机作为一个逻辑单元组织和管理监控项,所有的监控项都必须属于某个主机,且在同一主机中只能有一个唯一的监控项存在. 6.1监控数据 Zabbix 不同于与大多数其他监控解决方案的一个重要特征是Zabbix通过监控项从被监控对象收集的数据是原始数据,而不是告警或状态的更新数据.大多数监控方案中,不管是通过agent或其他方法收集到监控数据后,会对该数据

zabbix的自定义监控项和触发器的配置

实例:自定义一个检查Linux系统根目录的使用情况的监控项. 1.配置一个自定义的监控项 (1).先配置获取根目录使用的当前情况的脚步,生产的脚步文件要有执行权限,如下: [[email protected] ~]# df -h | awk '{if(NR==2){print int($5)}}' //NR代表行,$5代表第5列 给脚本执行权限: 脚本执行结果: (2).把这个获取根目录使用情况的脚本在zabbix_agent中配置为监控项: #自定义监控项的key为my.dsp.count,后

青蛙学Linux&mdash;Zabbix Web使用之模板②监控项

监控项是模板中对于被监控主机的指定对象进行信息收集的配置,只有在模板中配置了监控项,这个模板才能收集到被监控主机的信息.所以监控项是模板中的最重要的项目,是获取监控数据的基础. 1.监控项的配置 点击具体模板中的监控项链接,即可看到该模板中所定义的全部监控项,点击具体监控项的链接,即可修改该监控项.这里查看模板Template OS Linux中的监控项: 点击具体的监控项可修改该监控项:点击"创建监控项"按钮,可以创建新的监控项,创建监控项页面如下: 名称:自定义的监控项名称 类型: