一、什么是nagios
1.nagios 簡介
? ? ? ? Nagios是一個監視系統運行狀態和網絡信息的監視系統。Nagios能監視所指定的本地或遠程主機以及服務,同時提供異常通知功能等。Nagios可運行在Linux/Unix平臺之上,同時提供一個可選的基于瀏覽器的WEB界面以方便系統管理人員查看網絡狀態,各種系統問題,以及日志等等。
? ? ? ? Nagios是十分受歡迎的、開源且免費的計算機及網絡系統監控軟件。Nagios是“Nagios Ain‘t Gonna Insist On Sainthood”的縮寫。它最早是在1999年以“NetSaint”發布。Nagios主要應用在Linux和Unix平臺環境下的監控,但通過插件,也可以監控MS Windows系統的主機。Nagios在LinuxCon 2010 Poll并選為最受歡迎的IT運維工具。它被Infoworld在2009年評為最佳開源軟件,同時也是該年度的SourceForge社區的系統管理工具最佳選擇。Nagios也被很多知名企業所采用,包括AOL,DHL,At&t,歐萊雅,德州儀器,Siemens COM CZ,時代華納有線,Yahoo等。
2.Nagios的主要功能特點:
- 監視網絡服務 (SMTP, POP3, HTTP, NNTP, PING等)
- 監視主機資源 (進程, 磁盤等)
- 簡單的插件設計可以輕松擴展Nagios的監視功能
- 服務等監視的并發處理
- 錯誤通知功能 (通過email, pager, 或其他用戶自定義方法)
- 可指定自定義的事件處理控制器
- 可選的基于瀏覽器的WEB界面以方便系統管理人員查看網絡狀態,各種系統問題,以及日志等等
- 可以通過手機查看系統監控信息
二、nagios 監控環境搭建
1.搭建環境介紹:
| hostname | IP | 系統 |
| 服務端 | webserver | 192.168.1.20 | CentOS 6.6 |
| 客戶端 | hpf-linux | 192.168.1.110 | CentOS 6.6 |
2.基礎服務端安裝:
[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相關包
[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
啟動服務端nagios服務及監控的服務:
[root@webserver?~]#?/etc/init.d/httpd?start
[root@webserver?~]#?/etc/init.d/nagios?start
登錄瀏覽器輸入 http://ip/nagios ,查看服務是nagios是否搭建成功
通過輸入剛才生成的密碼進入nagios后臺管理;
點擊serviers查看監控,根據監控的服務是否正常進行調試;
剛開始http服務能會有warning,錯誤提示為HTTP WARNING: HTTP/1.1 403 Forbidden - 5152 bytes in 0.001 second response t;
原因為:nagios監控HTTP時,會監控到/var/www/html/下面的index.html文件,若沒有就會提示錯誤,創建一個文件即可!創建后等一會便會將監控狀態變為OK;
3.增加服務端nagios 監控機(增加監控客戶端)
客戶端安裝nagios監控服務及文件配置:
[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監控相關包
[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為服務端ip;?
找到” dont_blame_nrpe=0” 改為 ?“dont_blame_nrpe=1”?
下面兩個配置文件的更改是根據nagios服務端添加的監控服務(check_hda1)進行更改的:
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda1
command[check_hda2]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda2
配置服務端nagios腳本文件:
[root@webserver?conf.d]#?vi?/etc/nagios/objects/commands.cfg ?//在該配置文件下添加以下內容
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次都有問題才會告警,如果該數值為1,那么檢測到問題立即告警
????????normal_check_interval????1 ? #重新檢測的時間間隔,單位是分鐘,默認是3分鐘
????????notification_interval ? ? ? 60 ?#在服務出現異常后,故障一直沒有解決,nagios再次對使用者發出通知的時間。單位是分鐘。如果你認為,所有的事件只需要一次通知就夠了,可以把這里的選項設為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_hda1
? ? ? ? check_command ? ? ? ? ? check_nrpe!check_hda1
? ? ? ? max_check_attempts ? ? ?5
? ? ? ? normal_check_interval ? 1
}
define service{
? ? ? ? use ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?generic-service
? ? ? ? host_name ? ? ? ? ? ? ? ? ? ? ? ?192.168.1.110
? ? ? ? service_description ? ? ? ? ?check_disk_hda2
? ? ? ? check_command ? ? ? ? ? ? ?check_nrpe!check_hda2
? ? ? ? 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服務:
[root@hpf-linux?~]#? ?/etc/init.d/nrpe start
在服務端上重啟nagios服務:
[root@webserver?~]#?/etc/init.d/nagios restart
在瀏覽器上查看nagios服務的監控是否正常顯示:
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 配置文件有如下一段內容:
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 ? #發送提醒的時間段。非常重要的主機(服務)我定義為7×24,一般的主機(服務)就定義為上班時間。如果不在定義的時間段內,無論什么問題發生,都不會發送提醒。????????
??????? notification_options ? ?w,u,c,r ? #這個是service的狀態。w為waning, u為unknown, c為critical, r為recover(恢復了),類似的還有一個 ?host對應的狀態:d,u,r ? d = 狀態為DOWN, u = 狀態為UNREACHABLE , r = 狀態恢復為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、驗證報警郵件配置是否成功:
開啟虛擬機郵件服務
[root@webserver?~]# ?yum install -y sendmail ?//安裝郵件服務包
[root@webserver?~]# ?/etc/init.d/sendmail start ? //啟動郵件服務
[root@webserver?~]#?netstat?-lnp?|grep?sendmail ? //查看郵件服務開啟的端口
tcp????????0??????0?127.0.0.1:25????????????????0.0.0.0:*???????????????????LISTEN??????1011/sendmail ?
在瀏覽器上配置163郵箱的白名單以防止把報警郵件當成垃圾郵件:
[root@hpf-linux?~]#?/etc/init.d/nrpe?stop ?//在客戶端關閉nrpe服務看服務端是否發送報警郵件;
Shutting?down?nrpe:????????????????????????????????????????[確定]
報警郵件發送時間會有一段時間的延時,需要耐心等待;
本文出自 “粗茶淡飯” 博客,請務必保留此出處http://cuchadanfan.blog.51cto.com/9940284/1663267
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的linux下搭建nagios监控的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。