前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
介绍
Python 是一种在 Linux 上默认可用的流行命令处理器。
我们之前已经介绍过如何在 Ubuntu 12.10 x64 上安装 Nagios 监控服务器。
这一次,我们将扩展这个想法,使用 Python 创建 Nagios 插件。
这些插件将在客户 VPS 上运行,并通过 NRPE 执行。
步骤 1 - 在客户 VPS 上安装 NRPE
apt-getinstall-y python nagios-nrpe-server
useradd nrpe && update-rc.d nagios-nrpe-server defaults
步骤 2 - 创建你的 Python 脚本
最好将你的插件保存在与其他 Nagios 插件相同的目录中(例如
/usr/lib/nagios/plugins/
)。
对于我们的示例,我们将创建一个脚本,通过调用 shell 中的 “df” 来检查当前磁盘使用情况,并在使用量超过 85% 时触发警报:
#!/usr/bin/pythonimport os, sys
used_space=os.popen("df -h / | grep -v Filesystem | awk '{print $5}'").readline().strip()if used_space <"85%":print"OK - %s of disk space used."% used_space
sys.exit(0)elif used_space =="85%":print"WARNING - %s of disk space used."% used_space
sys.exit(1)elif used_space >"85%":print"CRITICAL - %s of disk space used."% used_space
sys.exit(2)else:print"UKNOWN - %s of disk space used."% used_space
sys.exit(3)
我们将保存这个脚本在
/usr/lib/nagios/plugins/usedspace.py
并使其可执行:
chmod +x /usr/lib/nagios/plugins/usedspace.py
整个 Nagios NRPE 插件的关键在于使用退出代码来触发警报。
你可以在脚本中引入你的逻辑水平,如果要触发警报(无论是 OK、WARNING、CRITICAL 还是 UNKNOWN),你需要指定一个退出代码。
参考以下 Nagios 退出代码:
Nagios 退出代码
退出代码状态0OK1WARNING2CRITICAL3UNKNOWN
步骤 3 - 将你的脚本添加到客户主机上的 NRPE 配置
删除原始的
/etc/nagios/nrpe.cfg
并添加以下行:
log_facility=daemon
pid_file=/var/run/nagios/nrpe.pid
server_port=5666nrpe_user=nrpe
nrpe_group=nrpe
allowed_hosts=198.211.117.251
dont_blame_nrpe=1debug=0command_timeout=60connection_timeout=300include_dir=/etc/nagios/nrpe.d/
command[usedspace_python]=/usr/lib/nagios/plugins/usedspace.py
其中 198.211.117.251 是我们之前文章中的监控服务器。将这些值更改为你自己的值。
确保重新启动 Nagios NRPE 服务:
service nagios-nrpe-server restart
步骤 4 - 将你的新命令添加到 Nagios 监控服务器上的 Nagios 检查中
在
/etc/nagios/objects/commands.cfg
中定义新命令:
define command{
command_name usedspace_python
command_line $USER1$/check_nrpe -H$HOSTADDRESS$ -c usedspace_python
}
如你所见,它使用 NRPE 对端口 5666 进行 TCP 连接,并运行命令 ‘usedspace_python’,我们在远程主机的
/etc/nagios/nrpe.cfg
中定义了这个命令。
将此检查添加到客户 VPS 的 Nagios 配置文件中。
对于我们的示例,我们将监视一个名为 UbuntuDroplet 的服务器,并编辑
/etc/nagios/servers/UbuntuDroplet.cfg
:
define service{
use generic-service
host_name UbuntuDroplet
service_description Custom Disk Checker In Python
check_command usedspace_python
}
重新启动 Nagios:
service nagios restart
验证新的检查是否正常工作:
完成!
版权归原作者 白如意i 所有, 如有侵权,请联系我们删除。