zabbix监控方式 - 18965050/zabbix GitHub Wiki
在zabbix的web界面中, 可对Agent, SNMP, JMX IPML这四种协议的可用性状态进行显示. 绿色图标表示处于正确状态, 红色则表示不可用
![]()
agent监控方式分为主动和被动, 需要安装zabbix-agent, 前面已有介绍
trapper监控方式类似于agent的主动推送方式, 但不需要安装客户端. key的名称可以灵活定义, 意味着zabbix-server可以接收需要的任意数据 trapper方式通过zabbix-sender进行发送. 配置步骤如下:
-
安装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
-
web界面中配置Host, Host中的Agent Interface可以随便配置, 因为server并不会实际检测. 但为了方便起见, 一般配置为trapper发送机器的IP地址

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

-
使用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
-
在web界面的"Monitoring-->Lastest Data"中,可以看到server接收到的值

-
可通过定时任务或程序调用zabbix_sender来完成实际数据的发送监控
snmp(Simple Network Management Protocol)管理包含两部分: 管理进程和被管理设备 其通信方式有如下三种:
- 被管理端向管理端发送数据(trap)
- 管理端向被管理端请求获取数据(get/getNext)
- 管理端向被管理端请求改变数据(set)
SNMPv1和SNMPv2c机制基本相同, SNMPv2c丰富了错误码, 新增了GetBulk操作 SNMPv3新增了认证, 加解密处理
任何一个被管理资源都表示为一个对象, 称为被管理对象. 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服务
yum install net-snmp
-
修改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
-
在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
-
Host配置SNMP interface

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

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

如果要进行监控告警, 可自行配置trigger和action
IPMI(Intelligent Platform Management Interface)即智能平台管理接口, 原本是Intel架构中企业系统的周边设备所采用的一种工业标准, 后来成为业界通用的标准.
IPMI可用于监控服务器的物理特征, 比如温度,电压, 电扇工作状态, 电源及机箱入侵等等
zabbix可以通过zabbix-java-gateway来查询远程机器的JMX数据信息.

其配置步骤为:
-
zabbix-server宿主机上配置并开启zabbix-java-gateway.
- 如果是rpm安装,执行
yum install java java-devel zabbix-java-gateway
如果是源码安装, 需要配置
--enable-java参数- 配置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请求无响应的情况
- 启动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
-
对远程机器上要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
-
zabbix web UI中Host配置JMX interface

-
zabbix web UI中Item配置JMX方式的Item

其中, 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"}
-
如果一切正常, 可以看到JMX icon显示为绿色, 并在"Monitoring-->Lastest Data"中看到采集到的JMX数据
