如安在 Ubuntu 12.10 上利用 Python 创建 Nagios 插件

打印 上一主题 下一主题

主题 792|帖子 792|积分 2376

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

Python 是一种在 Linux 上默认可用的盛行命令处理器。
我们之前已经介绍过如安在 Ubuntu 12.10 x64 上安装 Nagios 监控服务器。
这一次,我们将扩展这个想法,利用 Python 创建 Nagios 插件。
这些插件将在客户 VPS 上运行,并通过 NRPE 执行。
步骤 1 - 在客户 VPS 上安装 NRPE

  1. apt-get install -y python nagios-nrpe-server
  2. useradd nrpe && update-rc.d nagios-nrpe-server defaults
复制代码
步骤 2 - 创建你的 Python 脚本

最好将你的插件保存在与其他 Nagios 插件相同的目次中(比方 /usr/lib/nagios/plugins/)。
对于我们的示例,我们将创建一个脚本,通过调用 shell 中的 “df” 来检查当前磁盘利用环境,并在利用量超过 85% 时触发警报:
  1. #!/usr/bin/python
  2. import os, sys
  3. used_space=os.popen("df -h / | grep -v Filesystem | awk '{print $5}'").readline().strip()
  4. if used_space < "85%":
  5.         print "OK - %s of disk space used." % used_space
  6.         sys.exit(0)
  7. elif used_space == "85%":
  8.         print "WARNING - %s of disk space used." % used_space
  9.         sys.exit(1)
  10. elif used_space > "85%":
  11.         print "CRITICAL - %s of disk space used." % used_space
  12.         sys.exit(2)
  13. else:
  14.         print "UKNOWN - %s of disk space used." % used_space
  15.         sys.exit(3)
复制代码
我们将保存这个脚本在 /usr/lib/nagios/plugins/usedspace.py 并使其可执行:
  1. chmod +x /usr/lib/nagios/plugins/usedspace.py
复制代码
整个 Nagios NRPE 插件的关键在于利用退出代码来触发警报。
你可以在脚本中引入你的逻辑水平,假如要触发警报(无论是 OK、WARNING、CRITICAL 还是 UNKNOWN),你需要指定一个退出代码。
参考以下 Nagios 退出代码:
Nagios 退出代码

退出代码状态0OK1WARNING2CRITICAL3UNKNOWN 步骤 3 - 将你的脚本添加到客户主机上的 NRPE 配置

删除原始的 /etc/nagios/nrpe.cfg 并添加以下行:
  1. log_facility=daemon
  2. pid_file=/var/run/nagios/nrpe.pid
  3. server_port=5666
  4. nrpe_user=nrpe
  5. nrpe_group=nrpe
  6. allowed_hosts=198.211.117.251
  7. dont_blame_nrpe=1
  8. debug=0
  9. command_timeout=60
  10. connection_timeout=300
  11. include_dir=/etc/nagios/nrpe.d/
  12. command[usedspace_python]=/usr/lib/nagios/plugins/usedspace.py
复制代码
此中 198.211.117.251 是我们之前文章中的监控服务器。将这些值更改为你自己的值。
确保重新启动 Nagios NRPE 服务:
  1. service nagios-nrpe-server restart
复制代码
步骤 4 - 将你的新命令添加到 Nagios 监控服务器上的 Nagios 检查中

在 /etc/nagios/objects/commands.cfg 中定义新命令:
  1. define command{
  2.         command_name    usedspace_python
  3.         command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c usedspace_python
  4.         }
复制代码
如你所见,它利用 NRPE 对端口 5666 举行 TCP 连接,并运行命令 ‘usedspace_python’,我们在远程主机的 /etc/nagios/nrpe.cfg 中定义了这个命令。
将此检查添加到客户 VPS 的 Nagios 配置文件中。
对于我们的示例,我们将监督一个名为 UbuntuDroplet 的服务器,并编辑 /etc/nagios/servers/UbuntuDroplet.cfg:
  1. define service {
  2.         use                             generic-service
  3.         host_name                       UbuntuDroplet
  4.         service_description             Custom Disk Checker In Python
  5.         check_command                   usedspace_python
  6.         }
复制代码
重新启动 Nagios:
  1. service nagios restart
复制代码
验证新的检查是否正常工作:

完成!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

愛在花開的季節

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表