Nagios 簡介:
目前成都創(chuàng)新互聯(lián)已為成百上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、南木林網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
是一個(gè)開源軟件,可以監(jiān)控網(wǎng)絡(luò)設(shè)備網(wǎng)絡(luò)流量、Linux/windows主機(jī)狀態(tài),甚至可以監(jiān)控打印機(jī)
它可以運(yùn)行在Linux上或windows上
基于瀏覽器的web界面方便運(yùn)維人員查看監(jiān)控項(xiàng)目的狀態(tài)
支持web界面配置、管理操作
支持短信、郵件通知
可以自定義腳本實(shí)現(xiàn)自定義化監(jiān)控
Nagios官網(wǎng) http://www.nagios.org/
Nagios 服務(wù)器端安裝:
Centos6默認(rèn)的yum源里沒有nagios相關(guān)的rpm包,但是我們可以安裝一個(gè)epel的擴(kuò)展源: rpm -ivh http://www.lishiming.net/data/p_w_upload/forum/month_1211/epel-release-6-7.noarch.rpm
yum install -y httpd nagios nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe
#樓主是在LNMP 下的環(huán)境來做實(shí)驗(yàn)的,httpd 已經(jīng)安裝了,epel 也安裝了,省去了安裝步驟。
[root@LNMP ~]# yum install -y nagios nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe
[root@LNMP ~]# htpasswd -c /etc/nagios/passwd nagiosadmin #設(shè)置登錄nagios后臺(tái)的用戶和密碼
New password:
Re-type new password: (zaq12wsx)
Adding password for user nagiosadmin
[root@LNMP ~]# nagios -v /etc/nagios/nagios.cfg #檢測(cè)配置文件,最下方輸出0,則沒有問題
Total Warnings: 0
Total Errors: 0
[root@LNMP ~]# service httpd restart #重啟httpd
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
[root@LNMP ~]# service nagios restart #重啟nagios
Running configuration check...done.
Stopping nagios: done.
Starting nagios: done.
通個(gè)IE 訪問 http://10.72.4.38/nagios/
-----------------------------------分割線---------------------------------
Nagios 客戶端的安裝配置:(樓主客戶端環(huán)境LAMP,之前做實(shí)驗(yàn)搭的)
在客戶端機(jī)器上yum源:
rpm -ivh http://www.lishiming.net/data/p_w_upload/forum/month_1211/epel-release-6-7.noarch.rpm
[root@OBird ~]# yum install -y nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe
[root@OBird ~]# vim /etc/nagios/nrpe.cfg #編輯配置文件
allowed_hosts=127.0.0.1 #更改為allowed_hosts=10.72.4.38,服務(wù)端IP
dont_blame_nrpe=0 #更改為 dont_blame_nrpe=1
[root@OBird ~]# /etc/init.d/nrpe start #客服端和服務(wù)端的中間介質(zhì)
Starting nrpe: [ OK ]
[root@LNMP ~]# cd /etc/nagios/conf.d/ #在服務(wù)端的配置
[root@LNMP conf.d]# vim 10.72.4.43.cfg #加入以下內(nèi)容
define host{
use linux-server ; Name of host template to use
; This host definition will inherit all variables that are defined
; in (or inherited by) the linux-server host template definition.
host_name 10.72.4.43
alias 4.43
address 10.72.4.43
}
define service{
use generic-service
host_name 10.72.4.43
define host{
use linux-server ; Name of host template to use
; This host definition will inherit all variables that are defined
; in (or inherited by) the linux-server host template definition.
host_name 10.72.4.43
alias 4.43
address 10.72.4.43
}
define service{
use generic-service
host_name 10.72.4.43
service_description check_ping
check_command check_ping!100.0,20%!200.0,50%
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service
host_name 10.72.4.43
service_description check_ssh
check_command check_ssh
max_check_attempts 5
---------------------------------------------
定義的配置文件中一共監(jiān)控了三個(gè)service:ssh, ping, http 這三個(gè)項(xiàng)目是使用本地的nagios工具去連接遠(yuǎn)程機(jī)器,也就是說即使客戶端沒有安裝nagios-plugins以及nrpe也是可以監(jiān)控到的。其他的一些service諸如負(fù)載、磁盤使用等是需要服務(wù)端通過nrpe去連接到遠(yuǎn)程主機(jī)獲得信息,所以需要遠(yuǎn)程主機(jī)安裝nrpe服務(wù)以及相應(yīng)的執(zhí)行腳本(nagios-plugins)
max_check_attempts 5 #當(dāng)nagios檢測(cè)到問題時(shí),一共嘗試檢測(cè)5次都有問題才會(huì)告警,如果該數(shù)值為1,那么檢測(cè)到問題立即告警
normal_check_interval 1#重新檢測(cè)的時(shí)間間隔,單位是分鐘,默認(rèn)是3分鐘
notification_interval 60 #在服務(wù)出現(xiàn)異常后,故障一直沒有解決,nagios再次對(duì)使用者發(fā)出通知的時(shí)間。單位是分鐘。如果你認(rèn)為,所有的事件只需要一次通知就夠了,可以把這里的選項(xiàng)設(shè)為0。
--------------------------------------------
檢測(cè) 配置文件
[root@LNMP conf.d]# nagios -v /etc/nagios/nagios.cfg #出現(xiàn)兩個(gè)OK
Total Warnings: 0
Total Errors: 0
[root@LNMP ~]# service nagios restart #重啟nagios 服務(wù),在網(wǎng)頁端查看被監(jiān)控的客戶端4.43
------------------------------分割線-------------------- ----------
Nagios 客戶端的安裝配置2:
[root@LNMP ~]# vim /etc/nagios/objects/commands.cfg #服務(wù)端,增加一個(gè)調(diào)用客戶端的服務(wù)的命令獲得狀態(tài),check_nrpe 和對(duì)客戶端通信。
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
[root@LNMP ~]# vim /etc/nagios/conf.d/10.72.4.43.cfg #增加服務(wù)
define service{
use generic-service
host_name 10.72.4.43
service_description check_load
check_command check_nrpe!check_load #客戶端調(diào)用,下同
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service
host_name 10.72.4.43
service_description check_disk_sda1
check_command check_nrpe!check_hda1
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service
host_name 10.72.4.43
service_description check_disk_sdb5
check_command check_nrpe!check_hda5
max_check_attempts 5
normal_check_interval 1
}
[root@OBird ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 4.0G 13G 24% /
tmpfs 495M 0 495M 0% /dev/shm
/dev/sda1 194M 29M 155M 16% /boot
/dev/sdb5 2.0G 68M 1.9G 4% /mnt
/dev/sdb1 2.0G 74M 1.9G 4% /home/liven/123
--------------------------------------------------------
[root@OBird ~]# vim /etc/nagios/nrpe.cfg #客戶端被調(diào)用的腳本,用戶是可以在此處自定義腳本的
# The following examples use hardcoded command arguments...
command[check_users]=/usr/lib64/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib64/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
#chech_hda1 ,樓主實(shí)驗(yàn)環(huán)境是sda1,要改為一致 ,用df -h 查看
command[check_hda5]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda1
#增加一行sdb5
command[check_zombie_procs]=/usr/lib64/nagios/plugins/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/lib64/nagios/plugins/check_procs -w 150 -c 200
[root@OBird ~]# /etc/init.d/nrpe restart #重啟客戶端&nrpe 服務(wù)
Shutting down nrpe: [ OK ]
Starting nrpe: [ OK ]
檢測(cè) 配置文件
[root@LNMP conf.d]# nagios -v /etc/nagios/nagios.cfg #出現(xiàn)兩個(gè)OK
Total Warnings: 0
Total Errors: 0
[root@LNMP ~]# service nagios restart #重啟服務(wù)端nagios服務(wù)
Running configuration check...done.
Stopping nagios: done.
Starting nagios: done.
LNMP 服務(wù)端hHTTP一直 WARNING(403).解決辦法:
編寫網(wǎng)站的訪問目錄echo 111>/var/www/html/index.html
[root@LNMP ~]# tail /var/log/nagios/nagios.log #查看nagios 日志,
[1482895207] SERVICE ALERT: 10.72.4.43;check_disk_sda5;CRITICAL;SOFT;3;DISK CRITICAL - /dev/sda5 is not accessible: No such file or directory
-------------------------------分割線------------------------------
配置郵件警告:
define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members nagiosadmin,222,333 #用戶
}
define contact{
contact_name 222 #用戶1
use generic-contact
alias linux
email test2@qq.com #報(bào)警郵箱
}
define contact{
contact_name 333
use generic-contact
alias linux
email test3@qq.com
}
define contactgroup{ #定義組
contactgroup_name common #組名
alias common #別名
members 222,333 #組員
}
[root@LNMP ~]# vim /etc/nagios/conf.d/10.72.4.43.cfg #設(shè)置告警,測(cè)試
define service{
use generic-service
host_name 10.72.4.43
service_description check_disk_sda1
check_command check_nrpe!check_hda1
max_check_attempts 5
normal_check_interval 1
contact_groups common #加入告警設(shè)置
notification_period 24x7 #告警時(shí)間24x7
notification_options c,r #告警級(jí)別
}
define service{
use generic-service
host_name 10.72.4.43
service_description check_http
check_command check_http
max_check_attempts 5
normal_check_interval 1
contact_groups common
notifications_enabled 1 #加入告警設(shè)置
notification_period 24x7
notification_options w,c,r
}
[root@OBird ~]# /usr/lib64/nagios/plugins/check_disk -w 99% -c 99% -p /dev/sda1
DISK CRITICAL - free space: /boot 154 MB (84% inode=99%);| /boot=28MB;1;1;0;193
樓主在客戶端用腳本產(chǎn)生告警,但是并沒有發(fā)出郵件。樓主百度去了。。。
http://dl528888.blog.51cto.com/2382721/763079(參考這個(gè)博客詳細(xì)內(nèi)容在下端)
操作:
[root@LNMP ~]# vim /etc/hosts #加入本機(jī)IP&主機(jī)名
10.72.4.38 LNMP
讓客戶端(10.72.4.43)的http服務(wù)告警:
[root@LNMP ~]# tail /var/log/nagios/nagios.log #查看服務(wù)端事件,如果內(nèi)容有service notification這樣的話,就代表nagios發(fā)送了郵件報(bào)警
樓主親測(cè),收到了郵件。樓主用的兩臺(tái)虛擬機(jī),網(wǎng)絡(luò)是橋接模式。有圖有真相。
--------------------------------------------
下文摘抄至下面的博客:
經(jīng)過測(cè)試,虛擬機(jī)不能直接發(fā)郵件,但是阿里云主機(jī)可以,原因是沒有公網(wǎng)IP,如果有問題參考以下三個(gè)步驟:http://dl528888.blog.51cto.com/2382721/763079(參考這個(gè)博客)
(1)hosts里的配置
[root@nagios ~]# cat /etc/hosts
172.16.4.3 nagios.com nagios ##一定要有本機(jī)的ip對(duì)應(yīng)
(2)hostname與/etc/sysconfig/network里的hostname一致,并與hosts里的一致
(3)去nagios的web里,選擇報(bào)警的服務(wù)(如果httpd),點(diǎn)擊http旁邊的這個(gè)摁鈕,如果你看到notification狀態(tài)為disabled,那么你可以選擇右側(cè)的enabled notification for this services,確認(rèn)對(duì)話框出來后,查看日志tail /var/log/nagios/nagios.log
如果內(nèi)容有service notification這樣的話,就代表nagios發(fā)送了郵件報(bào)警