Ubuntu11.10搭建和配置Nagios

技術小阿哥發表於2017-11-26

我們都知道Nagios是一個監視系統執行狀態和網路資訊的監視系統。Nagios能監視所指定的本地或遠端主機以及服務,同時提供異常通知功能等。Nagios可執行在Linux/Unix平臺之上,同時提供一個可選的基於瀏覽器的WEB介面以方便系統管理人員檢視網路狀態,各種系統問題,以及日誌等等。

Nagios的主要功能特點:

– 監視網路服務 (SMTP, POP3, HTTP, NNTP, PING等)

– 監視主機資源 (程式, 磁碟等)

– 簡單的外掛設計可以輕鬆擴充套件Nagios的監視功能

– 服務等監視的併發處理

– 錯誤通知功能 (通過email, pager, 或其他使用者自定義方法)

– 可指定自定義的事件處理控制器

– 可選的基於瀏覽器的WEB介面以方便系統管理人員檢視網路狀態,各種系統問題,以及日誌等等

– 可以通過手機檢視系統監控資訊

今天我們就主要介紹如何在Unbuntu下安裝安裝Nagios,具體見下:

  1. 安裝ubuntu 11.10 Desktop 32bit

  2. 安裝 apache2、php5、openssl、libssl-dev、gcc編譯器與開發庫、gd開發庫、php、php-apache、php相關的外掛

可以用apt-get命令來安裝這些軟體包,鍵入命令:

sudo apt-get install apache2

sudo apt-get install build-essential

sudo apt-get install libgd2-xpm-dev

sudo apt-get install openssl

sudo apt-get install libssl-dev

sudo apt-get install php5

sudo apt-get install libapache2-mod-php5 (這個可能在安裝php5的時候就已經安裝,如果安裝就 不需要安裝啦)

sudo apt-get install libjpeg8

sudo apt-get install libjpeg8-dev

sudo apt-get install curl

sudo apt-get install libcurl3

sudo apt-get install libpng12-0

sudo apt-get install libpng12-dev

sudo apt-get install freetype2-demos

sudo apt-get install libfreetype6

sudo apt-get install libxml2

sudo apt-get install libxml2-dev

  1. 配置apache

如果預設沒有安裝vim編輯器,先安裝vim,因為預設的vi編輯器在ubuntu裡相當的噁心

sudo apt-get install vim

sudo vim /etc/apache2/apache2.conf

按shift-g,也就是G,到篇尾,新增如下配置

AddType application/x-httpd-php .php .htm .html

AddDefaultCharset UTF-8

DirectoryIndex index.php index.html index.html

  1. 啟動apache服務

sudo /etc/init.d/apache2 start

使用chkconfig工具設為隨機自啟動,如果沒有安裝chkconfig則先安裝chkconfig

sudo apt-get install chkconfig

sudo update-rc.d apache2 defaults

sudo chkconfig apache2 on

  1. 測試php是否解析正常

在shell裡切換到/var/www目錄下

cd /var/www

清空裡面的檔案

rm -rf *

新建測試頁面

vim index.php

<?php

phpinfo();

?>

退出並儲存

開啟瀏覽器測試:

http://localhost

是否正常顯示php的資訊

clip_image002

  1. 安裝Nagios

建立nagios 使用者和 nagios命令組

sudo useradd -s /bin/false nagios

sudo groupadd nagcmd

將 nagios帳號和www-data使用者加入到 nagcmd組中

sudo usermod -G nagcmd nagios

sudo usermod -G nagcmd www-data

下載 nagios nagios-plugin nrpe

切換目錄到/usr/local/src

cd /usr/local/src

sudo wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.3.1.tar.gz

sudo wget http://nagiosplug.sourceforge.net/snapshot/nagios-plugins-HEAD.tar.gz

sudo wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz

解壓 nagios-3.3.1.tar.gz

sudo tar zxvf nagios-3.3.1.tar.gz

進入到解壓的目錄

cd nagios

編譯安裝nagios

sudo ./configure –prefix=/usr/local/nagios –with-command-group=nagcmd

結束之後,執行 echo $? 檢視返回值,如果是0說明沒有問題,可以進行下一步,如果是 非0說明沒有成功,需找原因重新執行

因為3.3.1版本在configure完成以configure後執行下一步安裝的時候有點兒問題,所以 得修改一下 生成的makefile檔案

sudo sed -i `s:for file in includes/rss/*;:for file in includes/rss/*.*;:g` ./html/Makefile 

sudo sed -i `s:for file in includes/rss/extlib/*;:for file in includes/rss/extlib/*.*;:g` ./html/Makefile

sudo make all

初始化

sudo make install-init

生成配置檔案

sudo make install-config

生成命令檔案

sudo make install-command

配置web介面

sudo make install-webconf

建立一個nagiosadmin的使用者用於nagios的web介面

sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

回車後會提示你輸入密碼並確認密碼

  1. 編譯安裝Nagios外掛

再次回到/usr/local/src目錄

cd /usr/local/src

解壓 nagios-plugins-HEAD.tar.gz

sudo tar zxvf nagios-plugins-HEAD.tar.gz

進入到解壓後的目錄

cd nagios-plugins-1.4.15-39-gd796c

編譯nagios-plugins

sudo ./configure –prefix=/usr/local/nagios –with-nagios-user=nagios –with-nagios-group=nagios

安裝

sudo make

sudo make install

  1. 編譯安裝nrpe (非必須步驟)

不應用nrpe的nagios工作流程

clip_image004

使用nrpe的nagios工作流程

clip_image006

需要在伺服器端和被監控端安裝

回到 /usr/local/src

cd /usr/local/src

解壓 nrpe-2.13.tar.gz

sudo tar zxvf nrpe-2.13.tar.gz

