CentOS7安裝nagios並配置出圖詳解


目錄

開始之前

系統環境

監控內容

所需軟件包

Centos7重要變化

配置開發環境

同步時間

關閉Selinux

使用CRT上傳軟件包

安裝郵件服務

監控主機安裝

常用到的命令

安裝nagios所需要的運行環境

增加用戶

安裝nagios

配置權限

安裝插件

安裝nrpe

遠程主機安裝

常用到的命令

配置運行環境

安裝nagios-plugin

安裝nrpe

啟動nrpe.

監控主機安裝PNP

配置開發環境

安裝pnp4nagios (版本號為0.6

配置pnp4nagios

圖表展示

問題集合

在首次配置了nagios監控端后,在瀏覽器輸入地址后連接不上

啟動nrpe后卻不能互相通信

安裝pnp4nagios后出現The requested URL /pnp4nagios/graph was not found on this server.

出現“CHECK_NRPE: Error - Could not complete SSL handshake.”的錯誤

執行 ./configure時報錯:configure error cannot find ssl headers

解壓./configure 后,在nagios-4.0.8進行make all報錯

安裝nrpe時執行.configure出錯

錯誤:perfdata directory "/usr/local/pnp4nagios/var/perfdata/" is empty

 

開始之前

聲明:本文中的命令都經過了測試,但難免有所紕漏,如果你發現命令粘貼后運行有錯,可能是由於符號的格式(尤其是破折號)導致的,此時你應該自己手打一遍命令。對於本文中發現的錯誤和建議,請發送郵件給我:

kylinlingh@foxmail.com,請在郵件主題里注明“關於nagios的問題(建議)”。

系統環境

一共3台機器,全都按照CentOS7最小化模式安裝系統

系統版本號

[root@localhost ~]# cat  /etc/redhat-release

CentOS Linux release 7.0.1406 (Core)

監控主機

(一台)

IP地址:192.168.1.204

主機名稱:nagios_server_204

遠程主機

(兩台)

IP地址:192.168.1.112

主機名稱:nagios_slave_112

 

IP地址:192.168.1.113

主機名稱:nagios_slave_113

分區情況

安裝時使用默認分區(使用 df 命令來查看)

[root@localhost ~]# df -h

 

監控內容

要監控的服務

監控命令

cpu負載

(check_linux_state.pl -C)

當前用戶登錄數量

(check_users)

磁盤使用情況

(check_disk)

總進程數

(check_procs)

內存使用情況

(check_linux_stats.pl -M)

負載均衡

(check_load)

磁盤IO

(check_linux_stats.pl -I)

網絡流量

(check_linux_stats.pl -N)

打開的文件數量

(check_linux_stats.pl -F)

socket連接數

(check_linux_stats.pl -S)

進程使用的內存和CPU

(check_linux_stats.pl -T)

指定的網站是否可連接

(check_http)

系統在線時長

(check_uptime)

 

所需軟件包

監控主機

軟件包

下載地址

nagios-4.0.8.tar.gz

請到我的github地址里下載:

https://github.com/Kylinlin/install_nagios_automatically/tree/master/nagios_tools_for_server

注明:我的github項目install_nagios_automatically是一個一鍵自動化安裝nagios的項目(能運行,但還在完善中)

nagios-plugins-2.0.3.tar.gz

nrpe-2.15.tar.gz

pnp4nagios-0.6.25.tar.gz

Sys-Statistics-Linux-0.66.tar.gz

libxml2-2.7.1.tar.gz

 

遠程主機

軟件包

下載地址

nagios-plugins-2.0.3.tar.gz

請到我的github地址里下載:

https://github.com/Kylinlin/install_nagios_automatically/tree/master/nagios_tools_for_client

nrpe-2.15.tar.gz

Sys-Statistics-Linux-0.66.tar.gz

 

Centos7重要變化

Centos7相比較以前的Centos有一些涉及到常用命令的變化,如果不事先了解,會在使用命令的時候造成巨大的困擾

  •   Centos7默認沒有ifconfignetstat兩個命令了,ip addr命令代替了ifconfig,只要安裝上net-tools包就可以繼續使用ifconfignetstat兩個命令了
  •   systemctl命令的出現(systemctl可以看作是servicechkconfig的組合),雖然仍然可以使用以前的命令,但是會重定向到新的命令中,下面以http服務為例

job

以前的系統

CentOS7

服務開機啟動

chkconfig --level 3 httpd on

systemctl enable httpd.service

服務不開機啟動

chkconfig --level 3 httpd off

systemctl disable httpd

服務狀態

service httpd status

systemctl status httpd

所有服務的啟動狀態

chkconfig --list

systemctl

啟動服務

service httpd start

systemctl start httpd.service

停止服務

service httpd stop

systemctl stop httpd.service

重啟服務

service httpd restart

systemctl restart httpd.service


 

配置開發環境

同步時間

把監控系統里的所有機器都同步一次網絡時間(非常重要)

[root@localhost ~]timedatectl  #該命令用來檢查當前時間和時區

 

如果發現所有機器的時區不一致,此時就要使用命令

[root@localhost ~]timedatectl list-timezones  #該命令列出了所有的時區

[root@localhost ~]timedatectl set-timezone Asia/Shanghai #該命令把時區設置為上海

 

ntpdate time.nist.gov #該命令同步網絡當前的時間

如果提示沒有ntpdate命令,則安裝ntp,並且配置系統自動更新時間

[root@localhost ~]# yum install ntp -y

[root@localhost ~]# /usr/sbin/ntpdate time.nist.gov

[root@localhost ~]# echo '#time sync'>>/var/spool/cron/root

[root@localhost ~]# echo '*/10**** /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1'>>/var/spool/cron/root

 

關閉Selinux

不關閉selinux可能會導致一些難以察覺的錯誤,為了保險起見,首先關閉selinux

[root@localhost ~]vi /etc/selinux/config

 

 111

重啟機器

檢查selinux是否關閉:

[root@localhost ~]getenforce #如果顯示enforcing則沒有關閉

 

使用SecureCRT上傳軟件包

我在這里使用的SSH連接工具是SecureCRT7.2,通過這個工具上傳文件到Linux的步驟如下:

1.        首先在Linux中安裝傳送文件命令:

[root@localhost ~] yum install lrzsz -y

2.        然后在Linux中跳轉到/usr/local/src目錄下

[root@localhost ~] cd /usr/local/src

3.        運行CRT的傳送文件命令

 

 

 1

2

安裝郵件服務

因為郵件報警服務需要安裝mail功能

[root@localhost ~]yum install –y mailx

[root@localhost ~]yum install –y sendmail

 

[root@localhost ~]systemctl restart sendmail.service

[root@localhost ~]mail –s Test xxx@xxx.com(你的郵箱地址)

#此時進入輸入模式,輸入完郵件內容后按ctrl + d退出並且發送


 

監控主機安裝

常用到的命令

 

命令內容

命令格式

檢查nagios的配置文件是否有錯

/etc/init.d/nagios checkconfig

或者

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

啟動nagios

systemctl start nagios.service

或者

/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

修改了nagios的配置文件后重新加載配置文件

/etc/init.d/nagios reload

安裝nagios所需要的運行環境

[root@localhost ~]# yum install gcc glibc glibc-common -y

[root@localhost ~]# yum install php php-gd perl -y

[root@localhost ~]# yum install httpd gd gd-devel openssl openssl-devel -y

[root@localhost ~]# systemctl enable httpd.service #設置CentOS開機啟動服務

 

使用CRT上傳所需的軟件包(軟件包在這里

增加用戶

[root@localhost ~]useradd -m nagios                               

並將nagios以及apache用戶加入到nagcmd組中

[root@localhost ~]groupadd nagcmd                                  

[root@localhost ~]usermod -G nagcmd nagios                         

[root@localhost ~]usermod -a -G nagcmd apache  #apace用戶添加到與nagios的一個組(apache用戶會在安裝apache時自動創建)

 

安裝nagios

[root@localhost src]# tar -zxvf nagios-4.0.8.tar.gz

[root@localhost src]# cd nagios-4.0.8

 

首先初始化和建立編譯的環境

[root@localhost nagios-4.0.8]#./configure --with-command-group=nagcmd

 

如果能看到下面的基本配置信息則說明初始的環境已經成功配置完成:

 

之后按照提示執行命令來進行編譯:

[root@localhost nagios-4.0.8]# make all                                

[root@localhost nagios-4.0.8]# make install                           

[root@localhost nagios-4.0.8]# make install-init                      

[root@localhost nagios-4.0.8]# make install-config                   

[root@localhost nagios-4.0.8]# make install-commandmode              

[root@localhost nagios-4.0.8]# make install-webconf

 

 

安裝完成之后,在/usr/local/nagios目錄下如果能夠看到這些目錄:

 

就表示Naigos安裝成功了。

 

Nagios的樣例配置文件默認安裝在/usr/local/nagios/etc目錄下,配置這些文件就可以使得nagios按要求運行(詳細的配置過程請參考我的另一篇博文:nagios服務配置詳解)

 

此時應該為email指定您想用來接收nagios警告信息的郵件地址,默認是本機的nagios用戶:

[root@localhost]# vi /usr/local/nagios/etc/objects/contacts.cfg

email        nagios@localhost       #把描紅的地方修改為你的email地址

 

創建一個登錄nagios web程序的用戶(用戶名配置為nagiosadmin則不需要配置權限,設置為其他用戶名就要配置權限),我在這里把用戶名設置為kylinlin,密碼為123456,這個用戶帳號在以后通過web登錄nagios認證時所用:

[root@localhost ~]# htpasswd -bc /usr/local/nagios/etc/htpasswd.users kylinlin 123456 #把描紅的地方修改為你的用戶名和密碼

 

配置權限

如果在上面創建登陸nagios web程序的用戶名不是nagiosadmin(我在上面已經設置為kylinlin),在登陸nagiosweb界面后(此時我們還不能登錄,但如果你忽略了這一小節的配置,那么在后面的登陸中就會看到如下的界面),點擊HostsServices會顯示圖片紅色的錯誤提示

113

 

是因為nagios默認把全部的權限給nagiosadmin,所以可以通過修改cgi.cfg文件賦予kylinlin權限,切換到/usr/local/nagios/etc目錄下

[root@localhost etc]# sed -i 's#nagiosadmin#kylinlin#g' cgi.cfg #這條命令將nagiosadmin用戶名替換為kylinlin

[root@localhost etc]# grep kylinlin cgi.cfg  #這條命令檢查是否修改成功

 

 4

以上過程配置結束以后需要重新啟動httpd

[root@localhost etc]# systemctl restart  httpd.service

 

檢查其主配置文件的語法是否正確:

[root@localhost etc]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

 

或者使用下面這個命令來檢查語法

[root@localhost etc]# /etc/init.d/nagios checkconfig

6

顯示錯誤數為0才正確

配置成功

安裝插件

剛才已經提到Nagios主程序只是一個控制中心,而能夠起到服務監測和系統監測等功能的是眾多Nagios的插件,沒有插件的Nagios系統其實只是一個空殼。因此在安裝了Nagios平台之后我們還需要安裝插件。

 

Nagios插件同樣是在其官方網站下載,目前版本是1.4.15。我將下載的源碼包放到/usr/local目錄下,按照下面的步驟進行解壓,編譯和安裝:

[root@localhost src]# tar zxf nagios-plugins-2.0.3.tar.gz

[root@localhost src]# cd nagios-plugins-2.0.3

 

[root@localhost nagios-plugins-2.0.3]# ./configure --with-nagios-user=nagios --with-nagios-group=nagios

[root@localhost nagios-plugins-2.0.3]#make

[root@localhost nagios-plugins-2.0.3]#make install    

 

通過下面的命令查看安裝了多少個插件

[root@localhost nagios-plugins-2.0.3]#ls /usr/local/nagios/libexec/|wc -l

然后把Nagios加入到服務列表中以使之在系統啟動時自動啟動:

[root@localhost nagios-plugins-2.0.3]# chkconfig --add nagios                                              

[root@localhost nagios-plugins-2.0.3]# chkconfig nagios on                                              

執行下面的命令來驗證Nagios的樣例配置文件:

[root@localhost ~]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg            

 6

 

 

在防火牆中打開http端口

firewall-cmd --add-service=http (即時打開)

firewall-cmd --permanent --add-service=http(寫入配置文件)

firewall-cmd --reload (重啟防火牆)

 

啟動nagios服務

[root@localhost ~]# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

 

之后可以在瀏覽器上訪問鏈接http://192.168.1.204/nagios,輸入登陸名和密碼,如果能夠正常看到頁面,證明主程序和插件都安裝和配置成功(如上圖所示)!點擊“Service”的鏈接來查看你本機的監視詳情。此時可能需要給點時間讓Nagios來檢測你機器上所依賴的服務。

 

 7

 

 

8

注意上圖中出現了一個處於WARNING狀態的服務,所以我配置過的郵箱里已經收到了報警信息,如果你沒有收到報警信息,此時檢查你是否已經配置了接收報警信息的郵箱,同時檢查是否被當做垃圾郵件而屏蔽了。

安裝nrpe

[root@localhost src]# tar -zxf nrpe-2.15.tar.gz

[root@localhost src]# cd nrpe-2.15

[root@localhost nrpe-2.15]# ./configure --with-nrpe-user=nagios \

     --with-nrpe-group=nagios \

     --with-nagios-user=nagios \

     --with-nagios-group=nagios \

     --enable-command-args \

     --enable-ssl

9

[root@localhost nrpe-2.15]# make all

[root@localhost nrpe-2.15]# make install-plugin

[root@localhost nrpe-2.15]# make install-daemon

[root@localhost nrpe-2.15]# make install-daemon-config

檢查一下/usr/local/nagios/libexec目錄下是否已經安裝了check_nrpe插件

[root@localhost libexec]# ls | grep check_nrpe

check_nrpe

至此,監控主機已經完成了nagios的安裝

遠程主機安裝

常用到的命令

命令內容

命令格式

關閉nrpe

pkill nrpe

啟動nrpe

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

啟動nrpe(只適用於有編寫nrpe腳本的情況)

systemctl start nrpe.service

檢查nrpe是否啟動

netstat -lnt

(通過檢查5666端口是否打開)

 

配置運行環境

首先關閉防火牆:

[root@localhost ~]# systemctl stop firewalld.service

 

[root@localhost ~]# yum install gcc glibc glibc-common -y

[root@localhost ~]# yum install gd gd-devel openssl openssl-devel -y

[root@localhost ~]# yum install php php-gd perl net-tools -y

 

使用CRT傳所需的軟件包(軟件包在這里

安裝nagios-plugin

1)先添加nagios用戶

[root@localhost ~]# useradd -s /sbin/nologin nagios #禁止nagios用戶登錄

 

2NRPE依賴於nagios-plugins,因此,需要先安裝之

進入到/usr/local/src目錄下開始執行下面的命令

[root@localhost src]# tar zxf nagios-plugins-2.0.3.tar.gz

[root@localhost src]# cd nagios-plugins-2.0.3

[root@localhost nagios-plugins-2.0.3]# ./configure --with-nagios-user=nagios --with-nagios-group=nagios

[root@localhost nagios-plugins-2.0.3]# make all

[root@localhost nagios-plugins-2.0.3]# make install

 

安裝nrpe

進入到/usr/local/src目錄下開始執行下面的命令

[root@localhost src]# tar -zxf nrpe-2.15.tar.gz

[root@localhost src]# cd nrpe-2.15

 

[root@localhost nrpe-2.15]# ./configure --with-nrpe-user=nagios \

 --with-nrpe-group=nagios \

 --with-nagios-user=nagios \

 --with-nagios-group=nagios \

 --enable-command-args \

 --enable-ssl

9

 

[root@localhost nrpe-2.15]# make all

[root@localhost nrpe-2.15]# make install-plugin

[root@localhost nrpe-2.15]# make install-daemon

[root@localhost nrpe-2.15]# make install-daemon-config

 

[root@localhost nrpe-2.15]# ls /usr/local/nagios/libexec/    #如果安裝成功里面有好多NRPE的插件

114

 

注意是否有check_nrpe這個插件(沒有的話就說明了nrpe沒有安裝成功)

啟動nrpe

方法一:用命令啟動nrpe

[root@localhost ~]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

#這條命令啟動nrpe

 

如果要重啟nrpe,先執行命令:

[root@localhost ~]# pkill nrpe  #關閉nrpe

[root@localhost ~]# netstat -lnt  #這條命令用來檢查端口,看5666端口是否已經被關閉

[root@localhost ~]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

#重啟nrpe進程

 

 

方法二:創建啟動nrpe的腳本

為了便於NRPE服務的啟動,可以將如下內容定義為/etc/init.d/nrpe腳本,在/etc/init.d目錄下新建一個名為nrpe的文件,把下面內容復制進去

#!/bin/bash

# chkconfig: 2345 88 12

# description: NRPE DAEMON

 

NRPE=/usr/local/nagios/bin/nrpe

NRPECONF=/usr/local/nagios/etc/nrpe.cfg

 

case "$1" in

       start)

              echo -n "Starting NRPE daemon..."

              $NRPE -c $NRPECONF -d

              echo " done."

              ;;

       stop)

              echo -n "Stopping NRPE daemon..."

              pkill -u nagios nrpe

              echo " done."

       ;;

       restart)

              $0 stop

              sleep 2

              $0 start

              ;;

       *)

              echo "Usage: $0 start|stop|restart"

              ;;

       esac

