如何在 Ubuntu 12.10 上使用 Python 创建 Nagios 插件如何在 Ubuntu 12.10 上使用 Python 创建 Nagios 插件如何在 Ubuntu 12.10 上使用 Python 创建 Nagios 插件如何在 Ubuntu 12.10 上使用 Python 创建 Nagios 插件
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 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 插件归结为使用退出代码来触发警报。

您将您的逻辑级别引入脚本,如果您想要触发警报(无论是正常、警告、严重还是未知),您可以指定一个退出代码。

请参考以下 Nagios 退出代码:

Nagios 退出代码

Exit Code Status
0 OK
1 WARNING
2 CRITICAL
3 UNKNOWN

第 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

验证新检查是否有效:

©2015-2025 艾丽卡 support@alaica.com