zabbix监控方式 - 18965050/zabbix GitHub Wiki

在zabbix的web界面中, 可对Agent, SNMP, JMX IPML这四种协议的可用性状态进行显示. 绿色图标表示处于正确状态, 红色则表示不可用 protocol-icon

agent监控方式

agent监控方式分为主动和被动, 需要安装zabbix-agent, 前面已有介绍

trapper监控方式

trapper监控方式类似于agent的主动推送方式, 但不需要安装客户端. key的名称可以灵活定义, 意味着zabbix-server可以接收需要的任意数据 trapper方式通过zabbix-sender进行发送. 配置步骤如下:

  1. 安装zabbix_sender

    yum install epel-release
    rpm --import http://repo.zabbix.com/RPM-GPG-KEY-ZABBIX
    rpm -Uv http://repo.zabbix.com/zabbix/2.4/rhel/7/x86_64/zabbix-release-2.4-1.el7.noarch.rpm
    yum install zabbix-sender
  2. web界面中配置Host, Host中的Agent Interface可以随便配置, 因为server并不会实际检测. 但为了方便起见, 一般配置为trapper发送机器的IP地址 traper-config-host

  3. web界面配置Item, type选择"Zabbix trapper",Type of information选择zabbix_sender发送的数据类型 trapper-config-item

  4. 使用zabbix_sender发送消息

    -z: zabbix-server IP地址
    -p: zabbix-server端口号
    -s: 主机名称, 和Web中Host的Host name一致
    -k: key名称, 和Web中Item的key一致
    -o: 发送的数据
    zabbix_sender -z 192.168.56.101 -p 10051 -s "99.100" -k trapperlog -o "trapper work is ok" -vv
    
    # 如果发送成功, 会响应
    zabbix_sender [4679]: DEBUG: answer [{"response":"success","info":"processed: 1;failed: 0; total: 1; seconds spent: 0.000092"}]
    info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000092" sent: 1; skipped: 0; total: 1
  5. 在web界面的"Monitoring-->Lastest Data"中,可以看到server接收到的值 trapper-server-receive-data

  6. 可通过定时任务或程序调用zabbix_sender来完成实际数据的发送监控

snmp监控方式

snmp(Simple Network Management Protocol)管理包含两部分: 管理进程和被管理设备 其通信方式有如下三种:

  • 被管理端向管理端发送数据(trap)
  • 管理端向被管理端请求获取数据(get/getNext)
  • 管理端向被管理端请求改变数据(set)

snmp协议原理

SNMPv1和SNMPv2c机制基本相同, SNMPv2c丰富了错误码, 新增了GetBulk操作 SNMPv3新增了认证, 加解密处理

MIB

任何一个被管理资源都表示为一个对象, 称为被管理对象. MIB是被管理对象的集合. 其定义了被管理对象的一系列属性: 对象的名称, 对象的访问权限和对象数据类型等等.

MIB视图是MIB的一个子集合. 在配置agent时, 用户可以将团体名/用户名和MIB视图绑定, 限制NMS访问的MIB对象.配置MIB视图可以配置为excluded和included. excluded表示当前视图不包含MIB子树的所有节点, included表示当前视图包含MIB子树的所有节点.

OID是MIB树状结构从根节点开始的唯一标识符 子树掩码可以和子树的OID共同确定一个视图的范围.子树掩码中1表示精确匹配, 0表示通配. 比如子树掩码为0xDB时(11011011),子树OID为1.3.6.1.6.1.2.1,其最终确定的子树范围为1.3..1.6..2.1

相关术语

snmp-item

