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

简介: 如何在 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 退出代码

退出代码 状态
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

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

完成!


目录
相关文章
|
18天前
|
Ubuntu 开发者 Python
|
28天前
|
机器学习/深度学习 Ubuntu 数据挖掘
Ubuntu系统部署Anaconda环境及Python语言的详细流程
以上就是在Ubuntu系统中安装Anaconda环境及Python语言的详细流程。Anaconda为Python科学计算提供了便捷的管理方式,帮助用户轻松处理不同项目之间依赖管理的复杂性。通过以上步骤,你现在应该有了一个完全可用的Anaconda环境,可以开始在Ubuntu上进行Python编程和数据科学项目的探索了。
29 5
|
4月前
|
Ubuntu Python
Ubuntu 安装Python3.8
Ubuntu 安装Python3.8
242 0
|
1月前
|
Python
Sublime Text Python 代码提示插件 Anaconda
Sublime Text Python 代码提示插件 Anaconda
59 1
|
26天前
|
机器学习/深度学习 Ubuntu 数据挖掘
揭秘:Ubuntu系统下部署Anaconda环境及Python语言的终极指南!跟随这一步步神秘流程,解锁编程大师的秘密武器!
【8月更文挑战第19天】在Ubuntu中部署Anaconda环境与Python相当直观。首先需从官网下载Linux版安装包。接着,在终端依次执行命令:添加Anaconda清华镜像源至软件源列表,更新软件包信息,然后安装Anaconda。安装后可通过`anaconda --version`验证。使用`anaconda create -n myenv python=3.8`创建名为“myenv”的环境并指定Python 3.8版本。
107 0
|
2月前
|
机器学习/深度学习 Ubuntu 数据挖掘
在Ubuntu系统安装Anaconda及Python
【7月更文挑战第10天】在Ubuntu上安装Anaconda及Python概述: 1. 访问官网下载适合的Anaconda版本。 2. 终端中运行`bash Anaconda3-xxxx.x-Linux-x86_64.sh`完成安装,需同意协议。 3. 通过`conda --version`验证安装。 4. 可选创建Python环境,如`conda create -n myenv python=3.8`。 5. 激活环境使用`conda activate myenv`。 6. 用`python --version`检查Python版本。
|
1月前
|
Ubuntu Python
ubuntu build install python3.12 and config pip
ubuntu 编译安装 python ; 并配置 pip 仓库源
33 0
|
3月前
|
Ubuntu Python
银河麒麟-麒麟软件操作系统 kylin 搭建yum源 ubuntu搭建yum源 yum软件仓库搭建ftp源、python源、硬盘源
银河麒麟-麒麟软件操作系统 kylin 搭建yum源 ubuntu搭建yum源 yum软件仓库搭建ftp源、python源、硬盘源
378 1
|
3月前
|
人工智能 测试技术 Python
Python数组类+AI插件
Python数组类+AI插件