设为首页 收藏本站
查看: 1037|回复: 0

shell编程之【nagios自定义监控系统磁盘脚本】

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-20 09:46:50 | 显示全部楼层 |阅读模式
之前写了一篇文章主要介绍nagios的搭建使用http://www.iyunv.com/thread-128905-1-1.html
下面这篇文章主要介绍nagios自定义监控系统磁盘的脚本实现。


    Nagios可以识别4种状态返回信息,即 0 表示状态正常(OK)、1 表示出现警告(WARNING)、2 表示出现非常严重的错误(CRITICAL),3 表示未知错误(UNKNOWN)。Nagios根据插件返回来的值,来判断监控对象的状态,并通过web显示出来。我们就可以利用上面这个特性来实现监控磁盘的状态:
a、当磁盘使用率大于97%则表示出现非常严重的错误(CRITICAL),返回值为2;

b、当磁盘使用率大于95%则表示出现警告(WARNING),返回值为1;
c、当磁盘使用率小于95%则表示状态正常(OK),返回值为0;


说明:
server ip :192.168.0.114
client ip :192.168.0.115

1、客户端配置

1)编写脚本

[iyunv@client ~]# vim /usr/lib/nagios/plugins/check_disk.sh
#!/bin/bash

row=`df -h |wc -l`
for i in `seq 2 $row`
do
        ava=`df -h |sed -n "$i"p|awk '{print $4}'`
        u_per=`df -h |sed -n "$i"p|sed -n "s/\%//"p|awk '{print $5}'`
        p_p=`df -h -P|sed -n "$i"p|awk '{print $6}'`
        if [ "$u_per" -gt "97"  ];then
                echo -n "$p_p CRITICAL $u_per% $ava  "
                sta[$i]=2
        elif [ "$u_per" -gt "95" ];then
                echo -n "$p_p WARNING! $u_per% $ava  "
                sta[$i]=1
        else
                echo -n "$p_p OK $u_per% $ava  "
                sta[$i]=0
        fi
done
n=0
for j in `seq 2 $row`
do
        if [ "${sta[$j]}" -gt $n  ];then
                n=${sta[$j]}
        fi
done
exit $n
脚本说明:
我们利用df -h命令可以查看磁盘的使用状态
[iyunv@client ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        18G  2.6G   15G  16% /
tmpfs           504M     0  504M   0% /dev/shm
/dev/sda1        97M   26M   67M  29% /boot
脚本中 for i in `seq 2 $row` :表示从df -h命令输出的第二行开始进行循环。
参数ava、u_per、p_p分别定义为剩余空间(Avail)、使用率(Use%)、挂载点(Mounted on)
数组sta[$i],输出的是返回值,当返回0表示OK,返回1表示WARNING!,返回2表示CRITICAL。
最后我们利用输出数组的最大值来判断,只要有一个挂载点的使用率达到97%以上,在nagios网页上都会显示CRITICAL。
2)修改脚本权限

[iyunv@client ~]# chmod +x /usr/lib/nagios/plugins/check_disk.sh
3)编辑配置文件

[iyunv@client ~]# vim /etc/nagios/nrpe.cfg       //增加一行
command[check_disk]=/usr/lib/nagios/plugins/check_disk.sh
4)重启nrpe服务

[iyunv@client ~]# /etc/init.d/nrpe restart

2、服务端配置

1)检查刚才客户端上的脚本是否正常运行

[iyunv@server ~]# /usr/lib/nagios/plugins/check_nrpe -H 192.168.0.115 -c check_disk
/ OK 16% 15G  /dev/shm OK 0% 504M  /boot OK 29% 67M
注意:
若报错:CHECK_NRPE: Error - Could not complete SSL handshake.
则说明在客户端没有添加允许server主机的ip,修改客户端nrpe配置文件,添加server的ip
[iyunv@client ~]# vim /etc/nagios/nrpe.cfg
allowed_hosts=127.0.0.1,192.168.0.114
[iyunv@client ~]# /etc/init.d/nrpe restart
2)添加服务

[iyunv@server ~]# cd /etc/nagios/conf.d/
[iyunv@server conf.d]# vim 192.168.0.115.cfg
define host{
        use                     linux-server
        host_name           192.168.0.115
        alias                       0.115
        address                 192.168.0.115
        }

define service{
        use     generic-service
        host_name       192.168.0.115
        service_description     check_disk
        check_command           check_nrpe!check_disk
        max_check_attempts 5
        normal_check_interval 1
}
3)编辑commands.cfg配置文件
[iyunv@server conf.d]# vim /etc/nagios/objects/commands.cfg     //末尾添加如下内容
define command{
        command_name    check_nrpe
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }
4)重启nagios服务
[iyunv@server conf.d]# service nagios restart

3、查看效果

浏览器输入:192.168.0.114/nagios,验证账号密码进入后可看到下图效果:

Hosts增加了一台
wKiom1ZNzGOgPfyiAAOOsFBcWsg032.jpg

Services显示监控磁盘状态
wKioL1ZNzL2CmHv8AAX-K6P5OnE262.jpg




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-141386-1-1.html 上篇帖子: nagios_client_V2_sh 下篇帖子: nagios全攻略 监控系统
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表