標籤:伺服器 command local objects 服務端
nagios的監控原理:實際上很簡單。我們在伺服器端已經安裝了nrpe服務,那麼所有的用戶端資料都是通過這個nrpe來收集,並且傳到nagios伺服器,在由nagios去調用產生。
工作過程:
(1)用戶端在nrpe.cfg檔案下已經定義了,調用模組的方式或者nagios識別的命令:
比如:command[check_ips]=/usr/local/nrpe/libexec/ip_conn.sh 8000 10000 (自己編寫的指令碼)
(2)伺服器端通過check_nrpe -H 192.168.1.1 -c chekc_ips 。這個命令句可以手機到用戶端這個指令碼的資料。
(3)然互我們在服務端定義一個server.cfg就可以收集到關機這台主機的這個服務了。
伺服器端:nagios的解析過程:
(1)nagios服務啟動時,就回去載入nagios.cfg這個檔案裡面的資料。裡面是我們定義的監控的類型:(cfg_file=/usr/local/nagios/etc/objects/192.168.10.1.cfg #這一句我地宮一的這台主機檔案存放的位置)
(2)到上面的目錄下建立192.168.10.1.cfg這個檔案。裡面定義了監控的類型。
(3)還有contacts.cfg 你可以自己建立一個連絡人,發郵郵件到你的郵箱.
#當然還有一些檔案:如監控本機時候用到的command.cfg。假如啟動報錯。說沒有這個命令。那麼你就可以去command.cfg下面添加就可以了。
舉例一個自己編寫指令碼監控服務警示的例子:
在用戶端操作:
1、在/usr/local/nagios/libexec/目錄下建立check_nginx檔案:內容如下
#!/bin/bash
nginx=`/usr/bin/pgrep nginx`
if [ "$nginx" != "" ]
then
echo "nginx is run"
exit 0
fi
if [ "$nginx" = "" ]
then
exit 1
fi
#exit0表示正常。#exit1表示警示
2、編輯nrpe.cfg檔案添加命令#給可執行許可權和使用者:
command[check_nginx]=/usr/local/nagios/libexec/check_nginx
3、伺服器端,查看是否串連成功nrpe用戶端,不成功的話看防火牆,和nrpe.cfg的allow添加伺服器IP地址:
[[email protected] objects]# /usr/local/nagios/libexec/check_nrpe -H 192.168.10.9
NRPE v2.12
4、測試模組是否收集到資料(下面是已經收到的):
[[email protected] objects]# /usr/local/nagios/libexec/check_nrpe -H 192.168.10.9 -c check_nginx
nginx is run
5、編輯192.168.10.9.cfg檔案添加這個服務:
define service{
use generic-service
host_name 192.168.10.9
service_description check_nginx
check_command check_nrpe!check_nginx
notifications_enabled 1
check_period 24x7
max_check_attempts 3
normal_check_interval 10
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 120
notification_period 24x7
}
6、然後重啟就可以監控到了。
650) this.width=650;" title="nginx.jpg" alt="wKiom1SGtoTA9ai3AAECqFTPzVo469.jpg" src="http://s3.51cto.com/wyfs02/M01/54/94/wKiom1SGtoTA9ai3AAECqFTPzVo469.jpg" />
下面舉例幾個監控指令碼:監控並發量:
#!/bin/sh
#xiaoluo
#2014.11.4
ip_conns=`netstat -an | grep tcp | grep EST | wc -l`
if [ $ip_conns -lt $1 ]
then
echo "OK -connect is $ip_conns"
exit 0
fi
if [ $ip_conns -gt $1 -a $ip_conns -lt $2 ]
then
echo "Warning -connect is $ip_conns"
exit 1
fi
if [ $ip_conns -gt $2 ]
then
echo "Critical -connect is $ip_conns"
exit2
fi
2、nrpe添加命令:command[check_ips]=/usr/local/nagios/libexec/check_ips 4000 8000 (4000警示。8000嚴重)
#編寫指令碼注意事項:
都用if判斷,然後看傳回值:
然後exit 0 表示正常
exit1 表示警示
exit2 表示嚴重 #這3個人跟我們寫的指令碼沒有直接關係只是給nrpe的一個訊號
到這,覺得改手工了,遇到問題的朋友可以交流一下。像監控mysql主從的,可以寫一個監控兩個狀態是否都為yes然後在if判斷。給exit的那幾個值。
本文出自 “小羅” 部落格,請務必保留此出處http://xiaoluoge.blog.51cto.com/9141967/1587997
nagios配置監控的一些思路和工作流程