Nagios是一款開源的免費網絡監視工具,能夠監控Windows、Linux和Unix的主機狀態,交換機路由器等網絡設備,在系統或服務狀態異常時發出郵件或短信報警,第一時間通知網站運維人員。流量監控不是他的強項,流量監控建議使用cacti(能夠繪製很是直觀的圖形。html
nagios主要能夠監控如下方面:mysql
主機是否宕機(經過ping命令,若是ping不通會認爲主機屬於宕機狀態,但不影響所監控的其餘服務)linux
服務器資源(cpu使用率、硬盤剩餘空間等)ios
網絡服務(smtp\pop3\http\)web
監控網絡設備(路由器、交換機等)sql
nagios工做原理瀏覽器
Nagios自己不包括監控主機和服務的功能。全部的監控、監測功能都是經過各類插件來完成的。安裝完nagios以後,在nagios主目錄下的/libexex裏面放有nagios自帶的插件,如:check_disk是檢查磁盤空間的插件,check_load是檢查cpu負載的插件,每個插件能夠經過運行./check_xxx -h命令來檢查其使用方法和功能。安全
nagios的四種監控狀態服務器
Nagios能夠識別四種狀態返回信息。0(OK)表示狀態正常(綠色顯示),1(WARNING)表示出現警告(×××),2(CRITICAL)表示出現很是嚴重錯誤(紅色),3(UNKNOWN)表示未知錯誤(深×××),nagios根據插件返回來的值來判斷監控對象的狀態,並經過web顯示出來,以供管理員即時發現故障。網絡
nagios經過nrpe插件來遠程管理服務的工做過程
1) Nagios執行安裝在它裏面的check_nrpe插件,並告訴check_nrpe去檢測哪些服務。
2) 經過ssl,check_nrpe鏈接遠端機器上的NRPE daemon。
3) NRPE運行本地的各類插件去檢測本地服務器和狀態(check_disk,...etc)。
4) NRPE把檢測的結果傳給主機端的check_nrpe,check_nrpe再把結果送到nagios狀態隊列中。
5) Nagios依次讀取隊列中的信息,再把結果顯示出來。
實驗拓撲
實驗步驟:
1.搭建Nagios監控系統
(1)關閉防火牆
(2)建立nagios用戶和用戶組
(3)安裝支持軟件和編譯安裝Nagios
注意:安裝install-webconf是爲了生成配置文件,後面在/etc/httpd/conf/httpd.conf最後添加的信息就不用手工打了,能夠到/etc/httpd/conf.d/nagios.conf文件中複製。
命令接釋:
make install //安裝主程序,CGI和HTML文件
make install-init //在/etc/rc.d/init.d安裝啓動腳本
make install-commandmode //配置目錄權限
make install-config //安裝示例配置文件
make install-webconf //安裝nagios的web接口,會在/etc/httpd/conf.d目錄中建立nagios.conf文件。
(4)驗證安裝是否成功要查看/usr/local/nagios目錄是否以下
bin:nagios執行程序所在的目錄,nagios文件即爲主程序。
etc:nagios配置文件目錄,當make install-config完之後etc下面就會出現默認的配置文件。
sbin:nagios CGI文件所在目錄,這裏存放的是一些外部命令執行程序。
share:nagios網頁文件目錄,存放一些html文件。
var:nagios日誌文件、pid等文件目錄。
Libexec:系統默認插件的存儲位置
(5)安裝Nagios插件
Nagios提供的各類監控功能基本上是經過插件來完成的
若是要獲取遠程主機上的本地資源或屬性,如CPU利用率、磁盤利用率,須要藉助外部構件NRPE來完成。
(6)爲了安全起見,通常狀況下要上Nagios的Web監控頁面必須通過受權才能訪問,這就須要增長驗證設置,即在/etc/httpd/conf/httpd.conf配置文件的最後添加以下信息
咱們能夠到 /etc/httpd/conf.d/nagios.conf 文件中複製,不用手打。
使用:r導入便可
導入便可,不用修改,保存退出
(7)執行htpasswd命令添加一個訪問nagios頁面的受權用戶
用戶名和密碼都是nagiosadm
(8)啓動Nagios和httpd服務
(9)在瀏覽器上進行訪問
2.配置Nagios監控系統
1)nagios的默認配置文件:
Nagios.cfg:主配置文件,定義各類配置文件的名稱和位置
Cgi.cfg:控制CGI的配置文件
Resource.cfg:資源文件,定義各類變量,以便於其餘文件調用
Objects:其餘配置文件存放目錄,此目錄下主要有:
Command.cfg:命令配置文件,定義各類命令格式,以備其餘文件調用
contacts.cfg:聯繫人和組,發郵件等告警信息時能夠調用
localhost.cfg:監控本機的配置文件
timeperiods.cfg:定義監控時間的配置文件,便於其餘文件調用
Hostgroups.cfg:定義監控的主機(組),需手動建立。
2)配置文件之間的關係
在nagios的配置過程當中涉及的幾個定義有主機、主機組、服務、服務組、聯繫人、聯繫人組、監控時間和監控命令等。從這些定義能夠看出,nagios各個配置文件之間互爲關聯、彼此引用的。成功配置出一臺nagios監控系統,必需要弄清楚每一個配置文件之間依賴與被依賴的關係,最重要的有四點
n 定義監控那些主機,主機組,服務和服務組
n 定義這個監控要用什麼命令實現
n 定義監控的時間段
n 定義主機或服務器出現問題時要通知的聯繫人和聯繫人祖
3)配置nagios
爲了能更清楚的說明問題,同時也爲了維護方便,建議將nagios各個定義的對象建立獨立的配置文件。
建立conf目錄來定義host主機
建立hostgroups.cfg文件來定義主機組
用默認的contacts.cfg文件來定義聯繫人和聯繫人組
用默認的commands.cfg文件來定義命令
用默認的timeperiods.cfg來定義監控時間段
用默認的templetes.cfg文件做爲資源引用文件
初步瞭解Nagios的配置文件後,接下來開始修改配置文件
(1)修改 /usr/local/nagios/etc/nagios.cfg 主配置文件
(2)修改 /usr/local/nagios/etc/objects/commands.cfg 文件
(3)修改 /usr/local/nagios/etc/objects/contacts.cfg 文件
解釋:
定義聯繫人名稱
別名
監控主機服務7X24小時
監控主機對角應用服務7X24小時
警告級別參數
定義主機在什麼狀態下須要發送通知給使用者,d即down,表示宕機狀態;u即unreachable,不可到達狀態;r即recovery,表示從新恢復狀態
調用郵件名稱
調用飛信名稱
定義發送到哪一個電子郵箱
(4)修改 /usr/local/nagios/etc/objects/hostgroups.cfg 文件,定義主機組
(5)在 /usr/local/nagios/etc/conf 下面新建192.168.1.20.cfg文件(用於監控192.168.1.20的主機存活,負載,進程)(全部內容須要手工輸入)
同理可得,新建本機的.cfg文件也是如此,只要把相對應的IP換成本機IP便可
命令解釋:
define host{
use linux-server //定義使用的模板
host_name nagios //被監控主機的名稱,最好別帶空格
alias nagios //別名
address 127.0.0.1 //被監控主機的IP地址
check_command check-host-alive
normal_check_interval 3 //正常檢測間隔時間
retry_check_interval 2 //重試檢測間隔時間
//監控的命令check-host-alive,這個命令來自commands.cfg,用來監控主機是否存活
max_check_attempts 5 //檢查失敗後重試的次數
check_period 24x7 //檢查的時間段24x7,一樣來自timeperiods.cfg中定義
notification_interval 10 //提醒的間隔,每隔10秒提醒一次
notification_period 24x7 //提醒的週期, 24x7,一樣來自timeperiods.cfg中定義
contact_groups admins //聯繫人組,上面在contactgroups.cfg中定義的admins
notification_options d,u,r //指定什麼狀況下提醒
}
(6)添加聯繫人組,修改文件 /usr/local/nagios/etc/objects/contacts.cfg 文件
(7)重啓nagios服務
(8)訪問網頁查看狀態(注意:關閉selinux或者開例外)
或者:
若是你開啓了selinux 須要配置以下二步:
chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
chcon -R -t httpd_sys_content_t /usr/local/nagios/share/
3.配置被控端192.168.1.20(mysql和web)
(1)安裝支持軟件和新建nagios用戶
(2)安裝nagios插件
(3)修改配置文件
(4)啓動nrpe
(5)設置防火牆規則
(6)在Nagios監控服務器上測試NRPE運行是否正常
(7)在瀏覽器訪問
經過以上這些操做,管理員就能夠在網頁上實時地監控服務器的運行情況,而且能在出現問題時及時解決。