如何在 Ubuntu 12.10 上使用 Python 创建 Nagios 插件

2024-06-04 1404阅读

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

介绍

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 }'").readline().strip()
if 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 退出代码

退出代码状态
0OK
1WARNING
2CRITICAL
3UNKNOWN

步骤 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

验证新的检查是否正常工作:

如何在 Ubuntu 12.10 上使用 Python 创建 Nagios 插件 第1张

完成!


    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]