前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nagios通过python获取ESXi

nagios通过python获取ESXi

作者头像
py3study
发布2020-01-09 17:07:37
5990
发布2020-01-09 17:07:37
举报
文章被收录于专栏:python3

ESXi可以在相关面板上看见smart信息, 我这边公司用的是组装的服务器,然后不支持,只好用SSH的办法去获取了。 Nagios监控是按退出的状态代码来显示相关信息的。 退出代码如下: 0 ok; 1 warning; 2 critical; 3 unknown python可以用 paramiko 去实现SSH连接并执行命令这一过程。 paramiko 下载位置 pypi.python.org/pypi/paramiko

代码语言:javascript
复制
#!/usr/bin/env python
import paramiko
import re
import sys
#0 ok; 1 warning; 2 critical; 3 unknown

user, passwd = "root", "123"

def get_disk_status(ip,username,passwd):
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(ip,22,username,passwd)
    stdin, stdout, stderr = ssh.exec_command('for i in `esxcli storage core device list | grep "Local ATA Disk" | sed  "s/.*(\|)//g"`; do esxcli storage core device smart get -d "$i" | grep Health ; done')
    d = stdout.read()
    ssh.close()
    if len(re.findall('OK', d)) == len(re.findall('Health', d)):
        print "Dist Smart OK"
        sys.exit(0)
    else:
        print "Disk Smart Fail"
        sys.exit(2)

if __name__ == '__main__':
    get_disk_status(sys.argv[1],user, passwd)

上面的代码 直接保存到 nagios安装位置下面的 libexec 下面。 然后在监控那边添加服务

代码语言:javascript
复制
define service{
        use                             one-day-service
        host_name                       ESX_100_3
        service_description             Disk_Smart
        check_command                   check_esxi
        }

重启nagios搞定

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档