cd nrpe-2.13

編譯 nrpe

sudo ./configure –prefix=/usr/local/nagios –with-ssl-inc=/usr/include –with-ssl-lib=/usr/lib/x86-linux-gnu

安裝 nrpe

sudo make all

sudo make install-plugin

sudo make install-daemon

sudo make install-daemon-config

sudo make install-xinetd

檢查是否安裝 xinetd 服務(一般沒有安裝)

sudo dpkg -L xinetd

如果返回 ”未曾安裝軟體包 xinetd“ 的提示,就需要安裝 xinetd服務

sudo apt-get install xinetd

將xinetd新增到啟動級別中

sudo update-rc.d xinetd defaults

設為隨機自啟動

sudo chkconfig xinetd on

編輯 /etc/services配置檔案,新增nrpe的服務埠

sudo vim /etc/services

在尾行新增如下配置

nrpe 5666/tcp # NRPE Service Port

如果是被監控端,還需要編輯 /etc/xinted.d/nrpe

sudo vim /etc/xinetd.d/nrpe

only_from = 127.0.0.1 10.1.10.23(新增nagios的ip地址)

退出並儲存

sudo chkconfig nrpe on

sudo /etc/init.d/xinetd restart

檢查nrpe服務是否正常

sudo netstat -at | grep nrpe

如果返回“tcp 0 0 *:nrpe *:* LISTEN”,說明服務正常

  1. 啟動服務

更改/usr/local/nagios目錄的屬主和屬組

suduo chown -R nagios.nagcmd /usr/local/nagios

將nagios新增到啟動級別中

sudo update-rc.d nagios defaults

設為隨機自啟動

sudo chkconfig nagios on

啟動nagios服務

sudo /etc/init.d/nagios start

重啟 apache2服務

sudo /etc/init.d/apache2 restart

登入 http://localhost/nagios 檢視頁面是否正常

  1. 配置nagios 主配置檔案

sudo vim /usr/local/nagios/etc/nagios.cfg

新增所新增的配置檔案

cfg_file=/usr/local/nagios/etc/objects/dsgrd_servers.cfg

cfg_file=/usr/local/nagios/etc/objects/bys_servers_group.cfg

cfg_file=/usr/local/nagios/etc/objects/services.cfg

dsgrd_servers.cfg是定義主機的配置檔案

bys_servers_group.cfg 是定義主機組的配置檔案

services.cfg 是定義服務並和主機組相關聯的配置檔案

clip_image008

  1. 配置通知聯絡人

nagios可以做到故障和故障恢復通知,這需要配置聯絡人,如果你有139的郵箱,可以免費使用139的郵件簡訊通知,也可以購買專業的sms服務來實現簡訊通知,這樣通知更及時

修改聯絡人配置檔案

sudo vim /usr/local/nagios/etc/objects/contacts.cfg

clip_image010

修改nagiosadmin的email地址

並按照原來的新增新的聯絡人

退出並儲存

將新增的聯絡人加到聯絡人組

clip_image012

  1. 配置主機配置檔案

按照 localhost.cfg配置dsgrd_servers.cfg配置檔案

clip_image014

use 是使用在template.cfg檔案中的模板,是定義好的,如果其中的內容和當前的有衝突, 則以當前優先,如果沒有,就繼承 use中使用的。

  1. 配置主機組

我們監控伺服器是監控一組有相同服務的主機組,這樣監控起來方便,比如我們監控http服務的web server,我們就把這些伺服器放到一個主機組裡,然後來監控他們的http服務;如果這些跑著http服務的server上有執行著smtp服務,那麼就把這些執行smtp服務的web server和其它的smtp server放到一個主機組裡去監控他們的smtp服務

sudo vim /usr/local/nagios/etc/objects/bys_server_group.cfg

clip_image016

  1. 配置services配置檔案

定義好了主機,主機組,接下來我們就要定義service,這才是nagios要監控的。

要把主機或主機組和服務聯絡起來

sudo vim /usr/local/nagios/etc/objects/services.msc

clip_image018

use 使用的是template.cfg 檔案裡定義好的選項,直接繼承過來,如果和當前定義的有 衝突則以當前優先

hostgroup_name是在引用之前定義好的主機組,如果要引用單個主機就使用 host_name

service_description 服務描述一定要有

check_command 是nagios提供的監控命令,是它在實現監控

contact_group 是報警聯絡人,之前定義好的

  1. 重啟Nagios服務

做完配置後要載入已經下當前的變更,是指生效;在載入前可以先怕判斷一下配置檔案是否有效

sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

會幫助判斷所有的配置檔案是否正確,如果有問題就會顯示錯誤原因,可以幫助排錯。

如果沒有問題,就可以重新載入配置檔案了

sudo /etc/init.d/nagios reload

  1. 登入http://localhost/nagios

檢視效果以及報警郵件

clip_image020

因為nagios裡使用的郵件傳送指令碼的位置寫的是 /bin/mail , 而bubuntu11.10 mail指令碼的路徑是/usr/bin/mail, 如果不修改的話nagios發不出報警郵件來

有兩種途徑來修正這個error:

a. 修改傳送命令裡mail的路徑,編輯 /usr/local/nagios/etc/objects/command.cfg

clip_image022

b. 建立一個軟連結 /bin/mail ——-> /usr/bin/mail

sudo ln -sv /bin/mail /usr/bin/mail

clip_image024

報警郵件

故障恢復郵件

clip_image026

通過139郵箱的簡訊通知功能可以將資訊傳送到手機上,節假日及時瞭解伺服器故障狀態

clip_image028

本文轉自 高文龍 51CTO部落格,原文連結:http://blog.51cto.com/gaowenlong/1323268,如需轉載請自行聯絡原作者


相關文章