exit 0

然后添加運行權限:

[root@localhost ~]# chmod +x /etc/init.d/nrpe

 

啟動nrpe

[root@localhost ~]# systemctl start nrpe.service

 

檢查5666端口是否成功啟動

[root@localhost ~]# netstat -tnlp

 10

 

5666端口已經成功啟動

 

/usr/local/nagios/etc/nrpe.cfg文件中添加監控主機的ip地址

[root@localhost etc]# vi nrpe.cfg  +81

allowed_hosts=127.0.0.1 修改為 allowed_hosts=127.0.0.1,192.168.1.204(這是監控主機的ip地址,本機的ip地址為192.168.1.112

 

然后重啟nrpe

[root@localhost ~]# pkill nrpe

[root@localhost ~]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

 

在監控主機上(ip地址為192.168.1.204)輸入下面的命令來檢查兩個機器之間是否成功通信

[root@localhost ~]# cd /usr/local/nagios/libexec/

[root@localhost libexec]# ./check_nrpe -H 192.168.1.113

NRPE v2.15  #通信成功

 

至此,遠程主機安裝nagios完畢

監控主機安裝PNP   

重要提醒:看清楚你要安裝的pnp4nagios的版本,因為0.40.6的配置方式是不一致的

配置開發環境

[root@localhost ~]# yum install rrdtool librrds-perl -y

安裝pnp4nagios (版本號為0.6

進入到/usr/local/src目錄下開始執行下面的命令

[root@localhost src]# tar zxf pnp4nagios-0.6.25.tar.gz

[root@localhost src]# cd pnp4nagios-0.6.25

[root@localhost pnp4nagios-0.6.25]# ./configure --with-nagios-user=nagios --with-nagios-group=nagios

115

[root@localhost pnp4nagios-0.6.25]# make all

[root@localhost pnp4nagios-0.6.25]# make install

[root@localhost pnp4nagios-0.6.25]# make install-webconf

[root@localhost pnp4nagios-0.6.25]# make install-config

[root@localhost pnp4nagios-0.6.25]# make install-init

[root@localhost pnp4nagios-0.6.25]# cd ./sample-config

[root@localhost pnp4nagios-0.6.25]# make install-webconf

配置pnp4nagios

[root@localhost pnp4nagios-0.6.25]# cd /usr/local/pnp4nagios/etc/

[root@localhost etc]# mv misccommands.cfg-sample misccommands.cfg

[root@localhost etc]# mv rra.cfg-sample rra.cfg

[root@localhost etc]# mv nagios.cfg-sample nagios.cfg

[root@localhost etc]# cd pages/

[root@localhost pages]# mv web_traffic.cfg-sample web_traffic.cfg

[root@localhost pages]# cd ../check_commands/

[root@localhost check_commands]# mv check_all_local_disks.cfg-sample check_all_local_disks.cfg

[root@localhost check_commands]# mv check_nrpe.cfg-sample check_nrpe.cfg

[root@localhost check_commands]# mv check_nwstat.cfg-sample check_nwstat.cfg

[root@localhost check_commands]# /etc/init.d/npcd start

[root@localhost check_commands]# chkconfig npcd on

 

配置Nagios數據輸出接口(BULK模式運行)詳情參考官網https://docs.pnp4nagios.org/pnp-0.6/config#bulk_mode

[root@localhost ~]# vi /usr/local/nagios/etc/nagios.cfg

process_performance_data=1 #默認為0,修改為1

並在該文件中添加下面的內容

#

# service performance data

#

service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata

service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$

service_perfdata_file_mode=a

service_perfdata_file_processing_interval=15

service_perfdata_file_processing_command=process-service-perfdata-file

#

# host performance data starting with Nagios 3.0

#

host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata

host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$

host_perfdata_file_mode=a

host_perfdata_file_processing_interval=15

host_perfdata_file_processing_command=process-host-perfdata-file

 

配置command.cfg

[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg

在該文件中添加下面的內容

 

define command{

       command_name    process-service-perfdata-file

       command_line    /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/service-perfdata

}

 

define command{

       command_name    process-host-perfdata-file

       command_line    /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/host-perfdata

}

 

在模板配置文件中添加圖表圖標模板:

[root@localhost ~]# vi /usr/local/nagios/etc/objects/templates.cfg

 

在該文件中添加下面的內容

define host {

   name       host-pnp

   action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_

   register   0

}

 

define service {

  name       service-pnp

  action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$

   register   0

}

 

在監控主機和服務中調用圖表模板(在主機和服務后面添加新的模板):

[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg

按下面的內容修改(不是添加)該文件

define host{

        use                     linux-server,host-pnp                          

        host_name               localhost

        alias                   localhost

        address                 127.0.0.1

        }

define service{

        use                            local-service,service-pnp

        host_name                       localhost

        service_description             PING

        check_command           check_ping!100.0,20%!500.0,60%

        }

define service{

        use                            local-service,service-pnp

        host_name                       localhost

        service_description             Root Partition

        check_command           check_local_disk!20%!10%!/

        }

 

圖表展示

重啟nagiosapache

[root@localhost ~]# systemctl restart nagios.service

[root@localhost ~]# systemctl restart httpd.service

訪問nagios界面即可看到圖表小圖標:
11
點擊圖標會顯示pnp4nagios測試頁面:

13

全是綠色代表配置正常,如果不是全綠,要逐個解決錯誤。然后移除或修改install.php
文件:

[root@localhost ~]# rm -rf /usr/local/pnp4nagios/share/install.php

 

再次點擊圖標就會顯示當前監控服務由pnp4nagios生成的圖表了:

 14

至此,nagios監控主機的出圖配置已經全部完成


 

問題集合

在首次配置了nagios監控端后,在瀏覽器輸入地址后連接不上

可能是防火牆屏蔽了80端口,此時打開防火牆的80端口即可:

firewall-cmd --add-service=http (即時打開)

firewall-cmd --permanent --add-service=http(寫入配置文件)

firewall-cmd --reload (重啟防火牆)

 

如果出現如下錯誤:

You don't have permission to access /nagios/ on this server.nagios

此時要安裝php

yum install php –y

 

然后重啟httpd

systemctl restart httpd.service

 

啟動nrpe后卻不能互相通信

首先啟動nrpe進程

systemctl restart nrped.service

 

此時可以檢查nrpe綁定的5666端口是否被防火牆屏蔽了:

netstat -tnpl (觀察是否有下面的兩個服務之一)

 

 

如果5666端口沒有打開就打開防火牆的5666端口:

firewall-cmd --zone=public --add-port=5666/tcp --permanent (添加5666端口)

firewall-cmd --reload (重啟防火牆)

 

或者直接關閉防火牆

[root@localhost ~]# systemctl stop firewalld.service

 

安裝pnp4nagios后出現The requested URL /pnp4nagios/graph was not found on this server.

原因,當你在pnp4nagios安裝的時候執行了make install-webconf,注意它生成了一個apache的配置文件。

你把這個文件:/etc/httpd/conf.d/pnp4nagios.conf 中的所有內容全部添加到apachehttpd.conf文件最后,再重新啟動nagiosapache就應該可以啦。

 

跳轉到/usr/local/src/pnp4nagios-0.6.25目錄下執行命令

[root@nagios-test pnp4nagios-0.6.25]# make install-webconf

[root@nagios-test pnp4nagios-0.6.25]# cd ./sample-config && make install-webconf

 

 

[root@nagios-test pnp4nagios-0.6.25]# service nagios restart

[root@nagios-test pnp4nagios-0.6.25]# systemctl restart httpd.service

出現“CHECK_NRPE: Error - Could not complete SSL handshake.”的錯誤

先安裝開發環境:

yum install openssl openssl-devel

 

檢查nagios監控端的允許地址和目標端的nrpe允許地址配置正確。比如被監控端的配置(命令:vi  /usr/local/nagios/etc/nrpe.cfg):

 

allowed_hosts=127.0.0.1,192.168.1.112 (兩個地址之間只有一個逗號,不能有空格)

 

執行 ./configure時報錯:configure error cannot find ssl headers

原因是缺少openssl-devel包,

yum -y install openssl-devel

 

解壓./configure 后,在nagios-4.0.8進行make all報錯

報出如下錯誤:

cd ./base && make

make[1]:Entering directory '/tmp/nagios/base'

make[1]:*** No rule to make target '/include/locations.h', needed by 'broker.o'. Stop.

make[1]:Leaving directory '/tmp/nagios/base'

make:***[all]Error 2

 

安裝好perl就不出這個問題了!命令如下:

yum -y install perl

      

注意,install perl之后需要重新./configure一下,要不然還是提示這個錯誤

 

安裝nrpe時執行.configure出錯

在監控主機上安裝check-nrpe插件時(實際上就是nrpe的整個安裝)

./configure 提示報錯:

checking for SSL headers... configure: error: Cannot find ssl headers

 

如果這時運行命令 make all,則會報錯:make: *** 沒有規則可以創建目標“all”停止。

 

解決辦法:

yum -y install openssl-devel

記得:裝完openssl-devel之后,要執行 ./configure

然后再make all

make install-plugin

 

錯誤:perfdata directory "/usr/local/pnp4nagios/var/perfdata/" is empty.

查閱了很多資料,最終根據官網http://docs.pnp4nagios.org/pnp-0.6/config上的Bulk 模式重新配置了PNP的相關文件(可以參照我上文的內容進行)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM