zabbix简单监控linux磁盘健康状态

项目场景:

项目场景:之前生产环境服务器的一块磁盘foreign,因为该程序刚上线为单机部署且这块磁盘刚好是程序部署的盘。所以现需要监控linux服务器磁盘健康状态

问题描述:

这里只做简单的zabbix监控


原因分析:

对zabbix不熟悉,只能按照自己的笨方法来解决问题,并记录

解决方案:

创建zabbix自定义键值

vim /etc/zabbix/zabbix_agentd.conf

在最后一行添加:

UserParameter=sda1.health,/etc/zabbix/zbixShfile/sda1.sh

重启zabbix_agentd服务

/etc/init.d/zabbix-agent restart

注:上面是不带参的,下面例子为带参数:[*]代表唯一参数,无法同时在同个变量上传入同个参数

UserParameter=sda1.health[*],/etc/zabbix/zbixShfile/sda1.sh $1 $2

sda1.sh
注意:zabbix除了内置的监控,其他无法直接调用root权限访问服务器的内核数据
会报错:权限不足,smartctl需要赋予sudo权限才能在zabbix用户上执行,且存放脚本的文件夹应该是属于zabbix用户的即(chown zabbix:zabbix filename)
sudo权限赋权方式:

#root用户下执行
visudo 
#在 root    ALL=(ALL)       ALL 下增加行
zabbix ALL=NOPASSWD: /usr/sbin/smartctl
#! /bin/bash
Health=$(sudo smartctl -H -d sat+megaraid,0 /dev/sda1)
if [[ $Health =~ 'PASSED' ]] #表示Health中包含PASSED返回0,否则返回1
then
	echo 0
else
	echo 1
fi

zabbix上配置监控项和触发器

zabbix简单监控linux磁盘健康状态_第1张图片

zabbix简单监控linux磁盘健康状态_第2张图片

你可能感兴趣的:(zabbix,linux,shell)