• Zabbix监控JVM & SNMP


    一、zabbix监控JMX


    在Zabbix中,JMX监控数据的获取由专门的代理程序来实现,即Zabbix-Java-Gateway来负责数据的采集,Zabbix-Java-Gateway和JMX的Java程序之间通信获取数据,zabbix2.0之后引入的一个功能。顾名思义:Java网关,类似agentd,但是只用于Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到server或者proxy
    

    1.JMX在Zabbix中的运行流程

    1.Zabbix-Server找Zabbix-Java-Gateway获取Java数据
    2.Zabbix-Java-Gateway找Java程序(zabbix-agent)获取数据
    3.Java程序返回数据给Zabbix-Java-Gateway
    4.Zabbix-Java-Gateway返回数据给Zabbix-Server
    5.Zabbix-Server将数据写入数据库
    6.Zabbix-web从数据库获取数据并再页面展示
    

    2.配置JMX监控的步骤

    1.安装Zabbix-Java-Gateway。
    2.配置zabbix_java_gateway.conf参数。
    3.配置zabbix-server.conf参数。
    4.Tomcat应用开启JMX协议。
    5.Zabbix-Web配置JMX监控的Java应用。
    
    通俗一点说:
    zabbix_java_gateway会主动获取jvm中的数据,zabbix-server主动收集zabbix_java_gateway中的数据并将数据存储至数据库,web通过调用数据库实现页面展示。
    

    3.环境准备

    角色 IP 部署
    zabbix-server 10.0.0.71 zabbix-server、zabbix-java_gateway
    zabbix-agent 10.0.0.7 tomcat、zabbix-agent

    4.部署tomcat

    #1.下载或上传tomcat包
    [root@web01 ~]# mkdir /server
    [root@web01 ~]# cd /server
    [root@web01 server]# rz apache-tomcat-9.0.30.tar.gz
    
    #2.解压代码包
    [root@web01 server]# tar xf apache-tomcat-9.0.30.tar.gz
    
    #3.配置java环境
    1.上传并解压至指定文件夹
    [root@web01 server]# tar xf jdk-8u40-linux-x64.gz -C /server/
    [root@web01 server]# mv jdk1.8.0_40 java1.8
    2.修改添加环境变量
    [root@web01 server]# vim /etc/profile.d/java.sh
    export JAVA_HOME=/server/java1.8
    export JRE_HOME=/server/java1.8/jre
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
    export PATH=$PATH:$JAVA_HOME/bin
    [root@web01 server]# source /etc/profile
    
    #4.配置tomcat页面
    [root@web01 server]# echo "tomcat" > apache-tomcat-9.0.30/webapps/ROOT/index.html
    
    #5.启动tomcat,启动的时候最好看着日志
    [root@web01 server]# /server/apache-tomcat-8.5.51/bin/startup.sh && tail -f /server/apache-tomcat-8.5.51/logs/catalina.out
    

    5.搭建jpress

    [root@web01 server]# cd /server/tomcat/webapps/
    [root@web01 webapps]# rz jpress.war
    

    6.重启tomcat

    [root@web01 ~]# /server/tomcat/bin/shutdown.sh 
    Using CATALINA_BASE:   /server/tomcat
    Using CATALINA_HOME:   /server/tomcat
    Using CATALINA_TMPDIR: /server/tomcat/temp
    Using JRE_HOME:        /usr
    Using CLASSPATH:       /server/tomcat/bin/bootstrap.jar:/server/tomcat/bin/tomcat-juli.jar
    
    [root@web01 ~]# /server/tomcat/bin/startup.sh 
    Using CATALINA_BASE:   /server/tomcat
    Using CATALINA_HOME:   /server/tomcat
    Using CATALINA_TMPDIR: /server/tomcat/temp
    Using JRE_HOME:        /usr
    Using CLASSPATH:       /server/tomcat/bin/bootstrap.jar:/server/tomcat/bin/tomcat-juli.jar
    Tomcat started.
    

    7.创建数据库

    create database jpress
    
    grant all on *.* to jpress@'172.16.1.%' identified by '123';
    

    8.配置tomcat开启jvm

    [root@linux-node1 ~]# vim /usr/local/tomcat/bin/catalina.sh
    CATALINA_OPTS="$CATALINA_OPTS 
    -Dcom.sun.management.jmxremote 
    -Dcom.sun.management.jmxremote.port=12345 
    -Dcom.sun.management.jmxremote.authenticate=false 
    -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=10.0.0.7"
    
    #jvm配置文件解释
    CATALINA_OPTS="$CATALINA_OPTS
    //启用远程监控JMX
    -Dcom.sun.management.jmxremote
    //jmx启用远程端口,Zabbix添加时必须一致
    -Dcom.sun.management.jmxremote.port=12345
    //不开启用户密码认证
    -Dcom.sun.management.jmxremote.authenticate=false
    //不启用ssl加密传输
    -Dcom.sun.management.jmxremote.ssl=false
    //运行tomcat主机的IP地址
    -Djava.rmi.server.hostname=10.0.0.7"
    
    #重启tomcat
    [root@web01 server]# /server/apache-tomcat-8.5.51/bin/shutdown.sh
    [root@web01 server]# /server/apache-tomcat-8.5.51/bin/startup.sh && tail -f /server/apache-tomcat-8.5.51/logs/catalina.out
    

    9.配置hosts

    [root@web01 ~]# vim /etc/hosts
    10.0.0.7 web01
    

    10.zabbix服务端安装zabbix-java-gateway

    [root@zabbix ~]# yum install -y https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-java-gateway-4.0.1-1.el7.x86_64.rpm
    
    #或者
    [root@zabbix ~]# yum localinstall -y zabbix-java-gateway-4.0.1-1.el7.x86_64.rpm 
    

    11.配置zabbix-java-gateway

    [root@zabbix ~]# grep -Ev "^$|#" /etc/zabbix/zabbix_java_gateway.conf
    LISTEN_IP="0.0.0.0"
    LISTEN_PORT=10052
    PID_FILE="/var/run/zabbix/zabbix_java.pid"
    START_POLLERS=5
    TIMEOUT=5
    

    12.启动zabbix-java-gateway

    [root@zabbix ~]# systemctl start zabbix-java-gateway.service
    

    13.配置zabbix-server

    [root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf
    #java-gateway地址
    JavaGateway=10.0.0.71
    #java-gateway端口
    JavaGatewayPort=10052
    #启动进程轮询java gateway
    StartJavaPollers=5
    

    14.重启zabbix-server

    [root@zabbix ~]# systemctl restart zabbix-server.service
    

    15.zabbix添加监控


    二、zabbix监控SNMP

    1.SNMP简介

    简单网络管理协议(SNMP) 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。
    
    MIB	SNMP中的MIB是一种树状数据库,MIB管理的对象,就是树的端节点,每个节点都有唯一位置和唯一名字.IETF规定管理信息库对象识别符(OID,Object Identifier)唯一指定,其命名规则就是父节点的名字作为子节点名字的前缀。 [1]
    
    OID	
    #OID对照表
    	https://blog.csdn.net/buster2014/article/details/46925633
    

    2.安装SNMP服务端

    #zabbix客户端安装
    [root@web01 ~]# yum install -y net-snmp
    

    3.配置SNMP

    [root@web01 ~]# vim /etc/snmp/snmpd.conf
    com2sec notConfigUser  default       123456
    view    systemview    included   .1
    

    4.启动SNMP

    [root@web01 ~]# systemctl start snmpd.service
    

    5.验证服务

    [root@web01 ~]# netstat -lntup | grep snmp
    tcp        0      0 127.0.0.1:199           0.0.0.0:*               LISTEN      73647/snmpd         
    udp        0      0 0.0.0.0:161             0.0.0.0:*                           73647/snmpd
    

    6.配置SNMP客户端

    [root@zabbix ~]# yum install -y net-snmp-utils
    
    #命令
    [root@zabbix ~]# snmpwalk --help
    -v 	1|2c|3		specifies SNMP version to use		#指定使用的SNMP版本
    -c  COMMUNITY	set the community string			#指定口令,一般是public,我们改成123456
    
    #测试获取监控信息
    [root@zabbix ~]# snmpwalk -v 2c -c 123456 172.16.1.7 .1.3.6.1.2.1.1.5.0
    SNMPv2-MIB::sysName.0 = STRING: web01
    
    #查看所有可以监控的值
    [root@zabbix ~]# snmpwalk -v 2c -c 123456 172.16.1.7
    


    因在客户端中有配置snmp对应密码,所以需要将宏里面的public修改为客户端密码

  • 相关阅读:
    关于c++中 get 和getline
    使用参数初始化表来实现对数据成员的初始化
    关于c++中运算符重载
    关于c++的友元函数
    C#控制台程序点击后暂停工作
    hhgame
    记字符编码与转义符的纠缠
    如何向非技术人(程序猿)解释SQL注入?
    记VS2013并行编译导致出错的解决过程
    记32位Oracle客户端登录报12560协议适配器错误的解决办法
  • 原文地址:https://www.cnblogs.com/tcy1/p/13675837.html
Copyright © 2020-2023  润新知