linux如何看硬盘报警,全网最简单方式实现linux/windows服务器硬盘raid监控&报警

本文介绍了通过megacli工具配合zabbix服务端模板,实现Linux和Windows服务器硬盘RAID状态的自动监控和报警。通过在客户端安装megacli,创建Zabbix模板和触发器,定期发送硬盘状态信息到zabbix服务端,当硬盘状态不正常时触发报警。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录背景思路zabbix服务端模板客户端实现(centos)客户端实现(windows)最终效果

背景

服务器最容易故障的部件,非硬盘莫属,相比人工巡检,自动监控更靠谱些

这里使用megacli工具+zabbix实现

megicli下载链接:megicli 密码:yagm

win版awk下载链接:awk 密码:mklz

思路

megacli可以列出raid卡中所有物理硬盘的状态

megacli -PDlist -aAll

zabbix使用lld低阶发现,创建发现的硬盘item,再使用trapper模式将megacli读取出的硬盘信息过滤推送给zabbix服务端(使用推模式不用考虑zabbix用户执行权限问题)

zabbix服务端模板

新建模板raid_check,添加discovery规则disk_discover,key为discovery,类型为trapper

9f2217365f4c9f6522a05c3f34c85b17.png

discovery规则可通过推送格式如下的json获取变量,NAME可以替换为其它名称

{"data":

[

{"{#NAME}":"value1"},

......

]

}

添加Item prototypes,对应json里面的变量

7e71c7593a62df322f938acd9b388da4.png

添加Trigger prototypes,配置返回值不为Online时报警

7a158a7f6d9ce5d619bc3d2159c23229.png

zbx模板下载:链接:raidcheck模板 密码:w8f1

客户端实现(centos)

#安装megacli

rpm -ivh http://rpmfind.net/linux/Mandriva/devel/cooker/x86_64/media/non-free/release/megacli-8.02.21-1-mdv2012.0.x86_64.rpm

mkdir -p /root/optools/raidcheck

cat >/root/optools/raidcheck.sh<

#!/bin/bash

#发送pd数量到zabbix

/usr/local/zabbixagent/bin/zabbix_sender -c /usr/local/zabbixagent/conf/zabbix_agentd.conf -k disk_discovery -o \`megacli -PDlist -aAll -NoLog|grep Slot|awk 'BEGIN{printf "{\"data\":["} {printf ",{\"{#NAME}\":\"%s\"}", \$NF} END{ printf "]}"}' | sed 's/\[,/\[/g'\`

#生成raid状态列表临时文件

megacli -PDlist -aALL -NoLog|grep state|awk -F '[ |,]' '{print "-","raid_status""["(NR-1)"]",\$3}'>/tmp/raid_status.log

#发送raid状态到对应的item

/usr/local/zabbixagent/bin/zabbix_sender -c /usr/local/zabbixagent/conf/zabbix_agentd.conf -i /tmp/raid_status.log

EOF

#配置计划任务

echo "*/30 * * * * root sh /root/optools/raidcheck.sh" >>/etc/crontab

客户端实现(windows)

windows下需要下载安装megacli与awk,建议放到system32目录下方便调用

创建脚本 c:\raidcheck.bat (用于扫描硬盘并发送状态到zabbix ),脚本内容:

这里默认zabbix客户端安装在C:\zabbix,可自行调整

megacli64 -PDlist -aAll -NoLog|findstr Slot|awk "BEGIN{printf \"- disk_discovery {\042data\042:[\"}{if (NR>1) printf \",\";printf \"{\042{#NAME}\042:\042%s\042}\",$NF} END{printf \"]}\"}" >c:\raid_num.txt

C:\zabbix\zabbix_agents_2.4.1.win\bin\win64\zabbix_sender.exe -c C:\zabbix\zabbix_agents_2.4.1.win\conf\zabbix_agentd.win.conf -i c:\raid_num.txt

megacli64 -PDlist -aALL -NoLog|findstr state|awk -F "[ |,]" "{print \"- raid_status[\"(NR-1)\"]\",$3}">c:\raid_status.txt

C:\zabbix\zabbix_agents_2.4.1.win\bin\win64\zabbix_sender.exe -c C:\zabbix\zabbix_agents_2.4.1.win\conf\zabbix_agentd.win.conf -i c:\raid_status.txt

在命令行运行以下命令创建定时任务,30分钟发送一次状态到zabbix

schtasks /create /sc minute /mo 30 /tn "raid_check" /tr c:\raidcheck.bat

最终效果

5ec8f53c30fa9ee2e504bfd09980f1c1.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值