LNMP環境下的Nagios搭建

安裝開始:

A、安裝前準備

安裝的機器上必須有一個WEB服務,本文是在Nginx環境上安裝的。

下載nagios主程序和相關插件程序包

#mkdir /tmp/nagios/Packages

#cd /tmp/nagios/Packages

#wget http://downloads.sourceforge.net/project/nagios/nagios-3.x/nagios-3.5.0/nagios-3.5.0.tar.gz

#wget http://nagios-plugins.org/download/nagios-plugins-1.4.16.tar.gz

#wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz

安裝GD庫(Nagios中的statusmap和trends模塊必須)

#yum -y install libgd2-noxpm libgd2-noxpm-devel

 

B、Nagios監控端安裝

1、創建Nagios用戶及組

建立Nagios賬號

#/usr/sbin/useradd -m -s /sbin/nologin nagios

2、創建一個名爲nagcmd的用戶組,用於從web接口執行外部命令。將Nagios用戶和Nginx用戶加入組中。

#groupadd nagcmd

#usermod -a -G nagcmd nagios

#usermod -a -G nagcmd www

注:上面的www是Nginx用戶所屬的組,如有不同請自行調整。

 

3、編譯安裝Nagios

#tar zxvf nagios-3.5.0.tar.gz
#cd nagios

#./configure --prefix=/usr/local/install/nagios --with-group=nagios --with-user=nagios --with-command-group=nagcmd --with-gd-lib=/usr/lib --with-gd-inc=/usr/include
#make all
#make install

#make install-init
#make install-config
#make install-commandmode

注:

make install 用於安裝主要的程序、CGI及HTML文件

make install-init 用於生成init啓動腳本

make install-config 用於安裝示例配置文件

make install-commandmode 用於設置相應的目錄權限

修改/usr/local/install/nagios/etc/objects/contacts.cfg

更改nagiosadmin 的聯繫人定義信息中的 Email 信息爲你的 Email 以接收報警內容。

 

驗證程序是否被正確安裝

切換目錄到安裝路徑,這裏是/usr/local/install/nagios,看是否存在etc、bin、 sbin、 share、 var這五個目錄

#ls /usr/local/install/nagios/

bin/     etc/     sbin/   share/   var/

注;bin–Nagios執行程序所在目錄,其中的nagios文件即爲主程序。

etc–Nagios配置文件位置

sbin–Nagioscgi文件所在目錄,也就是執行外部命令所需文件所在的目錄

Share–Nagios網頁文件所在的目錄

var–Nagios日誌文件、spid 等文件所在的目錄

var/archives–日誌歸檔目錄

var/rw–用來存放外部命令文件

4、編譯並安裝Nagios插件

由於Nagios主程序只是提供一個運行框架,其具體監控是靠運行在其下的插件完成的,所以Nagios插件是必須安裝的。

#cd  /tmp/nagios/Packages

#tar zxvf nagios-plugins-1.4.16.tar.gz
#cd nagios-plugins-1.4.16

#./configure --prefix=/usr/local/install/nagios --with-nagios-user=nagios --with-nagios-group=nagcmd
#make &&make install

#cd ..

驗證Nagios插件是否正確安裝

#ls /usr/local/install/nagios/libexec     #顯示安裝的插件文件

 

5、搭建 Perl 環境

#cd /tmp/nagios/Packages

#yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker

#yum install -y perl-devel perl-CPAN

tar -zxvf FCGI-0.74.tar.gz

cd FCGI-0.74

perl Makefile.PL

make && make install

cd ..

安裝FCGI-ProcManager

tar zxvf FCGI-ProcManager-0.24.tar.gz

cd FCGI-ProcManager-0.24

perl Makefile.PL

make && make install

cd ..

安裝IO/ALL 模塊

tar zxvf IO-1.25.tar.gz

cd IO-1.25

perl Makefile.PL

#make &&make install

#cd ..

tar zxvf IO-All-0.44.tar.gz

cd IO-All-0.44

perl Makefile.PL 

make &&make install

#升級MakeMaker

tar zxvf ExtUtils-MakeMaker-6.62.tar.gz

cd ExtUtils-MakeMaker-6.62

perl Makefile.PL

make &&make install

 

安裝perl fcgi 模塊

啓動perl-cgi

我們使用 unix socket 來監聽 perl CGI 請求並解析

cd /usr/local/install/nginx/sbin/

然後把http://addcn.googlecode.com/svn/trunk/conf/nagios/nginx-fcgi.pl

上的那段代碼copy下來,新建一個nginx-fcgi.pl放在/usr/local/install/nginx/sbin下

chmod +x nginx-fcgi.pl

啓動nginx-fcgi.pl

/usr/local/install/nginx/sbin/nginx-fcgi.pl-l /usr/local/install/nginx/logs/nginx-fcgi.log -pid /usr/local/install/nginx/logs/nginx-fcgi.pid-S /usr/local/install/nginx/logs/nginx-fcgi.sock

 

 

注意上面兩行是一條命令.

這時候報錯:

-bash: /usr/local/nginx/sbin/nginx-fcgi.pl: /usr/bin/perl^M:bad interpreter: No such file or directory

這個是文件格式的問題.

解決:

vi /usr/local/nginx/sbin/nginx-fcgi.pl

在命令模式下:

:set ff

可以看到格式是 doc

設置格式:

:set ff=unix

然後保存退出

:wq

再次執行上面的

 

添加nginx帳戶權限

chown nagios:nagcmd /usr/local/install/nginx/logs/nginx-fcgi.sock

