目錄
開始之前
系統環境
監控內容
使用CRT上傳軟件包
安裝郵件服務
常用到的命令
啟動nrpe
配置開發環境
在首次配置了nagios監控端后,在瀏覽器輸入地址后連接不上
安裝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報錯
錯誤: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默認沒有ifconfig和netstat兩個命令了,ip addr命令代替了ifconfig,只要安裝上net-tools包就可以繼續使用ifconfig和netstat兩個命令了
- systemctl命令的出現(systemctl可以看作是service和chkconfig的組合),雖然仍然可以使用以前的命令,但是會重定向到新的命令中,下面以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
重啟機器
檢查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的傳送文件命令
安裝郵件服務
因為郵件報警服務需要安裝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),在登陸nagios的web界面后(此時我們還不能登錄,但如果你忽略了這一小節的配置,那么在后面的登陸中就會看到如下的界面),點擊Hosts或Services會顯示圖片紅色的錯誤提示
|
是因為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 #這條命令檢查是否修改成功
以上過程配置結束以后需要重新啟動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
顯示錯誤數為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
在防火牆中打開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來檢測你機器上所依賴的服務。
注意上圖中出現了一個處於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
[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用戶登錄
2)NRPE依賴於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
[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的插件
注意是否有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
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.4和0.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
[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%!/ } … |
圖表展示
重啟nagios和apache
[root@localhost ~]# systemctl restart nagios.service
[root@localhost ~]# systemctl restart httpd.service
訪問nagios界面即可看到圖表小圖標:
點擊圖標會顯示pnp4nagios測試頁面:
全是綠色代表配置正常,如果不是全綠,要逐個解決錯誤。然后移除或修改install.php文件:
[root@localhost ~]# rm -rf /usr/local/pnp4nagios/share/install.php
再次點擊圖標就會顯示當前監控服務由pnp4nagios生成的圖表了:
至此,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 中的所有內容全部添加到apache的httpd.conf文件最后,再重新啟動nagios和apache就應該可以啦。
跳轉到/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的相關文件(可以參照我上文的內容進行)