发布时间:2019-08-27 08:03:41编辑:auto阅读(1783)
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搞定
上一篇: Ubuntu下Python的MySQLd
下一篇: python与shell校验IP地址合法
51261
50700
41299
38118
32578
29484
28342
23203
23171
21500
1574°
2292°
1901°
1843°
2152°
1883°
2573°
4312°
4160°
2969°