自制python脚本监控Esxi底层DELL硬盘(利用python自带模块 paramiko)
[root@localhost libexec]# cd /usr/local/nagios/libexec
[root@localhost libexec]# vi datadomain.py
#!/usr/bin/env python
import paramiko
import re
import sys
#0 ok; 1 warning; 2 critical; 3 unknown
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ip = "10.10.254.11"
user = "sysadmin"
passwd = "11111111111111"
ssh.connect(ip,22,user,passwd)
stdin,stdout,stderr = ssh.exec_command("disk status")
outmsg,errmsg = stdout.read(),stderr.read()
keyvalue=outmsg.find('7')
if int(keyvalue) <> -1:
print "Disk ok !"
sys.exit(0)
else:
print "Disk goes wrong!"
sys.exit(2)
ssh.close()
脚本注解:当keyvalue等于-1,说明数量没有7,也就是硬盘有问题了。
先在commands.cfg中添加命令。
[root@localhost libexec]# vi /usr/local/nagios/etc/objects/commands.cfg
define command {
command_name datadomain
command_line sudo $USER1$/datadomain.py
}
在nagios.cfg中添加以下内容
[root@localhost libexec]# vi /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/datadomain.cfg
定义主机和服务:在/usr/local/nagios/etc/objects中新建datadomain.cfg
[root@localhost libexec]# vi /usr/local/nagios/etc/objects/datadomain.cfg
define host{
use EMC DataDomain 2200
host_name EMC DataDomain 2200
alias EMC DataDomain 2200
address 10.10.254.11
}
define service{
use generic-service
host_name EMC DataDomain 2200
service_description EMC DataDomain 2200
check_command datadomain
notifications_enabled 1
}
然后必须在templates.cfg中添加以下内容
[root@localhost libexec]# vi /usr/local/nagios/etc/objects/templates.cfg
define host{
name EMC DataDomain 2200 ; The name of this host template
use generic-host ; This template inherits other values from the generic-host template
check_period 24x7 ; By default, EMC DataDomain 2200 hosts are checked round the clock
check_interval 5 ; Actively check the host every 10 minutes
retry_interval 1 ; Schedule host check retries at 10 minute intervals
max_check_attempts 10 ; Check each EMC DataDomain 2200 host 10 times (max)
check_command check-host-alive ; Default command to check EMC DataDomain 2200 hosts
notification_period workhours ; EMC DataDomain 2200 admins hate to be woken up, so we only notify during the day
; Note that the notification_period variable is being overridden from
; the value that is inherited from the generic-host template!
notification_interval 120 ; Resend notifications every 2 hours
notification_options d,u,r ; Only send notifications for specific host states
contact_groups admins ; Notifications get sent to the admins by default
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
}
添加sudo权限
[root@localhost libexec]# visudo
nagios ALL=(ALL) NOPASSWD:/usr/local/nagios/libexec/datadomain.py
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。