您好,登錄后才能下訂單哦!
自制python腳本監(jiān)控EMC VNXe 3200存儲(chǔ)硬盤
[root@localhost libexec]# vi vnxe.py
#!/usr/bin/env python
import commands
import os
#0 ok; 1 warning; 2 critical; 3 unknown
os.chdir("/usr/local/nagios/libexec/")
(status, output) = commands.getstatusoutput("uemcli -d 10.10.1.11 -u admin -p Password /env/ps show | grep 'Health state'| awk '{print $4}' | wc -l")
if int(output) == 2:
print "VNXe 3200 harddisk ok"
else:
print "VNXe 3200 harddisk fail"
測(cè)試運(yùn)行結(jié)果
[root@localhost libexec]# ./vnxe.py
VNXe 3200 harddisk ok
先在commands.cfg中添加命令。
[root@localhost libexec]# vi /usr/local/nagios/etc/objects/commands.cfg
define command {
command_name vnxe
command_line $USER1$/vnxe.py
}
在nagios.cfg中添加以下內(nèi)容
[root@localhost libexec]# vi /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/VNXe.cfg
定義主機(jī)和服務(wù):在/usr/local/nagios/etc/objects中新建VNXe.cfg
[root@localhost libexec]# vi /usr/local/nagios/etc/objects/VNXe.cfg
define host{
use EMC VNXe 3200
host_name EMC VNXe 3200
alias EMC VNXe 3200
address 10.10.1.11
}
define service{
use generic-service
host_name EMC VNXe 3200
service_description EMC VNXe 3200
check_command vnxe
notifications_enabled 1
}
然后必須在templates.cfg中添加以下內(nèi)容
[root@localhost libexec]# vi /usr/local/nagios/etc/objects/templates.cfg
define host{
name EMC VNXe 3200 ; 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 VNXe 3200 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 VNXe 3200 host 10 times (max)
check_command check-host-alive ; Default command to check EMC VNXe 3200 hosts
notification_period workhours ; EMC VNXe 3200 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!
}
放入Nagios測(cè)試后,結(jié)果出錯(cuò),(沒(méi)有任何報(bào)錯(cuò)信息)始終找不到問(wèn)題。原因是Nagios中的 command_line $USER1$/vnxe.py是以nagios賬號(hào)來(lái)運(yùn)行腳本vnxe.py,抓取不到正確的python腳本結(jié)果(前面我們是用root來(lái)運(yùn)行,所以才能得到正確的結(jié)果)。以下解決問(wèn)題。
[root@localhost libexec]# visudo
nagios ALL=(ALL) NOPASSWD:/usr/local/nagios/libexec/vnxe.py
#Defaults requiretty
在commands.cfg中修改命令。
[root@localhost libexec]# vi /usr/local/nagios/etc/objects/commands.cfg
define command {
command_name vnxe
command_line sudo $USER1$/vnxe.py
重啟 Nagios生效
[root@localhost libexec]# systemctl restart nagios.service
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。