MegaRAID监控特性:

  • 原生linux shell/windows批处理脚本,兼容性更好

  • 基于Zabbix LLD自动发现,自动发现RAID卡适配器,RAID阵列组及物理磁盘(目前网络上仅支持自动发现物理磁盘)

  • 精准识别RAID阵列级别、阵列磁盘数量及热备盘数量,目前能够精准识别RAID0、1、5、6、10

  • 部署简单,一次部署,轻松使用,扩展监控项仅需在Web界面配置


系统要求:

  • zabbix版本>=2.0

  • 系统载体必须为物理服务器,并且阵列卡品牌为LSI,支持大部分DELL阵列卡(阵列卡型号H310/H330/H730等测试通过)


MegaRAID监控脚本及模板下载地址:
打包下载:MegaRAID-Monitoring.zip
模板下载:Template_Hardware_MegaRAID.xml

一、部署说明:

部署部分分为Linux操作系统及Windows操作系统
此文中Linux部分使用CentOS,兼容CentOS 5/6/7
Windows部分使用Windows Server 2008R2,兼容Windows Server 2003/2008/2012/2016

1、下载 MegaRAID-Monitoring.zip 并解压部署

Linux部署说明

① 解压后拷贝MegaRAID-Monitoring/linux/scripts文件夹下的所有脚本文件至被监控服务器并赋予执行权限,此处假设为/etc/zabbix/scripts(若目录不存在请自行创建)
cp MegaRAID-Monitoring/linux/scripts/* /etc/zabbix/scripts/ chmod +x /etc/zabbix/scripts/MegaRAID_*.sh

② 拷贝MegaRAID-Monitoring/linux/conf/userparameter_MegaRAID.conf配置文件至被监控服务器,此处假设为/etc/zabbix/zabbix_agentd.d/(zabbix agent默认配置文件路径)
cp MegaRAID-Monitoring/linux/conf/userparameter_MegaRAID.conf /etc/zabbix/zabbix_agentd.d/

注意:linux和windows的配置文件userparameter_MegaRAID.conf不是一个文件

zabbix_agentd.conf中必须包含Include=/etc/zabbix/zabbix_agentd.d/*.conf
若脚本文件不在/etc/zabbix/scripts/目录下,请修改userparameter_MegaRAID.conf中的脚本文件路径为实际脚本文件路径

③ 安装MegaRAID-Monitoring/linux/MegaCli-8.07.14-1.noarch.rpm
rpm -ivh MegaRAID-Monitoring/linux/MegaCli-8.07.14-1.noarch.rpm

④ 配置sudoers
cat >> /etc/sudoers << EOF ## Zabbix Configure Defaults:zabbix !requiretty zabbix ALL=(ALL) NOPASSWD: /opt/MegaRAID/MegaCli/MegaCli64 EOF

⑤ 重启zabbix agent
CentOS 5 & CentOS 6
$ service zabbix-agent restart

CentOS 7
$ systemctl restart zabbix-agent

Windows部署说明

① 解压后拷贝MegaRAID-Monitoring/windows/MegaCli目录至C:\program files

② 解压后拷贝MegaRAID-Monitoring/windows/scripts文件夹下的所有脚本文件至被监控服务器,此处假设为C:\program files\zabbix\scripts(若目录不存在请自行创建)

③ 拷贝MegaRAID-Monitoring/windows/conf/userparameter_MegaRAID.conf配置文件至被监控服务器,此处假设为C:\program files\zabbix\conf\zabbix_agentd.d

注意:linux和windows的配置文件userparameter_MegaRAID.conf不是一个文件
zabbix_agentd.conf中必须包含Include=C:\Program Files\zabbix\conf\zabbix_agentd.d\*.conf

若脚本文件不在C:\program files\zabbix\scripts目录下,请修改userparameter_MegaRAID.conf中的脚本文件路径为实际脚本文件路径

④ 重启zabbix agent
运行cmd,输入以下命令重启服务
net stop “Zabbix Agent”
net start “Zabbix Agent”

2、在zabbix web上导入模板并添加主机监控

下载模板文件:Template_Hardware_MegaRAID.xml(由zabbix 3.2导出)
等待数据采集,通过Zabbix Web上的Monitoring->Latest data即可看到阵列卡的状态信息,下面是样例(点击看大图)

二、自定义监控扩展说明

MegaRAID监控提供了在线Web添加监控项的功能,方便用户自定义添加监控内容
监控Key说明:在MegaRAID监控中,使用了7个自定义的监控Key,分别为:

MegaRAID.Adapter.discovery    # RAID阵列卡适配器自动发现(返回JSON数据)
MegaRAID.Adapter.Info[*]      # RAID阵列卡适配器状态监控(阵列卡ID+参数,例如获取阵列卡0的缓存大小:”MegaRAID.Adapter.Info[0,Memory Size]”,参数不区分大小写)
MegaRAID.VDisk.discovery      # RAID阵列自动发现(返回JSON数据)
MegaRAID.VDisk.Info[*]        # RAID阵列状态监控(阵列ID+参数,例如获取阵列0的状态:”MegaRAID.VDisk.Info[0,State]”,参数不区分大小写)
MegaRAID.VDisk.RAIDLevel[*]  # RAID阵列级别及磁盘数量监控(阵列ID,例如获取阵列0的信息:”MegaRAID.VDisk.RAIDLevel[0]”)
MegaRAID.PDisk.discovery      # 物理磁盘自动发现(返回JSON数据)
MegaRAID.PDisk.Info[*]        # 物理磁盘状态监控(物理磁盘ID+参数,例如获取磁盘ID为252:1的类型:”MegaRAID.PDisk.Info[252:1,PD Type]”,参数不区分大小写)

补充说明:若无法获取指定参数或者参数不存在,则返回字符串”Unknown”
获取参数的方法:

/opt/MegaRAID/MegaCli/MegaCli64 -AdpAllInfo -aALL -NoLog        # 获取RAID阵列卡适配器参数列表
/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -LALL -aALL -NoLog      # 获取RAID阵列参数列表
/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL -NoLog            # 获取物理磁盘参数列表

参数仅需填写冒号左边的字符串,例如:获取RAID阵列卡适配器的缓存大小
使用/opt/MegaRAID/MegaCli/MegaCli64 -AdpAllInfo -aALL -NoLog得到”Memory Size : 256MB”,则参数仅需填写”Memory Size”

若无法确定参数是否正确,可使用命令来确认:
zabbix_agentd -t “MegaRAID.Adapter.Info[0,Memory Size]”
MegaRAID.Adapter.Info[0,Memory Size] [t|256MB]

为确保自定义的监控能够应用在每个RAID阵列卡适配器(RAID阵列/物理磁盘)上,请在模板中相对应的自动发现规则中添加,建议使用克隆的方式添加新的监控项,自动发现规则列表:

MegaRAID Adapter discovery             # RAID阵列卡适配器自动发现规则
MegaRAID VirtualDisk discovery         # RAID阵列自动发现规则
MegaRAID PhysicalDisk discovery      # 物理磁盘自动发现规则

转载:http://www.madown.com/2017/09/26/基于zabbix的megaraid阵列卡状态监控/