码迷,mamicode.com
首页 > 移动开发 > 详细

nagios通过python获取ESXi硬盘SMART信息

时间:2015-04-28 12:06:24      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:nagios esxi python

ESXi可以在相关面板上看见smart信息, 我这边公司用的是组装的服务器,然后不支持,只好用SSH的办法去获取了。
Nagios监控是按退出的状态代码来显示相关信息的。
退出代码如下:
0 ok; 1 warning; 2 critical; 3 unknown

python可以用 paramiko 去实现SSH连接并执行命令这一过程。
paramiko 下载位置
pypi.python.org/pypi/paramiko

#!/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 下面。 然后在监控那边添加服务

define service{
        use                             one-day-service
        host_name                       ESX_100_3
        service_description             Disk_Smart
        check_command                   check_esxi
        }

重启nagios搞定

nagios通过python获取ESXi硬盘SMART信息

标签:nagios esxi python

原文地址:http://abian.blog.51cto.com/751059/1639566

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!