您好,登錄后才能下訂單哦!
nagios插件程序提供兩個返回值:一個是插件的退出狀態碼,另一個是插件在控制臺上打印的第一行數據。退出狀態碼可以被nagios主程序
作為判斷被監控系統服務狀態的依據,控制臺打印的第一行數據可以被nagios主程序作為被監控系統服務狀態的補充說明
會顯示在管理頁面里面。
為了管理nagios插件,nagios每查詢一個服務的狀態時,就會產生一個子進程,并且它使用來自該命令的輸出和退出狀態碼來
確定具體的狀態。nagios主程序可識別的狀態碼和說明如下:
OK 退出代碼 0--表示服務正常的工作
warning 退出代碼 1--表示服務處于告警狀態
critical 退出代碼 2--表示服務處于緊急,嚴重狀態
unknown 退出代碼 3--表示服務處于未知狀態
[root@RS1 services]# head -7 /usr/local/nagios/libexec/utils.sh
#! /bin/sh
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
STATE_DEPENDENT=4
示例一:判斷/etc/passwd文件是否變化,利用nrpe的被動模式
原理:利用md5sum進行指紋收集 md5sum /etc/passwd > /etc/passwd.md5
利用md5sum -c /etc/passwd.md5對指紋進行判別,出現OK則沒有變化,反之則變化了
監控密碼文件是否被更改:
先做指紋庫
md5sum /etc/passwd > /etc/passwd.md5
在client上創建腳本vim /usr/local/nagios/libexec/check_passwd
#!/bin/bash
char=`md5sum -c /etc/passwd.md5 2>&1 |grep "OK"|wc -l`
if [ $char -eq 1 ];then
echo "passwd is OK"
exit 0
else
echo "passwd is changed"
exit 2
fi
######給腳本執行權限
chmod +x /usr/local/nagios/libexec/check_passwd
#####定義check_passwd命令
vim /usr/local/nagios/etc/nrpe.cfg
command[check_passwd]=/usr/local/nagios/libexec/check_passwd
#####重啟nrpe服務
######在nagios主程序先手動抓取數據
[root@RS1 libexec]# ./check_nrpe -H 192.168.1.11 -c check_passwd
passwd is OK
######在nagios主程序上定義service配置
vim /usr/local/nagios/etc/objects/services.cfg(主動模式和被動模式各自的services.cfg配置文件,各自分別管理)
define service{
use generic-service
host_name client02
service_description check_passwd
check_command check_nrpe!check_passwd
}
然后在nagios服務端進行手動抓取數據:
/usr/local/nagios/libexec/check_nrpe -H 192.168.1.11 -c check_passwd
出現數據,表明基本已經沒有問題,重啟服務,觀察web平臺頁面,如下圖:
自定義監控web url,用主動模式監控
[root@RS1 ~]# curl -I http://192.168.1.11/index.html 2>/dev/null|grep "OK"
HTTP/1.1 200 OK
[root@RS1 ~]# curl -I http://192.168.1.11/index.html 2>/dev/null|grep "OK"|wc -l
1
1、編寫執行腳本
cd /usr/local/nagios/libexec
vim check_web_url
#!/bin/bash
char=`curl -I http://192.168.1.11/index.html 2>/dev/null|grep "OK"|wc -l`
if [ $char -eq 1 ];then
echo "the url is OK"
exit 0
else
echo "the url is wrong"
exit 2
fi
chmod +x check_web_url
2、添加check_web_url這個命令到commands.cfg配置文件中
############define command check_web_url##########
define command{
command_name check_web_url
command_line $USER1$/check_web_url
}
3、編輯servers.cfg文件
cd /usr/local/nagios/etc/services
vim web_url.cfg
define service{
use generic-service
host_name client02 監控的主機192.168.1.11在hosts.cfg有定義
service_description web_url
check_period 24x7
check_interval 5
retry_interval 1
max_check_attempts 3
check_command check_web_url 因為是主動模式
notification_period 24x7
notification_interval 30
notification_options w,u,c,r
contact_groups admins
}
4、檢測錯誤,重啟服務
[root@RS1 services]# /etc/init.d/nagios checkconfig
Running configuration check...
OK.
[root@RS1 services]# /etc/init.d/nagios reload
Running configuration check...
Reloading nagios configuration...
done
成功截圖:
看下整體監控效果:
實現郵件報警功能:
配置告警的步驟:
1、添加聯系人和聯系組contacts.cfg
define contact{
contact_name huang
use generic-contact ---》這里使用的模板就是模板文件中的contact定義
alias Nagios Admin
email 13817419446@139.com
}
將定義的contact_name添加到一個新組中
新增聯系組:
define contactgroup{
contactgroup_name mail_users 這里可以定義郵件組,手機短信組,等等
alias Nagios Administrators
members huang
}
2、添加報警的命令commands.cfg,這里使用默認的命令,當然你也可以自己編寫shell腳本或者其他語言腳本
3、調整聯系人的默認模板
define contact{
name generic-contact
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r,f,s
host_notification_options d,u,r,f,s
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email 如果定義了手機,這里可以加上notify-host-by-email,notify-host-by-pager,這里使用郵件告警,所以無需設置
register 0
}
4、在hosts、services配置文件中添加報警聯系人及報警組
然后修改模板中service、host的定義,將
contact_groups admins改為
contact_groups mail_users
當然也可以不在模板中定義,在hosts、services配置文件中各自定義不同的報警方式和報警組
實驗:
將網站目錄下面的index.html文件mv到tmp目錄下,使他warning并觸發告警
mv /var/www/html/index.html /tmp
可以看見web平臺出現warning狀態,查看nagios日志如圖:
然后查看郵件,發現沒有收到告警郵件,看日志發現是找不到mail命令,于是
yum -y install mailx
由于定義的services告警參數:
service_notification_options w,u,c,r,f,s,表示監控恢復正常也會觸發郵件于是將index.html重新放到網站目錄下
mv /tmp/index.html /var/www/html
稍微過幾分鐘可以發現監控正常,查看nagios日志
再次查看郵件,如下:
簡單基于mail告警功能實現
新建菜鳥學習交流群:584498750
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。