Nagios是一款企業級網絡監控系統,它功能之強大,管理之簡單,使得很多大型網絡公司都對它有高度的稱讚,並把它投入到自己的網絡環境,下面是安裝過程,本文是基於turboLinux11環境安裝的,同時分爲監控端和被監控端。
1、安裝前準備
1.1安裝所需環境的軟件
包括Apache 2.x gcc編譯器 gd 庫 和 gd-devel 開發庫,因爲我的系統是完全安裝的,所以就省略了。
yum install http
yum install gcc
yum install gd
yuminstall gd-devel
1.2下載nagios軟件和插件
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz
當然我們也可以登錄nagios官網,下載最新的軟件http://www.nagios.org/download/
2、監控端nagios安裝過程
2.1添加用戶和用戶組
#useradd nagios
#useradd apache (turbolinux 默認有該用戶)
#passwd nagios
#groupadd nagcmd //創建用戶組用於從web接口執行外部命令,並將nagios和Apache用戶添加到這個組裏
#usermod -G nagcmd nagios
#usermod -G nagcmd nagios
2.2編譯和安裝
#tar -zxvf nagios-3.2.1.tar.gz
#cd nagios-3.2.1.tar.gz
#./configure --with-command-group=nagcmd
#make all
#make install
#make install-init
#make install-config
#make install-commandmode
#make install-webconf
安裝nagios-plugins
#tar -zxvf nagios-plugins-1.4.15.tar.gz
#cd nagios-plugins-1.4.15.tar.gz
#./configure --with-nagios-user=nagios --with-nagios-group=nagcmd --enable-ssl --enable-command-args
注意:RedHat可能會出現checking for redhat spopen problem.... 停住
添加 --enable-redhat-pthread-workaround
#make all
#make install
ls /usr/local/nagios/libexec
會顯示安裝的插件文件,即所有的插件都安裝在libexec這個目錄下
將Nagios加入到服務列表中以使之在系統啓動時自動啓動
#chkconfig --add nagios
#chkconfig nagios on
安裝check_nrpe插件
#tar -zxvf nrpe-2.12.tar.gz
#./configure
#make
#make install
至此監控服務器上的軟件就安裝完了,我們來看看軟件安裝完後他的結構
# ll /usr/local/nagios/ |awk '{print $8}'
bin Nagios執行程序所在目錄,nagios文件即爲主程序
etc Nagios配置文件位置
include 不清楚,哈哈!!!!
libexec nagios-plugins安裝後放置插件目錄,
sbin Nagios Cgi文件所在目錄,也就是執行外部命令所需文件所在的目錄
share Nagios網頁文件所在的目錄
var Nagios日誌文件,包括歸檔日誌
3、配置WEB接口
方法一:直接在安裝nagios時 make install‐webconf
創建一個nagiosadmin的用戶用於Nagios的WEB接口登錄。記下你所設置的登錄口令,一會兒你會用到它。
htpasswd ‐c /usr/local/nagios/etc/htpasswd.users nagiosadmin
重啓Apache服務以使設置生效。
service httpd restart
方法二:在httpd.conf最後添加如下內容:
ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin
<Directory "/usr/local/nagios/sbin">
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd
//用於此目錄訪問身份驗證的文件
Require valid-user
</Directory>
Alias /nagios /usr/local/nagios/share
<Directory "/usr/local/nagios/share">
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd
//用於此目錄訪問身份驗證的文件
Require valid-user
</Directory>
添加用戶test
/usr/local/apache2/bin/htpasswd ‐c /usr/local/nagios/etc/htpasswd test
New password: (輸入12345)
Re‐type new password: (再輸入一次密碼)
Adding password for user test
查看認證文件的內容
less /usr/local/nagios/etc/htpasswd
test:OmWGEsBnoGpIc 前半部分是用戶名test,後面是加密後的密碼
4、啓動nagios
驗證Nagios的樣例配置文件
/usr/local/nagios/bin/nagios ‐v /usr/local/nagios/etc/nagios.cfg
如果沒有報錯,可以啓動Nagios服務
方法一:因爲前面我們已經將nagios添加到系統服務器裏,所以可以直接啓動
#service nagios start
方法二:手動輸入命令啓動
#/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
5、更改SELinux設置
SELinux(安全增強型Linux)同步發行與安裝後將默認使用強制模式。這會在你嘗試聯入Nagios的CGI時導致一個"內部服務錯誤"消息。
如果是SELinux處於強制安全模式時需要做
getenforce
令SELinux處於容許模式
setenforce 0
如果要永久性更變它,需要更改/etc/selinux/config裏的設置並重啓系統。
不關閉SELinux或是永久性變更它的方法是讓CGI模塊在SELinux下指定強制目標模式:
chcon ‐R ‐t httpd_sys_content_t /usr/local/nagios/sbin/
chcon ‐R ‐t httpd_sys_content_t /usr/local/nagios/share/
6、測試
登錄 http://localhost/nagios/ 輸入用戶名和密碼就可以正常登錄了
7、被監控機器上安裝軟件
在被監控主機上
增加用戶
useradd nagios
設置密碼
passwd nagios
2安裝nagios插件
tar ‐zxvf nagios‐plugins‐***.tar.gz
cd nagios‐plugins‐***
./configure
make
make install
chown nagios.nagios /usr/local/nagios
chown ‐R nagios.nagios /usr/local/nagios/libexec
安裝nrpe (監控機也安裝)
tar ‐zxvf nrpe‐***.tar.gz
cd nrpe‐2.1.2
./configure --enable-ssl --enable-command-args
make all
make install‐plugin
make install‐daemon
make install‐daemon‐config
/usr/local/nagios/libexec/check_nrpe ‐H localhost
會返回當前NRPE的版本
# /usr/local/nagios/libexec/check_nrpe ‐H localhost
NRPE v2.1.2
也就是在本地用check_nrpe連接nrpe daemon是正常的
注:爲了後面工作的順利進行,注意本地防火牆要打開5666能讓外部的監控機訪問
同時修改nrpe配置文件,添加監控端ip,允許監控端訪問
allowed_hosts=127.0.0.1,192.168.99.2
/usr/local/nagios/libexec/check_nrpe –h查看這個命令的用法
可以看到用法是check_nrpe –H 被監控的主機 ‐c要執行的監控命令
注意:‐c後面接的監控命令必須是nrpe.cfg文件中定義的.也就是NRPE daemon只運行nrpe.cfg中所定義的命令
在監控與被監控機上啓動NRPE:
方法一:手動輸入命令啓動
/usr/local/nagios/bin/nrpe ‐c /usr/local/nagios/etc/nrpe.cfg ‐d
方法二:將服務添加到xinetd (前提是服務器安裝了xinetd服務)
在安裝nrpe的時候最後將啓動添加到xinetd
#make install-xinetd
vi /etc/xinetd.d/nrpe
# default: on
# description: NRPE (Nagios Remote Plugin Executor)
service nrpe
{
flags = REUSE
socket_type = stream
port = 5666
wait = no
user = nagios
group = nagios
server = /usr/local/nagios/bin/nrpe
server_args = -c /usr/local/nagios/etc/nrpe.cfg --inetd
log_on_failure += USERID
disable = no
only_from = 127.0.0.1 192.168.99.2(添加監控端ip,允許監控端訪問)
}
vi /etc/service
添加如下:
nrpe 5666/tcp #nrpe Daemon
啓動:
#service xinetd restart
查看nrpe是否啓動監聽端口
#netstat -an|grep 5666
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN
在監控服務器上查看被監控機器是否訪問nrpe
# /usr/local/nagios/libexec/check_nrpe ‐H 192.168.99.3
NRPE v2.1.2