Nagios的安裝與配置並實現飛信報警

本文轉自linux_study的博客php

http://chenxizhuimeng.blog.51cto.com/2516314/510234mysql

本文僅供本身參考,若是您有疑問請參考原博文,並請教原做者linux

一.Nagios簡介 ios

Nagios是一款遵循GPLv2的開源網絡監控軟件,可用來監控指定的多種系統的主機、服務,並可在它們的工做狀態發生變化時通知管理員。
1)監控網絡服務(HTTP、POP三、SMTP、PING、MySQL等)
2)監控主機資源(磁盤空間利用率、內存利用率、CPU負載等)
3)簡潔的插件設計接口,使得用戶能夠輕鬆開發所需的檢測腳本
4)並行服務模式
5)輕鬆描述網絡結構,而且可以區辨「宕機」和「主機不可達」
6)經過郵件或用戶自定義的方式將主機或服務的工做狀態變化狀況通知給管理員6)當服務或主機問題產生與解決時將告警發送給聯繫人(經過EMail、短信、用戶定義方式) ?能夠經過飛信,等方式實現時,既可傳遞給管理員,可高效的保證服務器的維護。
7)自動日誌滾動
8)支持以冗餘方式進行主機監控
9)能夠經過web方式直觀的查看當前網絡狀態、通知和問題歷史、日誌文件等等,此組件爲可選
二.nagios組件
Nagios一般由一個主程序(Nagios)、一個插件程序(Nagios-plugins)和四個
可選的ADDON(NRPE、NSCA、 NSClient++和NDOUtils)組成。Nagios的監控工做
都是經過插件實現的,所以,Nagios和Nagios-plugins是服務器端工做所必須的組件。
而四個ADDON中 (1)NRPE:用來在監控的遠程Linux/Unix主機上執行腳本插件
以實現對這些主機資源的監控 (2)NSCA:用來讓 被監控的遠程Linux/Unix主機主動
將監控信息發送給Nagios服務器(這在冗餘監控模式中特別要用到)
(3)NSClient++:用來監控 Windows主機時安裝在Windows主機上的組件
(4)NDOUtils:則用來將Nagios的配置信息和各event產生的數據存入數據庫,
以實現 這些數據的快速檢索和處理 這四個ADDON(附件)中,
NRPE和NSClient++工做於客戶端,NDOUtils工做於服務器端,
而NSCA則須要同時安裝在服務器端和客戶端

 
三.Nagios的安裝與配置
1.安裝前的準備
(1)解決安裝Nagios的依賴關係:

Nagios基本組件的運行依賴於httpd、gcc和gd。能夠經過如下命令來檢查nagios所依賴的rpm包是否已經徹底安裝:
# yum -y install httpd gcc glibc glibc-common gd gd-devel php php-mysql mysql mysql-server

(2)所須要安裝組件:
服務端所用的安裝包爲 nagios nagios-plugins ndoutils(非必須)
linux客戶端 nrpe
windows客戶端 NSClient++
(3)
進行selinux設置,或者關閉selinux
開始搭建:
(1)添加nagios運行所須要的用戶和組:

# groupadd nagcmd
# useradd -m nagios
# usermod -a -G nagcmd nagios

把apache加入到nagcmd組,以便於在經過web Interface操做nagios時可以具備足夠的權限:
# usermod -a -G nagcmd apache

二、編譯安裝nagios:

# tar zxf nagios-cn-3.2.3.tar.gz
# cd nagios-cn-3.2.3
# ./configure --with-command-group=nagcmd --enable-event-broker
# make all
# make install
# make install-init
# make install-config
# make install-commandmode

爲email指定您想用來接收nagios警告信息的郵件地址,默認是本機的nagios用戶:
# vi /usr/local/nagios/etc/objects/contacts.cfg 
email         nagios@localhost       #這個是默認設置

在httpd的配置文件目錄(conf.d)中建立Nagios的Web程序配置文件:
# make install-webconf

建立一個登陸nagios web程序的用戶,這個用戶賬號在之後經過web登陸nagios認證時所用:
# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

以上過程配置結束之後須要從新啓動httpd:
# service httpd restart

三、編譯、安裝nagios-plugins

nagios的全部監控工做都是經過插件完成的,所以,在啓動nagios以前還須要爲其安裝官方提供的插件。

# tar zxf nagios-plugins-1.4.15.tar.gz 
# cd nagios-plugins-1.4.15
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
# make
# make install

四、配置並啓動Nagios

(1)把nagios添加爲系統服務並將之加入到自動啓動服務隊列:
# chkconfig --add nagios
# chkconfig nagios on

(2)檢查其主配置文件的語法是否正確:
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

(3)若是上面的語法檢查沒有問題,接下來就能夠正式啓動nagios服務了:
# service nagios start

(4)配置selinux
若是您的系統開啓了selinux服務,則默認爲拒絕nagios web cgi程序的運行。您能夠經過下面的命令來檢查您的系統是否開啓了selinux:
#getenforce

若是上面命令的結果顯示開啓了selinux服務,您能夠經過下面的命令暫時性的將其關閉:
#setenforce 0

