1、Nagios監控系統簡介html
1、Nagios工做原理mysql
Nagios自己不包括監控主機和服務的功能。全部的監控、監測功能都是經過各類插件來完成的。安裝完nagios以後,在nagios主目錄下的/libexex裏面放有nagios自帶的插件,如:check_disk是檢查磁盤空間的插件,check_load是檢查cpu負載的插件,每個插件能夠經過運行./check_xxx -h命令來檢查其使用方法和功能。linux
1、Nagios的四種監控狀態ios
Nagios能夠識別四種狀態返回信息。0(OK)表示狀態正常(綠色顯示),1(WARNING)表示出現警告(×××),2(CRITICAL)表示出現很是嚴重錯誤(紅色),3(UNKNOWN)表示未知錯誤(深×××),nagios根據插件返回來的值來判斷監控對象的狀態,並經過web顯示出來,以供管理員即時發現故障。web
2、實驗環境sql
2、實驗步驟vim
搭建Nagios監控系統瀏覽器
關閉防火牆服務器
建立nagios用戶和用戶組ide
編譯安裝nagios(須要提早配置yum)
配置安裝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文件。
安裝完成以後會在/usr/local/nagios目錄下產生6個目錄,下面分別解釋一下。
bin:nagios執行程序所在的目錄,nagios文件即爲主程序。
etc:nagios配置文件目錄,當make install-config完之後etc下面就會出現默認的配置文件。
sbin:nagios CGI文件所在目錄,這裏存放的是一些外部命令執行程序。
share:nagios網頁文件目錄,存放一些html文件。
var:nagios日誌文件、pid等文件目錄。
Libexec:系統默認插件的存儲位置
將nagios添加爲系統服務
安裝nagios插件(監控功能經過插件完成)
安裝nrpe(爲了監控遠程服務器)
在/etc/httpd/conf/httpd.conf文件最後添加受權,咱們能夠到/etc/httpd/conf.d/nagios.conf文件中複製,不用手打。
使用:r導入便可(定位到文檔的最後)
導入便可,不用修改,保存退出。
執行htpasswd命令添加一個訪問nagios頁面的受權用戶
用戶名必須是:nagiosadmin
密碼:1(自定義)
啓動nagios和httpd
Windows 7 客戶端進行測試:http://192.168.1.10/nagios
注意:目前只能是打開網頁,不少的監控選項不能看到,若是須要監控遠程的服務器,還須要作不少配置,下面開始配置。
配置nagios
爲了能更清楚的說明問題,同時也爲了維護方便,建議將nagios各個定義的對象建立獨立的配置文件。
n 建立conf目錄來定義host主機
n 建立hostgroups.cfg文件來定義主機組
n 用默認的contacts.cfg文件來定義聯繫人和聯繫人組
n 用默認的commands.cfg文件來定義命令
n 用默認的timeperiods.cfg來定義監控時間段
n 用默認的templetes.cfg文件做爲資源引用文件
nagios的配置文件:
Nagios.cfg:主配置文件,定義各類配置文件的名稱和位置
Cgi.cfg:控制CGI的配置文件
Resource.cfg:資源文件,定義各類變量,以便於其餘文件調用
Objects:其餘配置文件存放目錄,此目錄下主要有:
Command.cfg:命令配置文件,定義各類命令格式,以備其餘文件調用
contacts.cfg:聯繫人和組,發郵件等告警信息時能夠調用
localhost.cfg:監控本機的配置文件
timeperiods.cfg:定義監控時間的配置文件,便於其餘文件調用
Hostgroups.cfg:定義監控的主機(組),需手動建立。
配置nagios
修改/usr/local/nagios/etc/nagios.cgf主配置文件
修改/usr/local/nagios/etc/objects/commands.cfg
#vim /usr/local/nagios/etc/objects/commands.cfg
添加以下內容(定義check_nrpe監控命令)
修改/usr/local/nagios/etc/objects/contacts.cfg(定義監控服務器聯繫人)
#vim /usr/local/nagios/etc/objects/contacts.cfg
新建/usr/local/nagios/etc/objects/hostgroups.cfg(定義主機組)
#vim /usr/local/nagios/etc/objects/hostgroups.cfg
在/usr/local/nagios/etc/conf下面新建192.168.1.20.cfg文件(用於監控192.168.1.20的主機存活,負載,進程)(全部內容須要手工輸入)
命令解釋:
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 指定什麼狀況下提醒
}
當服務出現w-報警(warning),u-未知(unkown),c-嚴重(critical),或者r-從異常狀況恢復正常,在這四種狀況下通知聯繫人
當主機出現d-當機(down),u-返回不可達(unreachable),r-從異常狀況恢復正常,在這3種狀況下通知聯繫人
重啓nagios服務
發現錯誤,提示沒有添加聯繫人組
解決方法:在/usr/local/nagios/etc/objects/contacts.cfg文件的最後添加代碼,以下圖:
#vim /usr/local/nagios/etc/objects/contacts.cfg
重啓nagios服務器成功
訪問網頁查看狀態
(注意:關閉selinux或者開例外)
或者:
若是你開啓了selinux 須要配置以下二步:
chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
chcon -R -t httpd_sys_content_t /usr/local/nagios/share/
點擊上圖中的localhost,能夠查看本機的狀態
配置被控端192.168.1.20(mysql和web)
安裝nagios插件(能夠參考書152頁配置)
#yum -y install openssl openssl-devel
#useradd nagios -s /sbin/nologin
#tar zxf nagios-plugins-1.5.tar.gz
#cd nagios-plugins-1.5
#./configure --prefix=/usr/local/nagios
make && make install
#chown -R nagios:nagios /usr/local/nagios
#tar zxf nrpe-2.15.tar.gz
#cd nrpe-2.15
#./configure --prefix=/usr/local/nagios
make all && make install-plugin && make install-daemon
make install-daemon-config
安裝完成以後,須要打開vim /usr/local/nagios/etc/nrpe.cfg
添加nagios服務器的地址
啓動nrpe
在nagios服務器上測試nrpe運行是否正常,出現下面的信息說明正確。
在瀏覽器上訪問
補充
也可在services.cfg文件中添加192.168.1.20.cgf文件中的參數
#vi /usr/local/nagios/etc/objects/services.cfg
內容以下:
check_local_users!20!50 //監測遠程主機當前的登陸用戶數量,若是大於20用戶則報warning,若是大於50則報critical
check_local_disk!20%!10%!/ //若是可用空間低於20%會報Warning,若是可用空間低於10%則報Critical:
check_local_procs!250!400!RSZDT //監測遠程主機當前的進程總數,若是大於250進程則報warning,若是大於400進程則報critical,S(休眠)、R(運行)、Z(僵死)、D (不可中斷)、T (中止)
check_load -w 5,4,3 -c 10,6,4這個命令的意義以下
當1分鐘多於5個進程等待,5分鐘多於4個,15分鐘多於3個則爲warning狀態
當1分鐘多於10個進程等待,5分鐘多於6個,15分鐘多於4個則爲critical狀態
服務組並非必須的,這是配合nagios的監控頁面的顯示