Nagios基本configuration(用于快速添加新机器)

我最近开始使用Nagios监视大约25台服务器(主要是虚拟的,有一些独立的)。 其中大部分服务器(包括Nagios主机本身)都运行Ubuntu 14.04 LTS,less数运行12.04 LTS。 因此,我认为我可以利用NRPE并做到这一点。

configurationNRPE对我来说已经certificate是相当复杂的。 例如,对于一个简单的check_disk命令,我不得不通过排除其他每个分区/文件系统来手动指定要检查的分区,如下所示:

command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 57% -x /dev -x /run -x /run/lock -x /run/shm -x /run/user -x /sys/fs/cgroup 

否则,我的警告和关键阈值立即由sysfs,proc或其他分区引起。

然后我看了一下Nagios主机自己执行的基本服务监视器。 这是列在/usr/local/nagios/etc/localhost.cfg,并包含以下(我很抱歉!我不明白为什么它不会正确格式!)

 define service{ use local-service ; Name of service template to use host_name localhost service_description PING check_command check_ping!100.0,20%!500.0,60% } define service{ use local-service ; Name of service template to use host_name localhost service_description Root Partition check_command check_local_disk!20%!10%!/ } define service{ use local-service ; Name of service template to use host_name localhost service_description Current Users check_command check_local_users!20!50 } define service{ use local-service ; Name of service template to use host_name localhost service_description Total Processes check_command check_local_procs!250!400!RSZDT } define service{ use local-service ; Name of service template to use host_name localhost service_description Current Load check_command check_local_load!5.0,4.0,3.0!10.0,6.0,4.0 } define service{ use local-service ; Name of service template to use host_name localhost service_description Swap Usage check_command check_local_swap!20!10 } define service{ use local-service ; Name of service template to use host_name localhost service_description SSH check_command check_ssh notifications_enabled 0 } define service{ use local-service ; Name of service template to use host_name localhost service_description HTTP check_command check_http notifications_enabled 0 } 

在仪表板中导致这一点:

真棒

这对我来说是完美的。 这正是我想要添加的每一台主机显示。 而不是乱搞自定义命令,我应该如何通过NRPE conf文件“复制”到每个主机,以便我为每个添加的主机看到所有这些特定的服务? 很明显,这已经在这里,并已经在本地主机上的function。 我正在努力把自己的头围绕组织这个需要做的事情。

感谢您的任何和所有的build议。

不久之前,我写了一个非常好的NRPE自动安装脚本,我相信如果你编辑它来满足你的需求,它可以帮助你。 该脚本包含许多内置的检查,这些检查将被添加到每个主机的nrpe.cfg文件中。 也就是说,您可以configuration与您相关的检查,并确保每个运行该脚本的主机都拥有它们,这就是客户端。

脚本的链接: 这里 。

关于服务器端(Nagios),您可以安装一个Nagiosconfigurationpipe理器,例如NagioSQL,它将帮助您通过GUI更方便地pipe理主机和服务。

更重要的是,为了确保您的所有主机都具有您所显示的这些检查,只需创build一个包含所有要监视的服务(检​​查)的服务组,然后将此服务组附加到您监视的每个主机。

让我告诉你我在公司做了什么,我想确保每个服务器都使用check_load检查进行监控,但由于我们在公司没有硬件基线,这意味着每个服务器都有不同的规格, check_load是按每个内核计算的/ cpu,我已经在我们的Puppet服务器的“Nagios_client”模块中添加了一个custom_fact ,它标识了一台机器中有多less个处理器,并相应地configuration了Nagios的check_load

例如,假设server1有4个CPU,意味着2.8的负载是理想的(0.7每CPU)。 木偶通过facter标识的CPU数量,然后编辑服务器的nrpe.cfg像这样:

 command[check_load]=/usr/local/nagios/libexec/check_load -w 2.9,3.0,3.1 -c 4.0,5.0,6.0 

然后,例如,在NagioSQL中,可以使用“导入function”来导入*.cfg文件,这些文件将作为主机和服务加载到Nagios。 所以你可以创build一个host.cfg文件,并通过一个脚本复制它每台主机你想监视,只是改变每台机器的主机名/ IP,这将采取另一个步骤到更多的自动configuration。

以我为例,Puppet能够理解它在机器上第一次运行,然后在Nagios中创build相关的host.cfg文件。

我相信,使用Puppet + NagioSQL,你的Nagiospipe理将是一件容易的事情。

关于configuration任何检查的困难…您可以随时编写您自己的脚本并configurationNagios来为您运行它。 例如,让我们看看你的check_disk命令,它是一个非常丰富的命令,它允许你显示对你来说不必要的重要数据。

所以我有同样的问题与check_procs ,另一个非常丰富的命令,它为您提供各种数据…我不需要,所以我写了一个简单的检查脚本,正是我需要和configuration在Nagios 。 例:

 #!/bin/bash # This script checks for running processes for mt.js and adb-server.js # Script by Itai Ganot 2015 . process="$1" appname=$(basename $0) if [ -z "$1" ]; then echo "Please specify a process to check" exit 1 fi ps -ef | grep "$process" | egrep -v "grep|$appname" &>/dev/null if [ "$?" -eq "0" ] ; then stat="OK" exitcode="0" msg="Process $process is running" else stat="Critical" exitcode="2" msg="There are currently no running processes of $process" fi pid=$(ps -ef | grep "$process" | egrep -v "grep|$appname" | awk '{print $2}') echo "$stat: $msg Process PID: $pid" exit $exitcode 

它给了我更less的信息比真正的check_procs但只给我我需要的信息。

所以为了简短check_disk ,如果你的check_disk命令给你一个很难的configuration,那就简单地创build你自己的脚本,这就是Nagios的美妙之处。

我希望我帮助你。

您需要某种types的configurationpipe理软件来设置和安装每个远程主机上的nrpe守护程序,以及部署configuration并最终实现您的插件。

我可以build议Ansible完成这个任务吗 ?

https://github.com/bobmaerten/ansible-role-nagios-nrpe-server