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

简介:

之前写了一篇文章主要介绍nagios的搭建使用 http://msiyuetian.blog.51cto.com/8637744/1704346

下面这篇文章主要介绍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)编写脚本

[root@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命令可以查看磁盘的使用状态

[root@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)修改脚本权限

[root@client ~]# chmod +x /usr/lib/nagios/plugins/check_disk.sh

3)编辑配置文件

[root@client ~]# vim /etc/nagios/nrpe.cfg       //增加一行

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

4)重启nrpe服务

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


2、服务端配置


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

[root@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

[root@client ~]# vim /etc/nagios/nrpe.cfg

allowed_hosts=127.0.0.1,192.168.0.114

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

2)添加服务

[root@server ~]# cd /etc/nagios/conf.d/

[root@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配置文件

[root@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服务

[root@server conf.d]# service nagios restart


3、查看效果


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

Hosts增加了一台

wKiom1ZNzGOgPfyiAAOOsFBcWsg032.jpg


Services显示监控磁盘状态

wKioL1ZNzL2CmHv8AAX-K6P5OnE262.jpg







      本文转自 M四月天 51CTO博客,原文链接:http://blog.51cto.com/msiyuetian/1714835,如需转载请自行联系原作者




相关文章
|
机器学习/深度学习 算法 数据可视化
Machine Learning机器学习之高维数据降维(主成分分析PCA、线性判别分析、自编码器超级无敌详细讲解)
Machine Learning机器学习之高维数据降维(主成分分析PCA、线性判别分析、自编码器超级无敌详细讲解)
|
10月前
|
网络协议 安全 网络安全
Cisco 设备上的 IPv6 特性详解
Cisco 设备上的 IPv6 特性详解
358 3
|
JavaScript 前端开发 安全
深入理解 JDK 1.8 新特性
深入理解 JDK 1.8 新特性
270 2
|
6月前
|
人工智能 安全 生物认证
AI-Infra-Guard:腾讯开源AI基础设施安全评估神器,一键扫描漏洞
AI-Infra-Guard 是腾讯开源的高效、轻量级 AI 基础设施安全评估工具,支持 28 种 AI 框架指纹识别和 200 多个安全漏洞数据库,帮助用户快速检测和修复 AI 系统中的安全风险。
649 7
|
10月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
964 0
|
监控 Java API
如何在Spring Boot中集成Elastic APM进行应用性能监控
如何在Spring Boot中集成Elastic APM进行应用性能监控
|
消息中间件 资源调度 Kafka
2021年最新最全Flink系列教程_Flink快速入门(概述,安装部署)(一)(JianYi收藏)
2021年最新最全Flink系列教程_Flink快速入门(概述,安装部署)(一)(JianYi收藏)
340 0
|
存储 算法 网络性能优化
【AXI】解读AXI协议事务属性(Transaction Attributes)
【AXI】解读AXI协议事务属性(Transaction Attributes)
【AXI】解读AXI协议事务属性(Transaction Attributes)
|
监控 Linux 开发者
国产操作系统统信UOS的简单故障维护,系统崩溃小妙招
国产操作系统统信UOS的简单故障维护,系统崩溃小妙招
国产操作系统统信UOS的简单故障维护,系统崩溃小妙招