若是您想在之後徹底關閉selinux,能夠經過編輯/etc/sysconfig/selinux文件,將其中的selinux後面的值「force」修改成「disable」便可。

固然,您也能夠經過如下方式將nagios的CGI程序運行於SELinux/targeted模式而不用關閉selinux:
# chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin
# chcon -R -t httpd_sys_content_t /usr/local/nagios/share

(5)經過web界面查看nagios:
http://your_nagios_IP/nagios
 
若是不能正常顯示,或提示403 沒有權限訪問
解決以下,修改httpd的配置文件httpd.conf
用vi編輯/etc/httpd/conf/httpd.conf這個文件,在其中添加
LoadModule php5_module /usr/lib/httpd/modules/libphp5.so 這是添加一個模塊信息到apache裏頭去,是apache能支持php,並添加
AddType application/x-httpd-php .php 這是爲了使apache可以支持以.php結尾的文件,也就是支持php
在DirectoryIndex 後面添加 index.php
登陸時須要指定前面設定的web認證賬號和密碼。
登陸界面以下:
四.客戶端的配置:
對於windows客戶端:
1.被監控端安裝NSClient++-0.3.8-Win32.msi
2.安裝完成後修改配置文件NSC.ini把須要的庫都打開
3.在監控服務器上修改nagios配置文件nagios.cfg
去掉註釋cfg_file=/usr/local/nagios/etc/objects/windows.cfg
定義windows.cfg
define host{
        use             windows-server  ; Inherit default values from a template
        host_name       winserver       ; The name we're giving to this host
        alias           My Windows Server       ; A longer name associated with the host
        address         192.168.0.10  ; 你主機的IP
        }
保存退出
查看windows狀態:
 
 
對於Linux客戶端:
被監控端
先添加nagios用戶
useradd nagios
爲了安裝nrpe,先安裝nagios-plugins-1.4.15.tar.gz 插件
# tar zxf nagios-plugins-1.4.15.tar.gz 
# cd nagios-plugins-1.4.15
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
# make
# make install
#yum install openssl-devel
#tar -zxvf nrpe-2.12.tar.gz
#cd nrpe-2.12.tar.gz
#./configure --enable-ssl --with-ssl-lib=/usr/lib/
#make all
#make install-plugin
#make install-daemon
#make install-daemon-config
4.配置nrpe信息
vim /usr/local/nagios/etc/nrpe.cfg
allowed_hosts=127.0.0.1  //容許監控的IP, 在這的ip可改成nagios服務器ip
修改後保存退出。
檢查:/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d
 
linux服務端
3.安裝NRPE
cd nagios-nrpe_2.8.1
yum -y install openssl-devel
./configure --enable-ssl --with-ssl-lib=/lib/
make all
make install-plugin
4.commands.cfg定義外部構件nrpe
vim  /usr/local/nagios/etc/objects/commands.cfg
#添加
#check nrpe
define command{
        command_name check_nrpe
        command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }
在/usr/local/nagios/etc/nagios.cfg 中添加一條
cfg_file=/usr/local/nagios/etc/objects/mylinux.cfg
定義 mylinux.cfg
define host{
           use             linux-server
          host_name     mylinux
          alias            mylinux
          address        192.168.0.20(客戶端IP既被監控的IP)
        }
define service{
        use                      generic-service
        host_name             mylinux
        service_description     check-swap
        check_command        check_nrpe!check_swap
               }
define service{
        use                      generic-service
        host_name             mylinux
        service_description     check-load
       check_command         check_nrpe!check_load
               }
define service{
        use                      generic-service
        host_name             mylinux
       service_description     check-disk
       check_command        check_nrpe!check_had1
}
define service{
        use                      generic-service
        host_name             mylinux
       service_description     check-users
       check_command        check_nrpe!check_users
               }
define service{
        use                    generic-service
        host_name           mylinux
        service_description  otal_procs
        check_command     check_nrpe!check_total_procs

保存退出,重啓服務:
若是重啓不來,多是定義的服務nagios沒有裝插件或不識別,把localhost.cfg的關於service的定義複製到新添加的文中,能夠啓動。
使用/usr/local/nagiso/libexec/check_nrpe -H 192.168.0.20(客戶端ip)
測試是否能夠連通監控
 
若是出現CHECK_NRPE: Error - Could not complete SSL handshake
查看客戶機的防火牆是否容許5666端口通行,或者查看客戶端的nrpe.cfg allowhosts的ip有沒有服務器的ip
實驗效果:
 
 
五.飛信報警
1.下載fention包,解壓出來後
包括主程序fetion,庫文件libACE_SSL-5.7.2.so   libACE-5.7.2.so  libcrypto.so.4  libssl.so.4
2.mv  libACE_SSL-5.7.2.so   libACE-5.7.2.so  libcrypto.so.4  libssl.so.4  /usr/lib
3.chmod a+x fetion
./fetion --mobile 150xxxxxxxx  --pwd 123456  --to 150xxxxxxxx --msg-tpye=0  --msg-utf8 $HOSTNAME
第一次發送會在當前目錄下會生成一個150xxxxxxxx.jpg的圖形驗證碼,將驗證碼輸入,回車便可成功發送飛信。
發送成功界面以下:
相關文章
相關標籤/搜索