• Zabbix 监控 SNMP & JMX


    Zabbix 配置清华源

    # 安装清华源 yum 仓库
    [root@db01 ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
    # 安装后,发现 zabbix.repo 中的链接还是国外的地址,自己更改 zabbix.repo 内容
    [root@db01 tomcat]# cat /etc/yum.repos.d/zabbix.repo
    [zabbix]
    name=Zabbix Official Repository - $basearch
    baseurl=http://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/$basearch/
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
    
    [zabbix-non-supported]
    name=Zabbix Official Repository non-supported - $basearch
    baseurl=http://mirrors.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/$basearch/
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
    gpgcheck=1
    

    Zabbix 监控 JMX

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

    JMX 在 Zabbix 中的运行流程

    - Zabbix-Serve r 找 Zabbix-Java-Gateway 获取 Java 数据
    - Zabbix-Java-Gateway 找 Java程序 获取数据
    - Java 程序返回数据给 Zabbix-Java-Gateway
    - Zabbix-Java-Gateway 返回数据给 Zabbix-Server
    - Zabbix-Server 将数据写入数据库
    - Zabbix-web 从数据库获取数据并再页面展示
    

    配置 JMX 监控的步骤

    - 安装 Zabbix-Java-Gateway。
    - 配置 zabbix-java-gateway.conf 参数。
    - 配置 zabbix-server.conf 参数。
    - Tomcat 应用开启JMX协议。
    - Zabbix-Web 配置 JMX 监控的 Java 应用。
    

    环境准备

    角色 IP 部署
    zabbix-server 10.0.0.71/172.16.1.71 zabbix-server、zabbix-java-gateway
    zabbix-agent 10.0.0.51/172.16.1.51 tomcat、zabbix-agent

    部署 Tomcat

    # 1.下载或上传 tomcat 包,解压代码包
    [root@web01 ~]# tar xf apache-tomcat-9.0.30.tar.gz -C /usr/local
    [root@web01 ~]# ln -s /usr/local/apache-tomcat-9.0.30 /usr/local/tomcat
    
    # 配置 java 环境
    #### 1.上传并解压至指定文件夹
    [root@web01 server]# tar xf jdk-8u40-linux-x64.gz -C /usr/local/
    [root@web01 server]# mv /usr/local/jdk1.8.0_40 /usr/local/java1.8
    #### 2.修改添加环境变量
    [root@web01 server]# vim /etc/profile.d/java.sh
    export JAVA_HOME=/usr/local/java1.8
    export JRE_HOME=/usr/local/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
    
    # 配置 tomcat 页面
    [root@web01 server]# echo "tomcat" > /usr/local/tomcat/webapps/ROOT/index.html
    
    # 启动 tomcat,启动的时候最好看着日志
    [root@web01 server]# /usr/local/tomcat/bin/startup.sh && tail -f  /usr/local/tomcat/logs/catalina.out
    

    配置 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=172.16.1.51"
    
    
    # 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=172.16.1.51"
    
    # 重启 tomcat
    [root@web01 server]# /usr/local/tomcat/bin/shutdown.sh
    [root@web01 server]# /usr/local/tomcat/bin/startup.sh && tail -f /usr/local/tomcat/logs/catalina.out
    

    Zabbix 服务端安装 zabbix-java-gateway

    [root@zabbix ~]# yum install -y zabbix-java-gateway 
    

    配置 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
    

    启动 zabbix-java-gateway

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

    配置 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
    

    重启 zabbix-server

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

    Zabbix 添加监控

    Zabbix 监控 SNMP

    SNMP 简介

    简单网络管理协议(SNMP) 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及 HUBS 等)的一种标准协议,它是一种应用层协议

    MIB	SNMP 中的 MIB 是一种树状数据库,MIB 管理的对象,就是树的端节点,每个节点都有唯一位置和唯一名字.IETF规定管理信息库对象识别符(OID,Object Identifier)唯一指定,其命名规则就是父节点的名字作为子节点名字的前缀。
    
    # OID 对照表
    https://blog.csdn.net/buster2014/article/details/46925633
    

    安装 SNMP 服务端

    Zabbix 监控其他服务器 SNMP 状态时,是作为客户端监控的,所以服务端是被监控主机:

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

    配置 SNMP

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

    启动 SNMP

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

    验证服务

    [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
    

    配置 SNMP 客户端

    # Zabbix Server 上安装
    [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.51 .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.51 
    
  • 相关阅读:
    敏捷开发设计模式的五大原则(读敏捷软件开发:原则、模式与实践笔记记录一下)
    使用AOP和Semaphore对项目中具体的某一个接口进行限流
    java正则使用全记录!
    推荐一本书学习springcloud书籍的SpringCloud微服务全栈技术与案例解析
    使用springboot Admin 2.0.6版本 集成监控springcloud微服务应用
    推荐一本学习Groovy的书籍Groovy程序设计!
    Datagrip 快捷键和常用插件持续更新一集一些使用技巧
    Eclipse中项目不会自动编译问题的坑和注意点
    使用Groovy的mixin方法注入,和mixedIn属性实现过滤链
    vscode常用快捷键和插件(持续更新),以及一些常用设置的坑和技巧
  • 原文地址:https://www.cnblogs.com/zzzwqh/p/13669742.html
Copyright © 2020-2023  润新知