Pau*_*aul 5 monitoring nagios alerts
我在具有多个服务器的环境中运行 Nagios,每个服务器上都有多个服务。有一些自定义检查,但如果可能,最好使用现有检查。我正在使用 NRPE 插件 check check_disk来检查每个挂载的文件系统的利用率:
command[check_all_disks]=/usr/lib/nagios/plugins/check_disk -w 10% -c 5% -p / -p /var -C -u GB -w 200 -c 100 -r '^/mounts[^/]+$'
Run Code Online (Sandbox Code Playgroud)
将所有这些检查为单个服务(“磁盘”)很方便,但是当其中一个进入警告模式时,很难读取状态信息行中的输出:
DISK WARNING - free space: / 6 GB (9% inode=92%): /var 125 GB (67% inode=99%): /mounts/vol0 1152 GB (16% inode=99%): /mounts/vol1 1096 GB (15% inode=99%): /mounts/vol2 126 GB (1% inode=99%): /mounts/vol3 228 GB (3% inode=99%): /mounts/vol4 3245 GB (44% inode=99%): /mounts/vol5 108 GB (1% inode=99%):
Run Code Online (Sandbox Code Playgroud)
在上述情况下,检查是警告,因为 /、/mounts/vol2 和 /mounts/vol5 低于阈值。操作员必须遍历每个值才能找到超出设定水平的值。此外,如果一个处于关键状态而其他处于警告状态,那么通过标记它们或将它们放在不同的行上以不同的方式显示它们会很好。
有没有一种直接的方法可以做到这一点,而无需为每个挂载点创建一个新命令?或者我是否错过了 Nagios 魔法的其他一些基本方法来使这种友好?
试试--errors-only 标志,它应该大大减少这个插件吐出的文本量。
Run Code Online (Sandbox Code Playgroud)-e, --errors-only Display only devices/mountpoints with errors
这似乎对我有用。注意输出的巨大差异:
# /usr/lib64/nagios/plugins/check_disk -w 20% -c 10%
DISK WARNING - free space: / 37167 MB (96% inode=98%); /dev/shm 244 MB (100% inode=99%); /boot 84 MB (18% inode=99%); /home 21253 MB (99% inode=99%);
Run Code Online (Sandbox Code Playgroud)
但是有了--errors-only标志,现在很明显我的问题是/boot:
# /usr/lib64/nagios/plugins/check_disk -w 20% -c 10% --errors-only
DISK WARNING - free space: /boot 94 MB (20% inode=99%);
Run Code Online (Sandbox Code Playgroud)
如果系统没有问题,输出很短:
# /usr/lib64/nagios/plugins/check_disk -w 20% -c 10% --errors-only
DISK OK
Run Code Online (Sandbox Code Playgroud)
(注意:为了清楚起见,我在第一个 | 之后删除了所有内容。Nagios Web 界面还会在此输出显示在屏幕上之前对其进行修剪。)
另请参阅有关 Debian bugtacker 的讨论:nagios2:以一种难以理解的方式抱怨磁盘空间。