Nagios 新增的 command 正常沒辦法用 nagios 這個使用者執行,所以需要用 sudo 的方式,接著設定 nrpe 的部份,再來設定 Nagios 的 command,最後設定 Nagios 的服務就大功告成了。
- 新增 sudo 的使用者和命令
#visudo nagios ALL=(ALL) NOPASSWD:/usr/local/libexec/nagios/check_smartmon nagios ALL=(ALL) NOPASSWD:/usr/local/libexec/nagios/check_hdd_health
- 設定 nrpe
#ee /usr/local/etc/nrpe.cfg dont_blame_nrpe=1 #這樣才可以傳遞參數 command[check_smartmon]=sudo /usr/local/libexec/nagios/check_smartmon -d $ARG1$ -w $ARG2$ command[check_hdd_health]=sudo /usr/local/libexec/nagios/check_hdd_health --device $ARG1$
- 設定 Nagios command
#ee /usr/local/etc/nagios/objects/commands.cfg
# 'check_samrtmon' command definition
define command{
command_name check_smartmon
command_line $USER1$/check_nrpe2 -H $HOSTADDRESS$ -c check_smartmon -a $ARG1$ $ARG2$
}
# 'check_hdd_health' command definition
define command{
command_name check_hdd_health
command_line $USER1$/check_nrpe2 -H $HOSTADDRESS$ -c check_hdd_health -a $ARG1$
}
//-a 是 nrpe 傳遞的參數順序(所以在 Nagios 會用 "!" 傳遞參數過來)
- 設定 Nagios 服務
#ee /usr/local/etc/nagios/objects/localhost.cfg
define service{
use local-service ; Name of service template to use
host_name localhost
service_description HDD Temp. - 7_HGST 4T
check_command check_smartmon!/dev/ada7!50
}
- 重新啟動 nrpe 和 Nagios
#/usr/local/etc/rc.d/nrpe2 restart #/usr/local/etc/rc.d/nagios restart
Please follow and like us: