3.2-nagios自定义监控系统磁盘脚本

一. 自定义nagios监控脚本

1. 在客户端上创建脚本/usr/local/nagios/libexec/check_disk.sh

vim  /usr/local/nagios/libexec/check_disk.sh 写入如下内容:(client上)

#!/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                                      #大于97,赋予返回值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

##exit 2 表示这个程序退出后,它的返回值是2。

可以理解为这个程序死了,它的遗言是2,告诉别人自己是因为什么原因死掉的。这样法医(shell或它的父进程)就可以知道原因,来判断凶手(程序出错)是谁,从而作进一步的处理。

2. 保存后,修改该脚本的权限

chmod +x  /usr/lib/nagios/plugins/check_disk.sh (client上)

3. 然后编辑/etc/nagios/nrpe.cfg文件

vim /etc/nagios/nrpe.cfg  # 加入一行:(client上)

command[check_disk]=/usr/lib/nagios/plugins/check_disk.sh

保存,重启nrpe服务

/etc/init.d/nrpe restart (client上)

4. 检测刚才的脚本是否正常运行的方法是,到server端执行如下命令:

/usr/lib/nagios/plugins/check_nrpe -H 192.168.0.12 -c check_disk (server上)

如果正常的话,会输出一行磁盘检测的数据,否则可能会报错。

5. 到server上添加相应的service

cd /etc/nagios/conf.d/

vim 192.168.0.12.cfg     # 加入如下内容:

define service{

use     generic-service

host_name       192.168.0.12

service_description     check_disk

check_command           check_nrpe!check_disk

max_check_attempts 5

normal_check_interval 1

}

6. 重启nagios服务

/etc/init.d/nagios restart   (server上)

时间: 2025-01-03 18:43:35

3.2-nagios自定义监控系统磁盘脚本的相关文章

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

之前写了一篇文章主要介绍nagios的搭建使用 http://msiyuetian.blog.51cto.com/8637744/1704346 下面这篇文章主要介绍nagios自定义监控系统磁盘的脚本实现. Nagios可以识别4种状态返回信息,即 0 表示状态正常(OK).1 表示出现警告(WARNING).2 表示出现非常严重的错误(CRITICAL),3 表示未知错误(UNKNOWN).Nagios根据插件返回来的值,来判断监控对象的状态,并通过web显示出来.我们就可以利用上面这个特性

nagios自定义监控系统磁盘脚本

客户端 1.创建脚本check_disk.sh [[email protected] ~]# vim /usr/lib64/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 &

nagios监控脚本(自定义监控系统磁盘)

1. 在客户端上创建脚本/usr/local/nagios/libexec/check_disk.shvim  /usr/local/nagios/libexec/check_disk.sh 写入如下内容:(client上)#!/bin/bash#!/bin/bashrow=`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

shell编程之【zabbix自定义监控网卡流量脚本】

之前写了一篇文章主要介绍zabbix的搭建使用http://msiyuetian.blog.51cto.com/8637744/1705396 下面这篇文章主要介绍zabbix自定义监控网卡流量的脚本实现 前期准备 1.说明 server ip :192.168.0.115 client ip :192.168.0.114 2.开启服务 因为之前搭建过zabbix环境,这里就不重复了,直接开启服务端的所需服务: [[email protected] ~]# /etc/init.d/httpd s

监控系统子脚本

一.监控系统负载 [[email protected] ~]# vim mon/shares/load.sh#!/bin/bash load=`uptime |awk -F 'average:' '{print $2}'|cut -d',' -f1|sed 's/ //g' |cut -d. -f1` if [ $load -gt 20 ] && [ $send -eq "1" ] then echo "$addr `date +%T` load is $lo

监控系统主脚本

main.sh 作为主脚本,作为整个脚本的入口,也就是说,当我们执行监控系统的时候,最开始执行的就是 main.sh,如果想去执行 shares 下的监控脚本,直接在 main.sh 去调用就可以了 [[email protected] ~]# cat mon/bin/main.sh #!/bin/bash # 是否发邮件的开关 export send=1 export addr=`/sbin/ifconfig |grep -A1 'eth0' |grep addr: |awk '{print

搭建基于Nagios的监控系统——之监控远程Windows服务器

分享了如何监控Linux服务器,我们来看看使用Nagios如何监控Windows服务器. 第一部分:配置被监控的Windows服务器   首先,访问 http://sourceforge.net/projects/nscplus/,下载符合自己服务器的 NSClinent++.我下载下来以后的文件名为:NSCP-0.4.1.73-Win32.msi 双击安装程序,选择 Complete Install,并且选择生成实例配置文件,其他的就一路下一步就OK了. 其次,在 NSClient++ 的安装

搭建基于Nagios的监控系统——之监控远程Linux服务器

上一篇介绍了如何安装Nagios Core,这一篇跟大家分享一下如何将一台远程的Linux服务器加入纳入监控范围. 第一部分:在远程Linux上安装Nagios Plugins和NRPE   第一步:下载Nagios Plugins和NREP扩展的安装程序   [plain] view plain copy cd Downloads wget http://nagios-plugins.org/download/nagios-plugins-2.0.tar.gz 访问 http://www.na

nagios自定义监控API插件

监控思路:通过url访问某一接口文件的具体返回内容,正则匹配某一接口存活必定含有的字符,若有则证明接口存活,若无则接口有问题. 废话不多说,上插件: #!/usr/bin/env python # -*- coding: utf-8 -*- import re import urllib import sys import getopt def usage():     print """Usage: check_api [-h|--help] [-u|--url url]