十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
linux下搭建nagios監(jiān)控
10年積累的成都網(wǎng)站制作、成都做網(wǎng)站經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有長安免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
一、什么是nagios
1.nagios 簡介
Nagios是一個監(jiān)視系統(tǒng)運行狀態(tài)和網(wǎng)絡(luò)信息的監(jiān)視系統(tǒng)。
Nagios能監(jiān)視所指定的本地或遠程主機以及服務(wù),同時提供異常通知功能等。
Nagios可運行在Linux/Unix平臺之上,同時提供一個可選的基于瀏覽器的WEB界面以方便系統(tǒng)管理人員查看網(wǎng)絡(luò)狀態(tài),
各種系統(tǒng)問題,以及日志等等。
Nagios是十分受歡迎的、開源且免費的計算機及網(wǎng)絡(luò)系統(tǒng)監(jiān)控軟件。
Nagios是“Nagios Ain‘t Gonna Insist On Sainthood”的縮寫。
它最早是在1999年以“NetSaint”發(fā)布。Nagios主要應(yīng)用在Linux和Unix平臺環(huán)境下的監(jiān)控,
但通過插件,也可以監(jiān)控MS Windows系統(tǒng)的主機。Nagios在LinuxCon 2010 Poll并選為最受歡迎的IT運維工具。
它被Infoworld在2009年評為最佳開源軟件,同時也是該年度的SourceForge社區(qū)的系統(tǒng)管理工具最佳選擇。
Nagios也被很多知名企業(yè)所采用,包括AOL,DHL,At&t,歐萊雅,德州儀器,Siemens COM CZ,時代華納有線,Yahoo等。
2.Nagios的主要功能特點:
- 監(jiān)視網(wǎng)絡(luò)服務(wù) (SMTP, POP3, HTTP, NNTP, PING等)
- 監(jiān)視主機資源 (進程, 磁盤等)
- 簡單的插件設(shè)計可以輕松擴展Nagios的監(jiān)視功能
- 服務(wù)等監(jiān)視的并發(fā)處理
- 錯誤通知功能 (通過email, pager, 或其他用戶自定義方法)
- 可指定自定義的事件處理控制器
- 可選的基于瀏覽器的WEB界面以方便系統(tǒng)管理人員查看網(wǎng)絡(luò)狀態(tài),各種系統(tǒng)問題,以及日志等等
- 可以通過手機查看系統(tǒng)監(jiān)控信息
二、nagios 監(jiān)控環(huán)境搭建
1.搭建環(huán)境介紹:
hostnameIP系統(tǒng)
服務(wù)端webserver192.168.1.20CentOS 6.6
客戶端hpf-linux192.168.1.110CentOS 6.6
2.基礎(chǔ)服務(wù)端安裝:
[root@webserver ~]# yum install -y epel-release //若機器安裝的有epel擴展源則省略此步驟 [root@webserver ~]# yum install -y httpd nagios nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe //安裝nagios相關(guān)包 [root@webserver ~]# htpasswd -c /etc/nagios/passwd nagiosadmin //生成登錄nagios后臺的帳號及密碼 New password: Re-type new password: Adding password for user nagiosadmin [root@webserver ~]# nagios -v /etc/nagios/nagios.cfg //檢測nagios配置文件是否錯誤 Total Warnings: 0 Total Errors: 0 Things look okay - No serious problems were detected during the pre-flight check
啟動服務(wù)端nagios服務(wù)及監(jiān)控的服務(wù):
[root@webserver ~]# /etc/init.d/httpd start [root@webserver ~]# /etc/init.d/nagios start
登錄瀏覽器輸入 http://ip/nagios ,查看服務(wù)是nagios是否搭建成功
通過輸入剛才生成的密碼進入nagios后臺管理;
點擊serviers查看監(jiān)控,根據(jù)監(jiān)控的服務(wù)是否正常進行調(diào)試;
剛開始http服務(wù)能會有warning,錯誤提示為HTTP WARNING: HTTP/1.1 403 Forbidden - 5152 bytes in 0.001 second response t;
原因為:nagios監(jiān)控HTTP時,會監(jiān)控到/var/www/html/下面的index.html文件,若沒有就會提示錯誤,
創(chuàng)建一個文件即可!創(chuàng)建后等一會便會將監(jiān)控狀態(tài)變?yōu)镺K;
3.增加服務(wù)端nagios 監(jiān)控機(增加監(jiān)控客戶端)
客戶端安裝nagios監(jiān)控服務(wù)及文件配置:
[root@hpf-linux ~]# yum install -y epel-release //若客戶端已安裝epel擴展源則省略此步驟 [root@hpf-linux ~]# yum install -y nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe //安裝nagios監(jiān)控相關(guān)包 [root@hpf-linux ~]# vi /etc/nagios/nrpe.cfg 找到“allowed_hosts=127.0.0.1” 改為 “allowed_hosts=127.0.0.1,192.168.1.20” 后面的ip為服務(wù)端ip; 找到” dont_blame_nrpe=0” 改為 “dont_blame_nrpe=1” 下面兩個配置文件的更改是根據(jù)nagios服務(wù)端添加的監(jiān)控服務(wù)(check_hda1)進行更改的: command[check_sda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda1 command[check_sda2]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda2
注意:監(jiān)控端和被監(jiān)控端的command選項都需要增加 command[check_sda]的選項,
并且在重啟nrpe和Nagios 后,需要等一段時間,nagios的web頁面才會把原先 check disk標記
為critical的選項給回復(fù)成正常。
配置服務(wù)端nagios腳本文件:
[root@webserver conf.d]# vi /etc/nagios/objects/commands.cfg //在該配置文件下添加以下內(nèi)容 define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ } [root@webserver ~]# cd /etc/nagios/conf.d/ [root@webserver conf.d]# vi 192.168.1.110.cfg define host{ use linux-server host_name 192.168.1.110 alias 1.110 address 192.168.1.110 } define service{ use generic-service host_name 192.168.1.110 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 192.168.1.110 service_description check_ssh check_command check_ssh max_check_attempts 5 #當nagios檢測到問題時,一共嘗試檢測5次都有問題才會告警,如果該數(shù)值為1,那么檢測到問題立即告警 normal_check_interval 1 #重新檢測的時間間隔,單位是分鐘,默認是3分鐘 notification_interval 60 #在服務(wù)出現(xiàn)異常后,故障一直沒有解決,nagios再次對使用者發(fā)出通知的時間。單位是分鐘。如果你認為,所有的事件只需要一次通知就夠了,可以把這里的選項設(shè)為0。 } define service{ use generic-service host_name 192.168.1.110 service_description check_http check_command check_http max_check_attempts 5 normal_check_interval 1 } define service{ use generic-service host_name 192.168.1.110 service_description check_load check_command check_nrpe!check_load max_check_attempts 5 normal_check_interval 1 } define service{ use generic-service host_name 192.168.1.110 service_description check_disk_sda1 check_command check_nrpe!check_sda1 max_check_attempts 5 normal_check_interval 1 } define service{ use generic-service host_name 192.168.1.110 service_description check_disk_sda2 check_command check_nrpe!check_sda2 max_check_attempts 5 normal_check_interval 1 } [root@webserver ~]# nagios -v /etc/nagios/nagios.cfg //檢測配置文件是否正確 Total Warnings: 0 Total Errors: 0 Things look okay - No serious problems were detected during the pre-flight check
在客戶端啟動nrpe服務(wù):
[root@hpf-linux ~]# /etc/init.d/nrpe start
在服務(wù)端上重啟nagios服務(wù):
[root@webserver ~]# /etc/init.d/nagios restart
在瀏覽器上查看nagios服務(wù)的監(jiān)控是否正常顯示:
4.配置郵件報警:
[root@webserver ~]# vim /etc/nagios/objects/contacts.cfg define contact{ contact_name nagios1 use generic-contact alias mail1 email hpf_thqfsj@163.com } define contact{ contact_name nagios2 use generic-contact alias mail2 email 568347223@qq.com } define contactgroup{ contactgroup_name common alias common members nagios1,nagios2 } [root@webserver conf.d]# vi 192.168.1.110.cfg 在上面的192.168.1.110.cfg 配置文件有如下一段內(nèi)容: define service{ use generic-service host_name 192.168.1.110 service_description check_load check_command check_nrpe!check_load max_check_attempts 5 normal_check_interval 1 } 將上面一段配置的最后添加以下四個語句: contact_groups common notifications_enabled 1 #是否開啟提醒功能。1為開啟,0為禁用。一般,這個選項會在主配置文件(nagios.cfg)中定義,效果相同。 notification_period 24x7 #發(fā)送提醒的時間段。非常重要的主機(服務(wù))我定義為7×24,一般的主機(服務(wù))就定義為上班時間。 #如果不在定義的時間段內(nèi),無論什么問題發(fā)生,都不會發(fā)送提醒。 notification_options w,u,c,r #這個是service的狀態(tài)。w為waning, u為unknown, c為critical, r為recover(恢復(fù)了), #類似的還有一個 host對應(yīng)的狀態(tài):d,u,r d = 狀態(tài)為DOWN, u = 狀態(tài)為UNREACHABLE , r = 狀態(tài)恢復(fù)為OK, #需要加入到host的定義配置里。
[root@localhost ~]# nagios -v /etc/nagios/nagios.cfg //檢測配置文件是否錯誤 Total Warnings: 0 Total Errors: 0 Things look okay - No serious problems were detected during the pre-flight check
5、驗證報警郵件配置是否成功:
開啟虛擬機郵件服務(wù)
[root@webserver ~]# yum install -y sendmail //安裝郵件服務(wù)包 [root@webserver ~]# /etc/init.d/sendmail start //啟動郵件服務(wù) [root@webserver ~]# netstat -lnp |grep sendmail //查看郵件服務(wù)開啟的端口 tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1011/sendmail
在瀏覽器上配置163郵箱的白名單以防止把報警郵件當成垃圾郵件:
wKioL1WCiOWTxQqrAAUfz-fMY94418.jpg
[root@hpf-linux ~]# /etc/init.d/nrpe stop //在客戶端關(guān)閉nrpe服務(wù)看服務(wù)端是否發(fā)送報警郵件; Shutting down nrpe: [確定]
報警郵件發(fā)送時間會有一段時間的延時,需要耐心等待;