1. 程式人生 > >Nagios監控服務的搭建

Nagios監控服務的搭建

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監控服務的搭建