chown nagios:nagcmd /usr/local/install/nginx/logs/nginx-fcgi.pid

chmod 777 /usr/local/install/nginx/logs/nginx-fcgi.pid

chmod 777 /usr/local/install/nginx/logs/nginx-fcgi.sock

如果沒有相關權限,訪問的時候會報 502 錯誤.

6、配置NGINX

1)、配置Nagios Web界面登陸帳號及密碼

#htpasswd –c /usr/local/install/nagios/etc/nagios passwd test

如果你沒有htpasswd(這個工具由Apache安裝包所提供),可在線生成需要加密數據。

a)、訪問http://www.4webhelp.net/us/password.php生成需要加密數據

b)、創建加密驗證文件

#vi /usr/local/install/nagios/etc/nagiospasswd

#加入生成的加密數據,冒號前是用戶名,後面是加密後的密碼

test:13MmxKsxRF36E


#vi /usr/local/install/nagios/etc/cgi.cfg

#以下幾項中分別加入新增的用戶,多用戶用逗號分隔。

default_user_name=test

authorized_for_system_information=nagiosadmin,test

authorized_for_configuration_information=nagiosadmin,test

authorized_for_system_commands=nagiosadmin,test

authorized_for_all_services=nagiosadmin,test

authorized_for_all_hosts=nagiosadmin,test

authorized_for_all_service_commands=nagiosadmin,test

authorized_for_all_host_commands=nagiosadmin,test

refresh_rate=30        #nagios主頁的刷新時間,我設置成30秒自動刷新


2)、修改NGINX配置,以支持WEB方式訪問Nagios

將nagios下share文件鏈接到網站根目錄,並改名爲nagios。

ln -s /usr/local/install/nagios/share/usr/local/install/nginx/html/nagios

NGINX配置片斷如下:

server

        {

     listen       80;

     server_name localhost;

     include  rewrite.conf;

     index  index.html index.htm index.php;

     root html/;

    auth_basic     "NagiosAccess";

    auth_basic_user_file /usr/local/install/nagios/etc/nagiospasswd;

 

location ~ .*\.(php|php5)?$

{

#fastcgi_pass unix:/tmp/php-cgi.sock;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fastcgi.conf;

}

 

location ~.*\.(cgi|pl)?$

{

gzip off;

root /usr/local/install/nagios/sbin;

rewrite ^/nagios/cgi-bin/(.*)\.cgi/$1.cgi break;

fastcgi_pass unix:/usr/local/install/nginx/logs/nginx-fcgi.sock;

fastcgi_param SCRIPT_FILENAME /usr/local/install/nagios/sbin$fastcgi_script_name;

fastcgi_index index.cgi;

fastcgi_read_timeout 60;

fastcgi_param REMOTE_USER $remote_user;

include fastcgi.conf;

auth_basic "Nagios Access";

auth_basic_user_file /usr/local/install/nagios/etc/nagiospasswd;

}

}

7、啓動服務

chkconfig --add nagios

chkconfig --level 2345 nagios on

service nagios start

/usr/local/install/nagios/bin/nagios -v /usr/local/install/nagios/etc/nagios.cfg #檢驗配置

/usr/local/install/nagios/bin/nagiostats #運行狀態

 

8、安裝NRPE

1)由於Nagios只能監測自己所在的主機的一些本地情況,例如,cpu負載、內存使用、硬盤使用等等。如果想要監測被監控的服務器上的這些本地情況,就要用到NRPE。NRPE(Nagios Remote Plugin Executor)是Nagios的一個擴展,它被用於被監控的服務器上,向Nagios監控平臺提供該服務器的一些本地的情況。NRPE可以稱爲Nagios的Linux客戶端。

由於NRPE是通過SSL方式在監控和被監控主機上進行數據傳輸的,所以必須先安裝ssl相關的軟件包。

#cd /tmp/nagios/Packages

#tar zxvf nrpe-2.12.tar.gz
#cd nrpe-2.12
#./configure --prefix=/usr/local/install/nagios
#make all
#make install-plugin

注:監控主機上只需要make install-plugin這一步就可以了。監控機上只要有一個check_nrpe插件用於連接被監控端nrpe的daemon就行了。

#ln -s /tmp/nagios/Packages/nrpe-2.12/src/nrpe /usr/local/install/nagios/bin/nrpe

#ln -s /tmp/nagios/Packages/nrpe-2.12/sample-config/nrpe.cfg /usr/local/install/nagios/etc/nrpe.cfg

啓動NRPE

#/usr/local/install/nagios/bin/nrpe -c /usr/local/install/nagios/etc/nrpe.cfg -d

驗證NRPE是否正確安裝

#/usr/local/install/nagios/libexec/check_nrpe -H localhost

注:如果成功,會返回NRPE的版本號.

2)修改NRPE配置文件,讓監控主機可以訪問被監控主機的NRPE。

缺省NRPE配置文件中只允許本機訪問NRPE的Daemon

#vi /usr/local/install/nagios/etc/nrpe.cfg

#缺省爲127.0.0.1,只能本機訪問

allowed_hosts=127.0.0.1,192.168.1.108

3)在commands.cfg中增加對check_nrpe的定義

# vi /usr/local/nagios/etc/objects/commands.cfg


#'check_nrpe' command definition

define command{
        command_name    check_nrpe         # 定義命令名稱爲check_nrpe,services.cfg中要使用這個名稱.
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$       #這是定義實際運行的插件程序.
        }


4)重啓nrpe的方法

killall nrpe

#/usr/local/install/nagios/bin/nrpe -c /usr/local/install/nagios/etc/nrpe.cfg -d


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章