关于Zabbix监控服务器硬的件信息,Zabbix官方网站没有提到这方面的监控思路和方法。之前我写的博文中写过关于HP服务器硬件监控的文章,大致的思路是借助HP管理工具通过脚本的方式取出硬件的信息,然后以trapper的方式通过进行监控,得到好多博友的支持,在此特别感谢。
通过脚本的方式监控服务器硬件信息,有以下三个缺点:
1) 通过agent的方式监控会超时,取不到值。
2)通过trapper的方式需要每台机器添加crontab,部署起来麻烦。
3)脚本通用性差,只适合Linux机器。
4)G8的服务器执行管理命令非常慢。
由于通过脚本监控硬件有以上几个缺点,因此后来研究了HP代理。通过HP代理和SNMP监控HP服务器的硬件,需要安装snmp服务和HP代理工具。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#需要安装的软件包
yum
install
-y net-snmp net-snmp-util
hpacucli-9.40-12.0.x86_64.rpm
hp-snmp-agents-9.40-2506.37.rhel6.x86_64.rpm
hp-health-9.40-1602.44.rhel6.x86_64.rpm
#SNMP安装完成后需要修改snmpd.conf的配置文件。
dlmod cmaX
/usr/lib/libcmaX
.so
rwcommunity sfzhang 127.0.0.1
#可读可写
rocommunity public 127.0.0.1
#只读
syscontact Root <root@localhost>
syslocation Shanghai China
view all included .1 80
access notConfigGroup
""
any noauth exact all none none
#启动相关的服务
/etc/init
.d
/hp-snmp-agents
start
/etc/init
.d
/hp-health
start
/etc/init
.d
/snmpd
start
|
然后通过snmpwalk命令测试是否可以获取数据,下面获取的是HP服务器各部件的实际温度值。
创建监控模板,通过Zabbix Low-level discovery 可以自动创建监控项,触发器和图像。Zabbix官方文档中LLD支持以下三种监控自动发现:
1)文件系统自动发现
2)服务器网卡的自动发现
3)SNMP OID的自动发现
下面通过第三种方法来监控HP服务器硬件信息,以SNMP监控HP服务器阵列卡为例子来说明一下实现原理。
1)首先创建监控模板和Applications。
2)点击模板的discovery->Create discovery rule。
3)创建监控项目Create item prototype。HP代理中的MIB信息没有被解析成具体的设备名称,因此Name中的#SNMPVALUE就是为了区分多个设备名称,如HardDisk_0_status,HardDisk_1_status表示第一个硬盘和第二个硬盘的状态。
4)创建触发器Create trigger prototype。HP服务器硬盘,阵列卡,逻辑磁盘等的状态正常返回值都是2,如果不是2,说明有问题,触发报警。
5)用同样的方法可以监控HP硬盘的状态,逻辑磁盘的状态,风扇的状态,HP各部件的温度等。
6)下面通过DDL自动发现服务器的物理硬盘的监控项和触发器,有多少个硬盘就会有多少个监控项和触发器。
7)Link模板到监控主机上面,当主机整列卡有问题的时候会报警。
总结:
1)SNMP协议是通用的,该模板不仅可以监控HP Linux机器,还可以监控HP Windows机器。
2)HP代理常用的OID,其它的还很多,大家去慢慢研究。
HP阵列卡状态:1.3.6.1.4.1.232.3.2.2.1.1.6
物理磁盘状态:1.3.6.1.4.1.232.3.2.5.1.1.6
逻辑磁盘状态:1.3.6.1.4.1.232.3.2.3.1.1.4
HP部件温度:1.3.6.1.4.1.232.6.2.6.8.1.4
3)Zabbix不仅对各种操作系统,应用程序监控很好,而且对服务器硬件的监控也非常棒。
4)hp-snmp-agents cmaperfd进程的CPU经常显示100%,可以用下面的方法禁用,编辑
/opt/hp/hp-snmp-agents/cma.conf配置文件,在最下面添加exclude cmaperfd,然后重启代理服务即可
/etc/init.d/hp-snmp-agents restart