如何使用 check_nt 命令而不是百分比使用值检查 Nagios 中的确切空间量(MB 或 GB)?

GrZ*_*eCh 2 nagios disk-space-utilization

如何使用 check_nt 命令而不是百分比值检查 Nagios 中剩余的确切空间量(MB 或 GB)?

目前我正在使用这个命令:

 check_command           check_nt!USEDDISKSPACE!-l c -w 90 -c 95
Run Code Online (Sandbox Code Playgroud)

但这是检查已用磁盘空间的百分比值,我想在某个驱动器上剩余确切数量的 GB 时收到通知(例如,在剩余 10GB 时发出警告,在仅剩余 5GB 时发出警告)。

谢谢

qua*_*nta 5

check_nt!USEDDISKSPACE返回大小和磁盘使用百分比。但阈值是百分比。

如果您想根据大小接收警报,您可以为check_nt命令编写一个包装壳脚本,例如check_disk_by_size

#!/bin/bash

FREESPACE=`/usr/local/nagios/libexec/check_nt -H $2 -p 12489 -s pa$$word \
-v USEDDISKSPACE -l $4 | awk -F"- " '{ print $4 }' | awk -F "|" '{ print $1 }'`

SIZE=`echo $FREESPACE | awk '{ print $2 }'`
UNIT=`echo $FREESPACE | awk '{ print $3 }'`

if [ $UNIT == "Gb" ]; then
    SIZE=`echo $SIZE \* 1024 | bc`
fi

if [ `echo "$SIZE >= $6" | bc` -eq 1 ]; then
    echo "$4:\_Drive_Space OK - $FREESPACE"
    exit 0
elif [ `echo "$SIZE < $6" | bc` -eq 1 -a `echo "$SIZE > $8" | bc` -eq 1 ]; then
    echo "$4:\_Drive_Space WARNING - $FREESPACE"
    exit 1
elif [ `echo "$SIZE <= $8" | bc` -eq 1 ]; then
    echo "$4:\_Drive_Space CRITICAL - $FREESPACE"
    exit 2
fi
Run Code Online (Sandbox Code Playgroud)

测试:

$ check_disk_by_size.sh -H 192.168.6.31 -l c -w 10240 -c 5120
c:\_Drive_Space OK - free 13.01 Gb (36%)

$ check_disk_by_size.sh -H 192.168.6.31 -l c -w 14240 -c 5120
c:\_Drive_Space WARNING - free 13.01 Gb (36%)

$ check_disk_by_size.sh -H 192.168.6.31 -l c -w 16240 -c 15120
c:\_Drive_Space CRITICAL - free 13.01 Gb (36%)
Run Code Online (Sandbox Code Playgroud)

你可以像这样将它添加到 Nagios:

"check_disk_by_size.sh".

# 'check_disk_by_size' command definition
define command{
       command_name    check_disk_by_size
       command_line    $USER1$/check_disk_by_size.sh -H $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$
       }

define service{
        use                     generic-service
        host_name               fileserver1
        service_description     Drive Space fileserver1: L:
        check_command           check_disk_by_size!-l L -w 4096 -c 2048
        notifications_enabled   1
        }
Run Code Online (Sandbox Code Playgroud)