Nagios監控服務的搭建
Nagios是一款開源的電腦系統和網絡監視工具,能有效監控Windows、Linux和Unix的主機狀態,交換機路由器等網絡設置,打印機等。
主要功能
網絡服務監控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH)
主機資源監控(CPU load、disk usage、system logs),也包括Windows主機(使用NSClient++ plugin)
可以指定自己編寫的Plugin通過網絡收集數據來監控任何情況(溫度、警告……)
可以通過配置Nagios遠程執行插件遠程執行腳本
遠程監控支持SSH或SSL加通道方式進行監控
簡單的plugin設計允許用戶很容易的開發自己需要的檢查服務,支持很多開發語言(shell scripts、C++、Perl、ruby、Python、PHP、C#等)
包含很多圖形化數據Plugins(Nagiosgraph、Nagiosgrapher、PNP4Nagios等)
可並行服務檢查
能夠定義網絡主機的層次,允許逐級檢查,就是從父主機開始向下檢查
當服務或主機出現問題時發出通告,可通過email, pager, sms 或任意用戶自定義的plugin進行通知
能夠自定義事件處理機制重新激活出問題的服務或主機
自動日誌循環
支持冗余監控
包括Web界面可以查看當前網絡狀態,通知,問題歷史,日誌文件等
二、Nagios工作原理
Nagios的功能是監控服務和主機,但是他自身並不包括這部分功能,所有的監控、檢測功能都是通過各種插件來完成的。
Nagios提供了許多插件,利用這些插件可以方便的監控很多服務狀態。安裝完成後,在nagios主目錄下的/libexec裏放有nagios自帶的可以使用的所有插件,如,check_disk是檢查磁盤空間的插件,check_load是檢查CPU負載的,等等。每一個插件可以通過運行./check_xxx –h 來查看其使用方法和功能。
Nagios可以識別4種狀態返回信息,即 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 依次讀取隊列中的信息,再把結果顯示出來。
下面進行安裝
# yum install -y gcc glibc glibc-common gd xinetd openssl-devel
# useradd -s /sbin/nologin nagios
# mkdir /usr/local/nagios
# chown -R nagios.nagios /usr/local/nagios
# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.4.3.tar.gz
# tar zxvf nagios-3.4.3.tar.gz
# ./configure --prefix=/usr/local/nagios
# make all
報下面錯
其實它是要制作目標文件/include/locations.h,這個是頭文件,可是這個頭文件需要broker.o文件
這個文件是由perl安裝包提供的,你可以先執行下面命令安裝perl,然後再重新./configure一下,再make all就沒有問題啦
yum install perl -y
# make install
# make install-init
# make install-commandmode
# make install-config
# chkconfig --add nagios
# chkconfig --level 35 nagios on
# chkconfig --list nagios
驗證程序是否被正確安裝
切換目錄到安裝路徑(這裏是/usr/local/nagios),看是否存在etc、bin、sbin、share、var 這五個目錄,如果存在則可以表明程序被正確的安裝到系統了。Nagios 各個目錄用途說明如下:
bin
Nagios 可執行程序所在目錄
etc
Nagios 配置文件所在目錄
sbin
Nagios CGI 文件所在目錄,也就是執行外部命令所需文件所在的目錄
share
Nagios網頁文件所在的目錄
libexec
Nagios 外部插件所在目錄
var
Nagios 日誌文件、lock 等文件所在的目錄
var/archives
Nagios 日誌自動歸檔目錄
var/rw
用來存放外部命令文件的目錄
下面安裝Nagios的插件
# wget https://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz
# tar xzvf nagios-plugins-2.2.1.tar.gz
# cd nagios-plugins-2.2.1
# ./configure --prefix=/usr/local/nagios
# make && make install
下面安裝apache和php對web界面的支持
# wget http://archive.apache.org/dist/httpd/httpd-2.2.23.tar.gz
# tar zxvf httpd-2.2.23.tar.gz
# cd httpd-2.2.23
# ./configure --prefix=/usr/local/apache2
# make && make install
如果出現以下錯誤
則在編譯時入加 --with-included-apr 即可解決。
# wget http://101.96.10.63/jp2.php.net/distributions/php-5.5.38.tar.gz
# tar -xzvf php-5.5.38.tar.gz
# cd php-5.5.38
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs
apxs
是一個為Apache HTTP服務器編譯和安裝擴展模塊的工具,用於編譯一個或多個源程序或目標代碼文件為動態共享對象,使之可以用由mod_so
提供的LoadModule
指令在運行時加載到Apache服務器中。
這個可能會出現下面情況
這個是說你沒有安裝libxml這個軟件包,我就用yum安裝,發現提示已經安裝了,我覺得有可能是編譯包沒有安裝,果然沒錯,是libxml這個編譯包沒有安裝
# yum install libxml2
# yum install libxml2-devel
然後再回去執行./configure命令就可以啦
# make && make install
# vi /usr/local/apache2/conf/httpd.conf
找到:
User daemon Group daemon
修改為
User nagios Group nagios
然後找到
<IfModule dir_module> DirectoryIndex index.html </IfModule>
修改為
<IfModule dir_module> DirectoryIndex index.html index.php </IfModule>
接著增加如下內容:
AddType application/x-httpd-php .php
實質就是添加可以執行php的文件類型,比如你再加上一行“AddType application/x-httpd-php .htm”,則.htm文件也可以執行php程序了
為了安全起見,一般情況下要讓nagios 的web 監控頁面必須經過授權才能訪問,這需要增加驗證配置,即在httpd.conf 文件最後添加如下信息:
#setting for nagios ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin" <Directory "/usr/local/nagios/sbin"> AuthType Basic Options ExecCGI AllowOverride None Order allow,deny Allow from all AuthName "Nagios Access" AuthUserFile /usr/local/nagios/etc/htpasswd //用於此目錄訪問身份驗證的文件 Require valid-user </Directory> Alias /nagios "/usr/local/nagios/share" <Directory "/usr/local/nagios/share"> AuthType Basic Options None AllowOverride None Order allow,deny Allow from all AuthName "nagios Access" AuthUserFile /usr/local/nagios/etc/htpasswd Require valid-user </Directory>
創建apache目錄驗證文件
在上面的配置中,指定了目錄驗證文件htpasswd,下面要創建這個文件:
# /usr/local/apache2/bin/htpasswd -c /usr/local/nagios/etc/htpasswd username
這樣就在/usr/local/nagios/etc 目錄下創建了一個htpasswd 驗證文件,當通過http://192.168.1.108/nagios/ 訪問時就需要輸入用戶名和密碼了。
啟動apache 服務
# /usr/local/apache2/bin/apachectl start
來源: http://www.cnblogs.com/mchina/archive/2013/02/20/2883404.html
本文出自 “愛周瑜” 博客,請務必保留此出處http://izhouyu.blog.51cto.com/10318932/1965409
Nagios監控服務的搭建