1. 程式人生 > >監控系統nagios的安裝

監控系統nagios的安裝

nagios:一個監視系統的框架。它用來整合各種監聽服務的外掛來實現對從屬機的監聽。

原理:

nagios通過週期性的自動呼叫外掛去檢查從屬機器的狀態,在此同時會建立一個佇列,將返回的訊息狀態放入到佇列中,然後通過web介面顯示出來。

主要功能:

  1. 網路服務監控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH)
  2. 主機資源監控(CPU load、disk usage、system logs),也包括Windows主機(使用NSClient++ plugin)
  3. 可以指定自己編寫的Plugin通過網路收集資料來監控任何情況(溫度、警告……)
  4. 可以通過配置Nagios遠端執行外掛遠端執行指令碼
  5. 遠端監控支援SSH或SSL加通道方式進行監控
  6. 簡單的plugin設計允許使用者很容易的開發自己需要的檢查服務,支援很多開發語言(shell scripts、C++、Perl、ruby、Python、PHP、C#等)
  7. 包含很多圖形化資料Plugins(Nagiosgraph、Nagiosgrapher、PNP4Nagios等)
  8. 可並行服務檢查
  9. 能夠定義網路主機的層次,允許逐級檢查,就是從父主機開始向下檢查
  10. 當服務或主機出現問題時發出通告,可通過email, pager, sms 或任意使用者自定義的plugin進行通知
  11. 能夠自定義事件處理機制重新激活出問題的服務或主機
  12. 自動日誌迴圈
  13. 支援冗餘監控
  14. 包括Web介面可以檢視當前網路狀態,通知,問題歷史,日誌檔案等

安裝方式:

基礎外掛的安裝:gcc glibc glibc-common gd gd-devel xinetd openssl-devel

檢測外掛是否安裝:# rpm -q gcc glibc glibc-common gd gd-devel xinetd openssl-devel

如果已經安裝,則會出現以下的資訊。

gcc-4.8.5-11.el7.x86_64
glibc-2.17-157.el7_3.1.x86_64
glibc-common-2.17-157.el7_3.1.x86_64
gd-2.0.35-26.el7.x86_64
gd-devel-2.0.35-26.el7.x86_64
xinetd-2.3.15-13.el7.x86_64
openssl-devel-1.0.1e-60.el7_3.1.x86_64
沒有安裝的話,執行下面命令:

# yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel

(yum與rpm的區別,rpm是紅帽公司開發的軟體管理軟體,方便我們對軟體的安裝、解除安裝、升級等,但是rpm軟體包之間的依賴性問題是很繁瑣的。yum是fedora與redhat中shell前端的軟體管理工具,基於rpm管理的,能夠從指定的伺服器下載相關軟體,並可以自動的一次性解決依賴包問題)。


建立nagios使用者與使用者組:

#useradd -s  /sbin/nologin nagios
#mkdir  /usr/local/nagios
#chown nagios.nagios /usr/local/nagios
檢視目錄許可權:

drwxr-xr-x. 9 nagios nagios 87 Mar  6 11:49 /usr/local/nagios/


編譯安裝nagios:

下載nagios:

wget  https://sourceforge.net/projects/nagios/files/nagios-4.x/nagios-4.3.1/nagios-4.3.1.tar.gz/download
tar -zxf nagios-4.3.1
cd nagios-4.3.1
./configure  --prefix=/usr/local/nagios
(解壓檔案,進入目錄,配置軟體的安裝目錄)

# make all
此步驟執行完畢之後,你會發現會提示很多有關於make的命令,建議都執行一次,我是按照網上教程進行操作的,結果少了一步,浪費了不少時間。
# make install
# make install-init
# make install-commandmode
# make install-config
# make install-webconf
# chkconfig --add nagios
# chkconfig --level 35 nagios on
# chkconfig --list nagios
前5步都是編譯的過程,到了第六步是對安裝之後的檢測

第六步是將系統服務加入到軟體管理器中,能夠對該服務進行管理。

nagios         	0:off	1:off	2:on	3:on	4:on	5:on	6:off

檢測軟體是否被正確安裝:

切換目錄到/usr/local/nagios/,如果存在目錄etc、bin、sbin、share、var,則證明已經正確安裝,其中每個目錄的用途如下所示:

etc nagios 配置檔案所在目錄
bin nagios 可執行程式所在的目錄
sbin nagios CGI檔案所在目錄,也就是外部命令所需檔案所在的目錄
share nagios 外部網頁所在的目錄
var nagios日誌檔案、lock等檔案所在的目錄

安裝nagios外掛:


安裝apache與php:

這兩個並不是nagios執行必須,但是nagios提供了web訪問介面,在利用web訪問nagios的狀態下,安裝一個apache服務是必須的,但是apache服務是需要php支援的。

安裝apache:

# 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
在configure的時候,apache服務需要檢測apr與apr-util的存在,因此需要你的機器上安裝了apr與apr-util服務,去apache官網上去下載apr與apr-util,安裝普通的編譯與安裝方式進行安裝。

然後對apache進行編譯:

configure --prefix=/usr/local/apache2 --with-apr-util=/usr/local/apr-util(這裡指的是apr-util的安裝路徑,有可能還需要新增apr的路徑)。

安裝php:

# wget http://cn2.php.net/distributions/php-5.4.10.tar.gz
# tar zxvf php-5.4.10.tar.gz
# cd php-5.4.10
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs
#make && make install
問題(1)就是第一次編譯安裝apache後,沒有/usr/local/apache2目錄,從而也就沒有/usr/local/apache2/bin/apxs,所以再一次對apache進行編譯之後出現了這個目錄。
問題(2)有的部落格上將make && make install寫作make & make install。驗證時候前者是正確的,因為後者是位與的關係,也就是說make與make install同時會執行,導致兩次編譯進而發生錯誤。

配置apache檔案:

進入到/usr/local/apache2/conf.d,找到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 
     AddType application/x-httpd-php .php 
</IfModule>
按照理論apache會自動訪問系統目錄/etc/httpd/conf.d/下面的配置檔案,因此在上述過程中make install-webconf主要的作用是nagios下面sample-config/http.conf配置成apache的配置檔案。

手工自己進行新增:

#cp sample-config/httpd.conf /usr/local/apache/conf/nagios.conf
這樣之後在/usr/local/apache/conf/httpd.conf 檔案新增 Include conf/nagios.conf 注意include第一個字母大寫
不能寫include nagios.conf 會無法識別。

然後開啟nagios.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.uers             //用於此目錄訪問身份驗證的檔案 
     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驗證檔案:

在上面的用漢字標明的目錄一行中,指定代了驗證的檔案。
建立驗證檔案:

# /usr/local/apache2/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users kp
這樣就在/usr/local/nagios/etc 目錄下建立了一個htpasswd 驗證檔案。

啟動apache服務:

/usr/local/apache2/bin/apachectl start/stop/restart

啟動nagios:

因為在上述過程中已經將nagios服務加入到軟體管理系統中。

service nagios start/stop/restart

apache預設埠是80,ip是localhost。若出現socket問題,進入apache配置檔案中對埠與ip進行修改。

在瀏覽器中輸入:http://ip:port/nagios/   出現你訪問的頁面。

到這裡nagios的搭建已經完成了。