配置流程

  1. 对被管理设备安装SNMP服务

    yum install net-snmp
  2. 修改snmp服务配置文件/etc/snmp/snmpd.conf,配置文件修改如下:

    com2sec notConfigUser default public
    group notConfigGroup v2c notConfigUser
    access notConfigGroup "" any noauth exact all none none
    view all included .1 80
    view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
    #access notConfigGroup "" any noauth exact roview rwview none
  3. 在zabbix-server上测试被管设备的snmp是否可用

    yum install net-snmp-utils	# 安装snmp工具
    snmpwalk -v 2c -c public 192.168.56.102 SNMPv2-MIB::sysUpTime.0
    
    #出现以下响应表示snmp功能正常
    DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (552069) 1:32:00.69
  4. Host配置SNMP interface snmp-config-host

  5. 在zabbix web界面中配置Template或Host的Item, 如果使用宏则可配置模板或主机的宏 snmp-config-item

  6. 先判断"SNMP" icon是否变为绿色(表明SNMP连接正常), 再在Monitoring-->Lastest Data中查看获取到的数据 snmp-get-data

如果要进行监控告警, 可自行配置trigger和action

IPM监控方式

IPMI(Intelligent Platform Management Interface)即智能平台管理接口, 原本是Intel架构中企业系统的周边设备所采用的一种工业标准, 后来成为业界通用的标准.

IPMI可用于监控服务器的物理特征, 比如温度,电压, 电扇工作状态, 电源及机箱入侵等等

JMX监控方式

zabbix可以通过zabbix-java-gateway来查询远程机器的JMX数据信息. zabbix-jmx-principle

其配置步骤为:

  1. zabbix-server宿主机上配置并开启zabbix-java-gateway.

    1. 如果是rpm安装,执行
    yum install java java-devel zabbix-java-gateway

    如果是源码安装, 需要配置--enable-java参数

    1. 配置zabbix-java-gateway的配置文件zabbix_java_gateway.conf
    LISTEN_IP="0.0.0.0"		# 默认
    LISTEN_PORT=10052		# 默认
    START_POLLERS=30		

    修改zabbix-server的配置文件zabbix_server.conf

    JavaGateway=192.168.56.101
    JavaGatewayPort=10052
    StartJavaPollers=5

    要求StartJavaPollers配置数量<=START_POLLERS的数量, 否则会出现zabbix-server向zabbix-java-gateway请求无响应的情况

    1. 启动zabbix-java-gateway,zabbix-server
    systemctl start zabbix-java-gateway		#启动zabbix-java-gateway
    systemctl status zabbix-java-gateway		#查看zabbix-java-gateway状态
    systemctl enable zabbix-java-gateway		#开机启动zabbix-java-gateway
    
    systemctl restart zabbix-server
  2. 对远程机器上要JMX监控的应用开启JMX连接

    java -Dcom.sun.management.jmxremote=true \
    	 -Dcom.sun.management.jmxremote.port=10053 \		# 这个是应用JMX连接端口, 不是zabbix-java-gateway暴露的jmx端口
    	 -Dcom.sun.management.jmxremote.authenticate=false \
    	 -Dcom.sun.management.jmxremote.ssl=false
    	 -jar Notepad.jar
  3. zabbix web UI中Host配置JMX interface host-jmx-interface

  4. zabbix web UI中Item配置JMX方式的Item item-jmx-config

    其中, Type配置为"JMX Agent", key配置为jmx[<objectName>,<attribute name>]的格式. 这里,提供一个shell脚本, 可验证Item中key配置是否正确. zabbix_jmx_get

    使用方式如下:

    zabbix_jmx_get.sh <zabbix-java-gateway-ip> <gateway-port> <remote-jmx-ip> <remote-jmx-port> key
    
    # 举例如下:
    zabbix_jmx_get.sh 192.168.56.101 10052 192.168.56.1 10053  'jmx[\"java.lang:type=Memory\",HeapMemoryUsage.used]'
    
    # 输出
    {"data":[{"value":"18645312"}],"response":"success"}
  5. 如果一切正常, 可以看到JMX icon显示为绿色, 并在"Monitoring-->Lastest Data"中看到采集到的JMX数据 jmx-data-received

⚠️ **GitHub.com Fallback** ⚠️