论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
移动端开发
›
IOS
›
如安在 Ubuntu 12.10 上利用 Python 创建 Nagios 插件 ...
如安在 Ubuntu 12.10 上利用 Python 创建 Nagios 插件
愛在花開的季節
金牌会员
|
2024-6-20 19:26:47
|
显示全部楼层
|
阅读模式
楼主
主题
792
|
帖子
792
|
积分
2376
前些天发现了一个巨牛的人工智能学习网站,普通易懂,风趣幽默,不由得分享一下给大家。点击跳转到网站。
介绍
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企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
愛在花開的季節
金牌会员
这个人很懒什么都没写!
楼主热帖
Redis 原理 - Hash
流批一体开源项目ChunJun技术公开课— ...
HA启动Advanced SSH & Web Terminal 提 ...
SpringBoot
一次服务器被入侵的处理过程分享 ...
dotnet C# 使用 Vortice 支持 Direct2D ...
Redis持久化
Flink 作业提交流程
【网络进阶】网络问题排查实例集锦(实 ...
keepalived安装配置
标签云
挺好的
服务器
快速回复
返回顶部
返回列表