(18)主动监控:
相对于主动监控,被动监控需要消耗掉更多的资源,所以当集群中压力比较大的情况下,建议使用主动监控;如果压力还是很大,则需要使用proxy来分担zabbix的部分压力;
zabbix server上的某主机上,直接定义Item时随便定义一个不与其它已有key冲突的key即可,即item type为"zabbix trapper";
注意:对于正常状态下的监控,Item中使用key来获取数据,需要指定的Type为Zabbix agent(active);如果我们想要手动发送一串数据给服务端,并且让服务端捕获,并生成一个监控信息的话,需要使用zabbix trapper;两者其实都是由Agent发送数据给server。不同的是,Zabbix Agent(active)使用的是已经定义的key;而zabbix trapper使用的是通过zabbix_sender命令发送的数据,这种方式经常用于实验环境;
实验:主动监控-zabbix agent(active),只需要Agent端打开主动监控的配置,然后web-GUI中配置的Item使用zabbix agent(active)的type即可,此处不做演示!
实验:主动监控-zabbix trapper:
zabbix_sender -z 192.168.109.7 -p 10051 -s node1.com -k send.test.data -o 156
info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000609"
zabbix_sender -z 192.168.109.7 -p 10051 -s node1.com -k send.test.data -o 651
info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.040468"
(19)基于SNMP(简单网络管理协议)协议的监控(仅需要了解即可):
注意:以上的监控都是基于Zabbix Agent服务来实现监控的;
MIB:Management Information Base,管理信息数据库
使用SNMP协议监控设备,监控的对象一般是交换机、路由器等设备;
实验:实现基于SNMP的监控:
yum install net-snmp net-snmp-utils
snmpget -v 2c -c public 192.168.109.6 .1.3.6.1.2.1.1.3.0#本机验证
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (15878) 0:02:38.78
snmpget -v 2c -c public 192.168.109.6 .1.3.6.1.2.1.1.5.0#本机测试
SNMPv2-MIB::sysName.0 = STRING: node2
snmpwalk -v 2c -c public 192.168.109.6 .1.3.6.1.2.1.25#本机测试
HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (1752903) 4:52:09.03
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
view systemview included .1.3.6.1.2.1.2 # 网络接口的相关数据
view systemview included .1.3.6.1.4.1.2021
#系统资料负载,memory, disk io, cpu load
注意:此处的实验使用了Linux OS,实际生产中,一般使用SNMP来配置路由器或者交换机。一定要注意,配置之前,先在SNMP的配置文件中启用该分支,还要了解该分支下有哪些OID,代表的含义是什么,并设置好ACL,确保有监控的权限;
注意:/etc/snmp/snmpd.conf配置文件的结构:
注意:真正的管理端需要启用的是/usr/lib/systemd/system/snmptrapd.service服务;被管控端需要启用/usr/lib/systemd/system/snmpd.service服务;
注意:默认情况下,snmpd服务(161端口)开放的就是一个只读的权限,配置文件默认所授予的可以访问的资源应该够SNMP的基础应用!
注意:使用SNMP访问的常见资源是:
如果以监控tomcat为例,首先需要在/etc/sysconfig/tomcat文件中添加:
-Djava.rmi.server.hostname=TOMCAT_SERVER_IP
-Djavax.management.builder.initial= -Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"
注意:CATALINA_OPTS表示仅对tomcat有效,如果是JAVA_OPTS表示对所有的JAVA进程都有效!
然后安装zabbix-java-gateway.x86_64;
之后还需要在Zabbix server端指明zabbix-java-gateway的IP、端口号、以及开启的进程:
实验:实现基于JMX的监控:
systemctl start tomcat.service
ss -ntlu #查看tcp的12345端口是否打开,确定配置是否正常!
yum install zabbix-java-gateway.x86_64
vim zabbix_java_gateway.conf#默认配置即可,此处只是为了确认一下;
systemctl restart zabbix-java-gateway.service
vim /etc/zabbix/zabbix_server.conf
systemctl restart zabbix-server.service
systemctl status zabbix-server.service#查看5个poller进程是否正常运行;
注意:实验中所使用的监控项的含义:
jmx[object_name,attribute_name]
attribute name - 一个MBean属性名称,可选的复合数据字段名称以点分隔
示例:jmx["java.lang:type=Memory","HeapMemoryUsage.used"]
https://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html
注意:如果使用系统提供的模板,可能会应为没有启用该项功能而导致不支持,例如8443端口,一般是不开启的;