我們都知道Nagios是一個監視系統運行狀態和網絡信息的監視系統。Nagios能監視所指定的本地或遠程主機以及服務,同時提供異常通知功能等。Nagios可運行在Linux/Unix平台之上,同時提供一個可選的基於浏覽器的WEB界面以方便系統管理人員查看網絡狀態,各種系統問題,以及日志等等。
Nagios的主要功能特點:
- 監視網絡服務 (SMTP, POP3, HTTP, NNTP, PING等)
- 監視主機資源 (進程, 磁盤等)
- 簡單的插件設計可以輕松擴展Nagios的監視功能
- 服務等監視的並發處理
- 錯誤通知功能 (通過email, pager, 或其他用戶自定義方法)
- 可指定自定義的事件處理控制器
- 可選的基於浏覽器的WEB界面以方便系統管理人員查看網絡狀態,各種系統問題,以及日志等等
- 可以通過手機查看系統監控信息
今天我們就主要介紹如何在Unbuntu下安裝安裝Nagios,具體見下:
安裝ubuntu 11.10 Desktop 32bit
安裝 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
配置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
啟動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
測試php是否解析正常
在shell裡切換到/var/www目錄下
cd /var/www
清空裡面的文件
rm -rf *
新建測試頁面
vim index.php
<?php
phpinfo();
?>
退出並保存
打開浏覽器測試:
http://localhost
是否正常顯示php的信息
安裝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
回車後會提示你輸入密碼並確認密碼
編譯安裝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
編譯安裝nrpe (非必須步驟)
不應用nrpe的nagios工作流程
使用nrpe的nagios工作流程
需要在服務器端和被監控端安裝
回到 /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”,說明服務正常
啟動服務
更改/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 查看頁面是否正常
配置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 是定義服務並和主機組相關聯的配置文件
配置通知聯系人
nagios可以做到故障和故障恢復通知,這需要配置聯系人,如果你有139的郵箱,可以免費使用139的郵件短信通知,也可以購買專業的sms服務來實現短信通知,這樣通知更及時
修改聯系人配置文件
sudo vim /usr/local/nagios/etc/objects/contacts.cfg
修改nagiosadmin的email地址
並按照原來的添加新的聯系人
退出並保存
將添加的聯系人加到聯系人組
配置主機配置文件
按照 localhost.cfg配置dsgrd_servers.cfg配置文件
use 是使用在template.cfg文件中的模板,是定義好的,如果其中的內容和當前的有沖突, 則以當前優先,如果沒有,就繼承 use中使用的。
配置主機組
我們監控服務器是監控一組有相同服務的主機組,這樣監控起來方便,比如我們監控http服務的web server,我們就把這些服務器放到一個主機組裡,然後來監控他們的http服務;如果這些跑著http服務的server上有運行著smtp服務,那麼就把這些運行smtp服務的web server和其它的smtp server放到一個主機組裡去監控他們的smtp服務
sudo vim /usr/local/nagios/etc/objects/bys_server_group.cfg
配置services配置文件
定義好了主機,主機組,接下來我們就要定義service,這才是nagios要監控的。
要把主機或主機組和服務聯系起來
sudo vim /usr/local/nagios/etc/objects/services.msc
use 使用的是template.cfg 文件裡定義好的選項,直接繼承過來,如果和當前定義的有 沖突則以當前優先
hostgroup_name是在引用之前定義好的主機組,如果要引用單個主機就使用 host_name
service_description 服務描述一定要有
check_command 是nagios提供的監控命令,是它在實現監控
contact_group 是報警聯系人,之前定義好的
重啟Nagios服務
做完配置後要加載已經下當前的變更,是指生效;在加載前可以先怕判斷一下配置文件是否有效
sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
會幫助判斷所有的配置文件是否正確,如果有問題就會顯示錯誤原因,可以幫助排錯。
如果沒有問題,就可以重新加載配置文件了
sudo /etc/init.d/nagios reload
登錄http://localhost/nagios
查看效果以及報警郵件
因為nagios裡使用的郵件發送腳本的位置寫的是 /bin/mail , 而bubuntu11.10 mail腳本的路徑是/usr/bin/mail, 如果不修改的話nagios發不出報警郵件來
有兩種途徑來修正這個error:
a. 修改發送命令裡mail的路徑,編輯 /usr/local/nagios/etc/objects/command.cfg
b. 創建一個軟鏈接 /bin/mail -------> /usr/bin/mail
sudo ln -sv /bin/mail /usr/bin/mail
報警郵件
故障恢復郵件
通過139郵箱的短信通知功能可以將信息發送到手機上,節假日及時了解服務器故障狀態
本文出自 “高文龍” 博客,請務必保留此出處http://gaowenlong.blog.51cto.com/451336/1323268