ToB企服应用市场:ToB评测及商务社交产业平台
标题:
如安在 Ubuntu 12.10 上利用 Python 创建 Nagios 插件
[打印本页]
作者:
愛在花開的季節
时间:
2024-6-20 19:26
标题:
如安在 Ubuntu 12.10 上利用 Python 创建 Nagios 插件
前些天发现了一个巨牛的人工智能学习网站,普通易懂,风趣幽默,不由得分享一下给大家。点击跳转到网站。
介绍
Python 是一种在 Linux 上默认可用的盛行命令处理器。
我们之前已经介绍过如安在 Ubuntu 12.10 x64 上安装 Nagios 监控服务器。
这一次,我们将扩展这个想法,利用 Python 创建 Nagios 插件。
这些插件将在客户 VPS 上运行,并通过 NRPE 执行。
步骤 1 - 在客户 VPS 上安装 NRPE
apt-get install -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/python
import 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=5666
nrpe_user=nrpe
nrpe_group=nrpe
allowed_hosts=198.211.117.251
dont_blame_nrpe=1
debug=0
command_timeout=60
connection_timeout=300
include_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
复制代码
验证新的检查是否正常工作:
完成!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4