nagios添加監控配置
nagios添加一個主機的一些經典定義,拿出來分享下。自己把這些配置寫成shell,并用servlet+jsp自動生成shell,方便添加監控。目前監控項目已經有兩千多個。
1: nagios添加主機監控配置如下:
define host{
use linux-server
host_name 192.168.1.1
address 192.168.1.1
}
可以定義成一個文件,然后把配置文件加入到nagios.cfg里面,腳本如下:
cat <<EOF >/usr/local/nagios/etc/objects/192.168.1.1.cfg
define host{
use linux-server
host_name 192.168.1.1
address 192.168.1.1
}
EOF
echo "cfg_file=/usr/local/nagios/etc/objects/192.168.1.1.cfg" >> /usr/local/nagios/etc/nagios.cfg
2: nagios添加簡單的監控,比如ping,監控端口等等無需nrpe的配置:
define service{
use generic-service
host_name 192.168.1.1
service_description Check Port 80
check_command check_tcp!80
}
也可以寫成腳本自動添加到主機的配置中,個人習慣一個主機中的所有監控項目在一個配置文件里面,好check。
cat <<EOF >>/usr/local/nagios/etc/objects/192.168.1.1.cfg
define service{
use generic-service
host_name 192.168.1.1
service_description Check Port 80
check_command check_tcp!80
}
EOF
3: nagios添加調用遠程nrpe的配置,這個需要使用check_nrpe去調用,監控遠程主機負載、磁盤情況等等。可以直接上腳本了,上面兩個是舉例,例子在腳本里面都有:
cat <<EOF >>/usr/local/nagios/etc/objects/192.168.1.1.cfg
define service{
use generic-service
host_name 192.168.1.1
service_description Load Average
check_command check_nrpe!check_load
}
EOF
4: 另外,nagios添加主機組的配置也是比較常見的,因為這個讓人看監控情況看起來比較直觀,也是直接上腳本了。比如你想定義一個web組,web組有兩臺主機分別是192.168.1.1和192.168.1.2,個人比較習慣一個組定義一個配置文件:
cat <<EOF >/usr/local/nagios/etc/objects/web.cfg
define hostgroup{
hostgroup_name web
alias web
members 192.168.1.1,192.168.1.2
}
EOF
echo "cfg_file=/usr/local/nagios/etc/objects/web.cfg" >>/usr/local/nagios/etc/nagios.cfg
5: nagios添加聯系人也是非常常見的,配置如下,這個一般需求沒那么多,都是直接修改contact.cfg配置文件。先定義聯系人組,再定義聯系人,定義聯系人的時候得寫一下郵箱:
define contactgroup{
contactgroup_name web
alias web
members web
}
define contact{
contact_name web
use generic-contact
alias web
email web@163.com,web@126.com
}
6: nagios定義時間順便也說一下,這個我定義的不是很多,timeperiods.cfg,底下復制一個,想定義什么時間,可以自己定義一下:
define timeperiod{
timeperiod_name 24x7
alias 24 Hours A Day, 7 Days A Week
sunday 00:00-24:00
monday 00:00-24:00
tuesday 00:00-24:00
wednesday 00:00-24:00
thursday 00:00-24:00
friday 00:00-24:00
saturday 00:00-24:00
}
7: 當然nagios定義發送郵件的命令也是比較重要的,看一下command的定義(如果是自己寫的腳本,第一參數是標題,第二個參數是內容,第三個參數是給誰發送郵件。當然,想傳再多的參數都可以,隨意傳,自定義):
define command{
command_name notify-host-by-email
command_line $USER1$/email.sh "Host Alert: $HOSTNAME$ is $HOSTSTATE$" "[nagios]<br>Notification Type: $NOTIFICATIONTYPE$<br>Host: $HOSTNAME$<br>State: $HOSTSTATE$<br>Address: $HOSTADDRESS$<br>Info: $HOSTOUTPUT$<br><br>Date/Time: $LONGDATETIME$<br>" "$CONTACTEMAIL$" "$HOSTALIAS$" "Host Alert: $HOSTNAME$ is $HOSTSTATE$"
}
8: nrpe的配置肯定也是要的,不然nagios運行起來不夠漂亮,定義nrpe要兩個地方,一個是安裝nrpe(被監控端),需要配置兩個:1: xxx.xxx.xxx.xxx改成nagios監控端的地址,當然,一直變的話,就比較難辦了。2: check_load是以后nagios監控端要用check_nrpe去調用的,后面的程序要怎么調用由自己定義(自定義腳本監控就在這)。
allowed_hosts=xxx.xxx.xxx.xxx
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,15,15 -c 30,30,30
定義完nrpe被監控端只是個開始,后續還得增加nagios監控的配置。主要也是兩個配置:1: check_nrpe命令的配置,只需要傳一個參數,就是類似上面的check_load傳給它就好了。2: 定義監控項目,只需要傳個參數給check_nrpe就可以了。
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -t 30 -c $ARG1$
}
define service{
use generic-service
host_name 192.168.1.1
service_description Load Average
check_command check_nrpe!check_load
}
9: 最后,送兩個配置nagios經常用的命令,nagioscheck和nagiosreload,一個是檢查nagios的配置(這個也可以:/etc/init.d/nagios configtest),一個是重載nagios配置:
alias nagioscheck='/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg'
alias nagiosreload='/etc/init.d/nagios reload'
nagioscheck一定要以下結果才標準
Total Warnings: 0
Total Errors: 0
還要什么配置,還要什么命令,留言找我要吧,可以匯總成一個總的nagios要配置的博客,呵呵,開玩笑的。。。