Nagios 是一款用於系統和網路監控的應用程式。它可以在你設定的條件下對主機和服務進行監
控,並根據管理員所設定的警示閥值和警示方式在監控對象警示時和恢複時通知管理員。
下面介紹Nagios的安裝。
在安裝Nagios之前首先要建個LAMP環境,當然你可以不裝MySQL。
LAMP的安裝可以參考之前的部落格,也可以按下面步驟進行安裝。
首先下載下面這些軟體:
libmcrypt-2.5.8.tar.gz
apr-1.4.6.tar.gz
libpng-1.5.10.tar.gz
apr-util-1.4.1.tar.gz
libxml2-2.7.2.tar.gz
curl-7.28.0.tar.gz
libxslt-1.1.0.tar.g
freetype-2.4.9.tar.gz
nagios-3.4.3.tar.gz
gd-2.0.35.tar.gz
nagios-plugins-1.4.16.tar.gz
httpd-2.4.2.tar.gz
pcre-8.30.zip
php-5.4.3.tar.gz
zlib-1.2.5.tar.gz
jpegsrc.v8b.tar.gz
安裝GD庫(讓PHP支援GIF,PNG,JPEG)
a.安裝 jpeg8 建立目錄:
# mkdir -p /usr/local/jpeg8
# mkdir -p /usr/local/jpeg8/bin
# mkdir -p /usr/local/jpeg8/lib
# mkdir -p /usr/local/jpeg8/include
# mkdir -p /usr/local/jpeg8/man
# mkdir -p /usr/local/jpeg8/man1
# mkdir -p /usr/local/jpeg8/man/man1
# cd /usr/local/src
# tar -zvxf jpegsrc.v8b.tar.gz
# cd jpeg8
# ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
# make
# make install
b.libpng包(支援PNG)
# cd /usr/local/src
# tar -zvxf libpng-1.5.10.tar.gz
# cd libpng- 1.5.10
# ./configure --prefix=/usr/local/libpng
# make
#make install
c.安裝 freetype
# cd /usr/local/src
# tar -zvxf freetype-2.4.9.tar.gz
# cd freetype- 2.4.9
# mkdir -p /usr/local/freetype
# ./configure --prefix=/usr/local/freetype
# make
# make install
d.安裝zlib
# cd /usr/local/src
# tar -zxvf zlib-1.2.3.tar.gz
# cd zlib.1.2.3
# mkdir /usr/local/zlib
# ./configure --prefix=/usr/local/zlib
# make
# make install
e.安裝GD庫
# cd /usr/local/src
# tar -zvxf gd-2.0.35.tar.gz
# mkdir -p /usr/local/gd2
# cd gd/ gd-2.0.35.tar.gz
# ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg8 --with-zlib-dir=/usr/local/zlib --with-png=/usr/local/libpng --with-freetype=/usr/local/freetype
# make
# make install
e.安裝Curl庫
# cd /usr/local/src
# tar -zxvf curl-7.28.0.tar.gz
# mkdir -p /usr/local/curl
# cd curl-7.28.0
# ./configure --prefix=/usr/local/curl
# make
# make install
安裝php5,php5必須有libxml2支援!
f. 安裝libxml2
# cd /usr/local/src
# tar -zvxf libxml2-2.7.2.tar.gz
# cd libxml2-2.7.2
# mkdir -p /usr/local/libxml2
# ./configure --prefix=/usr/local/libxml2
# make
# make install
g.安裝 libxslt (可選安裝)
# cd /usr/local/src
# tar -zvxf libxslt-1.1.0.tar.g
# mkdir -p /usr/local/libxslt
# cd libxslt-1.1.0
# ./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2
# make
# make install
h.安裝apr
#cd /usr/local/src
#tar -zxvf apr-1.4.6.tar.gz
#cd apr-1.4.6
#./configure --prefix=/usr/local/apr-httpd
#make && make install
i.安裝apr-util
#cd /usr/local/src
#tar zxvf apr-util-1.4.1.tar.gz
#cd apr-util-1.4.1
#./configure --prefix=/usr/local/apr-util-httpd \
>--with-apr=/usr/local/apr-httpd
#make
#make install
安裝apache2
#cd /usr/local/src
#tar -zxvf httpd-2.4.2.tar.gz
#cd httpd-2.4.2
編譯過程如示:
#make
#make install
啟動Apache伺服器,並查連接埠是否開啟,啟動Apache伺服器的命令列如下:
#/usr/local/apache2/bin/apachectl start
查看連接埠命令列如下:
#netstat -tnl|grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LIST
測試安裝結果,開啟瀏覽器,在地址欄中輸入URL為:http://your IP
如果瀏覽器中出現It works!則表明Apache伺服器可以使用。
每種伺服器軟體都有必要製成開機時自動啟動,Apache伺服器開機自動啟動,只要在“/etc/rc.d/rc.local”檔案,加上Apache伺服器的啟動命令即可。可以直接開啟“/etc/rc.d/rc.local”檔案,在最後一行寫入Apache啟動命令,也可以用echo命令追加進去,如下命令列示:
#echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local
啟動apache過程中,如果出現如所示的錯誤:
修改/usr/local/apache2/conf/httpd.conf
找到#ServerName www.example.com:80在其下面添加一條
ServerName yourIP:80即可!
安裝PHP
# cd /usr/local/src
# tar -zvxf php-5.4.3.tar.gz
# mkdir -p /usr/local/php
# cd
php-5.4.3
# ./configure --prefix=/usr/local/php \
> --with-config-file-path=/usr/local/php \
> --with-apxs2=/usr/local/apache2/bin/apxs \
> --with-gd=/usr/local/gd2 \
> --with-jpeg-dir=/usr/local/jpeg8 \
> --with-zlib-dir=/usr/local/zlib \
> --with-png-dir=/usr/local/libpng \
> -with-freetype-dir=/usr/local/freetype -\
> --with-curl=/usr/local/curl \
> --with-xsl=/usr/local/libxslt \
> --enable-trace-vars \
> --enable-mbstring=all \
> --enable-soap
#make
#make install
安裝完成後,需要建立PHP設定檔。在使用configure命令安裝配置時使用“--with-config-file-path=/usr/local/php/etc/”選項,指定了設定檔的位置。將源碼包下面的php.ini-development 檔案複製到/usr/local/php/etc/中,並改名為php.ini即可。如下示:
#cp php.ini-development /usr/local/php/php.ini
安裝PHP的過程中可能會出現如下錯誤
make: *** [ext/gd/gd.lo] error
解決方案:
vi /include/gd_io.h
gdIOCtx結構中增加void *data;
格式如下
typedef struct gdIOCtx
{
int (*getC) (struct gdIOCtx *);
int (*getBuf) (struct gdIOCtx *, void *, int);
void (*putC) (struct gdIOCtx *, int);
int (*putBuf) (struct gdIOCtx *, const void *, int);
/* seek must return 1 on SUCCESS, 0 on FAILURE. Unlike fseek! */
int (*seek) (struct gdIOCtx *, const int);
long (*tell) (struct gdIOCtx *);
我的GD安裝在/usr/local/gd2目錄下,所以是#vi /usr/local/gd2/include/gd_io.h
然後重新編譯安裝即可。
整合Apache與PHP,上面編譯之前,我們使用configure命令安裝配置時,使用--with-apxs2=/usr/local/apache2/bin/apxs選項以使Apache 2將PHP作為功能模組使用。但我們還要修改Apahce設定檔,添加PHP的支援,告訴Apache將哪些尾碼作為PHP解析。例如,讓Apache把.php或.phtml尾碼名解析為PHP.使用vi開啟Apache的設定檔/etc/httpd/httpd.conf,找到AddType application/x-gzip .gz .tgz指令選項,並在其下方添加一條指令AddType application/x-httpd-php .php .phtml。也可以將任何尾碼的檔案解析為PHP,只要在添加的語句中加入並用空格分開,這裡以多添加一個.phtml來樣本,如下示:
# If the AddEncoding directives above are commented-out, then you
# probably should define those extensions to indicate media types:
#
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php .phtml
修改完成後必須重啟Apache伺服器,才能重新載入設定檔使修改生效。
修改完成後必須重啟Apache伺服器,才能重新載入設定檔使修改生效。
#/usr/local/apache2/bin/apachectl stop
#/usr/local/apache242/bin/apachectl start
安裝Nagios
#建立帳號
[root@Nagios src]# useradd nagios
[root@Nagios src]# passwd nagios
#建立一個使用者組名為 nagcmd 用於從 Web 介面執行外部命令。
[root@Nagios src]# groupadd nagcmd
#添加 nagios 和 apache 使用者到該組
[root@Nagios src]# usermod -a -G nagcmd nagios
[root@Nagios src]# usermod -a -G nagcmd daemon
#daemon為運行apache的帳戶
[root@Nagios src]# tar zxvf nagios-3.4.3.tar.gz
[root@Nagios src]# cd nagios-3.4.3
[root@Nagios nagios-3.4.3]# ./configure --with-command-group=nagcmd \
>--with-nagios-user=nagios \
>--with-nagios-group=nagios \
> –with-gd-lib=/usr/local/gd2/lib/ \
> –with-gd-inc=/usr/local/gd2/include/
[root@Nagios nagios-3.4.3]# make all
# 使用make install來安裝主程式,CGI和HTML檔案
[root@Nagios nagios-3.4.3]# make install
# 使用make install-init在/etc/rc.d/init.d安裝啟動指令碼
[root@Nagios nagios-3.4.3]# make install-init
# 使用make install-commandmode來配置目錄許可權
[root@Nagios nagios-3.4.3]# make install-commandmode
# 使用make install-cofig來安裝樣本設定檔,安裝的路徑是/usr/local/nagios/etc.
[root@Nagios nagios-3.4.3]# make install-config
#產生 apache 設定檔
[root@Nagios nagios-3.2.3]# make install-webconf
這一步其實就是將Nagios源碼包中sample-config/目錄下httpd.conf中的內容,追加到/usr/local/apache2/conf/httpd.conf中,用上面的方法有時候追加不進去,建議用下面手動的方法
[root@Nagios nagios]# cat sample-config/httpd.conf >> /usr/local/apache2/conf/httpd.conf
#為 apache 建立一個登陸使用者,注意使用者名稱是 nagiosadmin,該使用者名稱是在 cgi.cfg 設定的預設用
戶名,關於 CGI 許可權的設定。
注意:第一次添加使用者用-c 選項,以後再添加千萬別在用這個選項了,會覆蓋以前的所有使用者。
[root@Nagios nagios-3.4.3]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
添加開機自動啟動
為了讓 Nagios 和 Apache 可以開機自動啟動,我們把 Nagios 和 Apache 添加到啟動管理程式中。
[root@Nagios ~]# chkconfig --add nagios
[root@Nagios ~]# chkconfig --level 35 nagios on
安裝 Nagios外掛程式nagios-plugins
在啟動 Nagios 之前,我們還需要安裝的是 Nagios 的 Plugins,這個包裡麵包含了很多 Nagios
用來執行檢測的命令和指令碼,是 Nagios 必須的軟體包。
[root@Nagios ~]# cd /usr/local/src
[root@Nagios src]# tar zxvf nagios-plugins-1.4.16.tar.gz
[root@Nagios src]# cd nagios-plugins-1.4.16
[root@Nagios nagios-plugins-1.4.16]# ./configure --prefix=/usr/local/nagios
--with-nagios-user=nagios --with-nagios-group=nagios
[root@Nagios nagios-plugins-1.4.16]# make && make install
啟動Nagios
如果在安裝過程中,沒有出現錯誤,我們就可以正常啟動 Nagios 和 Apache 了,如果出現了錯
誤,請根據錯誤提示,檢測安裝,一般錯誤時由於依賴的庫檔案沒有安裝。
[root@Nagios ~]# /etc/init.d/nagios start
Starting nagios: done.
接著可以使用 http://Nagios 伺服器 IP/nagios/
並輸入你設定的帳號 nagiosadmin 和密碼登陸 Nagios,Nagios 會預設添加原生監控.如所示:
在登陸的過程中,可能會報 You don’t have permission to access /nagios/ on this server 的錯誤,Google和百度了一下,結果好多說是PHP未裝,yum -install php 即可解決問題,其實真正的解決方案如下所示:
首先當然是到/usr/local/nagios/var下查看nagios.log了,內容裡面應該有錯誤的日誌會顯示php頁面無法被apache解析
解決方案:
在apache的設定檔httpd.conf修改
DirectoryIndex index.html修改成 DirectoryIndex index.php index.html 即可。有的PHP版本裡可能還需加入LoadModule php5_module modules/libphp5.so AddType application/x-httpd-php .php .phtml AddType applicatoin/x-httpd-php-source .phps 最後兩行,我們前面已經加過,第一行php5.4的版本不需要加。 至此,Nagios的安裝工作就完成了!