本文部分內容來自:http://www.ilanni.com/和http://blog.sina.com.cn/s/blog_4bf738fd0101mut6.html 歡迎轉載。
一、安裝前的準備
1.1安裝包的下載
服務端Nagios:nagios-4.1.1.tar.gz
https://www.nagios.org/downloads/nagios-core/thanks/
客戶端NRPE: nrpe-2.15.tar.gz
https://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/
腳本插件:nagios-plugins-2.1.1.tar.gz
https://www.nagios.org/downloads/nagios-plugins/
Apache服務:Apache/2.2.15
使用本地yum源安裝
繪圖工具rrdtool:rrdtool-1.5.0-rc2.tar.gz
http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.5.0-rc2.tar.gz
圖形化工具pnp4nagios:pnp4nagios-0.6.25.tar.gz
http://jaist.dl.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.25.tar.gz
下載完畢後,我們把Nagios的相關軟件包通過sftp上傳到Linux服務器上。
1.2需編譯環境
yum install –y php gcc glibc glibc-commongd gd-devel perl-CPAN opensslopenssl-devel
注意:如果安裝不成功提示:Public key for php-cli-5.3.3-22.el6.x86_64.rpm isnot installed
則紅帽執行:rpm --import/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
centos執行:rpm --import/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
1.3關閉防火牆和selinux
二、Nagios安裝(僅服務端安裝)
2.1安裝步驟
添加用戶和組:nagios
useradd nagios
現在進入安裝的上傳路徑下/app,對需要安裝的包進行解壓。
tar zxvfnagios-plugins-2.1.1.tar.gz
tar zxvf nagios-4.1.1.tar.gz
tar zxvf nrpe-2.15.tar.gz
進入nagios-4.1.1進行編譯安裝
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
/usr/local/nagios表示nagios的安裝路徑
編譯完畢如下:
可以看到需要新建用戶nagios,系統中如果沒有的話。我們現在可以新建用戶。
繼續執行makeall,如下圖:
執行結果如下:
我們只需要按照上邊的命令執行即可,如下圖:
make install安裝nagios的相關程序文件。
makeinstall-init安裝nagios啓動的初始化腳本。
makeinstall-commandmode 安裝nagios的命令文件。
makeinstall-config安裝nagios的配置文件。
makeinstall-webconf安裝nagios的web配置文件。
爲 apache創建一個登陸用戶,注意用戶名是 nagiosadmin,該用戶名是在cgi.cfg設置的默認戶名。注意:第一次添加用戶用-c 選項,以後再添加千萬別在用這個選項了,會覆蓋以前的所有
htpasswd -c /usr/local/nagios/etc/htpasswd nagiosadmin
注意:如果apache是使用源碼安裝的話,我們在執行make install-webconf會報錯。我們只需要把sample-config/httpd.conf複製到/usr/local/apache2/conf/下,並重命名爲nagios.conf即可。在這apache是安裝到/usr/local/apache2下。如下:
cpsample-config/httpd.conf /usr/local/apache2/conf/nagios.conf
ll/usr/local/apache2/conf/
以上操作之後,我們還需要在/usr/local/apache/conf/httpd.conf文件中添加 Include conf/nagios.conf。
注意:include第一個字母大寫意。
爲了讓Nagios可以開機自動啓動,我們把 Nagios添加到啓動管理程序中。
以上是nagios的安裝步驟
三、Nagios-plugin安裝(服務端和客戶端都需要安裝)
下面進行nagios插件的安裝。進入nagios的插件目錄,如下圖:
編譯插件
./configure --prefix=/usr/lo cal/nagios --with-nagios-user=nagios--with-nagios-group=nagios
編譯結果如下:
編譯完畢,沒有報錯就可以進行安裝。
make&&makeinstall
安裝結果如下:
查看下安裝情況:
插件截圖:
以上是nagios-plugin插件的安裝。
四、Nrpe安裝(服務端和客戶端都需要安裝)
4.1 xinetd服務的確認
NREP是基於xinetd的服務,所以需要確認xinetd 服務是否有安裝
service xinetd status
安裝成功後啓動服務並驗證。
service xinetd start
4.2 nrpe安裝
進入nrpe-2.15解壓包的目錄/app/nrpe-2.15進行配置
./configure --enable-command-args
配置結果如下:
進行編譯:
make all
安裝NRPE插件check_nrpe,如下:
make install-plugin
安裝NRPE命令,如下:
make install-daemon
安裝NRPE配置文件,如下:
make install-daemon-config
安裝npre與xinetd服務關聯
make install-xinetd
以上是安裝步驟。
4.3 配置nrpe
[root@abiu243 xinetd.d]# pwd
/etc/xinetd.d
[[email protected]]# 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 ##注意修改爲no
only_from = 127.0.0.1 192.168.1.145
}
#注意:在only_from後面,客戶端上面配置文件添加服務端IP,反之服務端上面添加客戶端IP,中間以空格隔開
4.4 添加服務端口
[[email protected]]# vi /etc/services
#在文件末尾添加,如果不添加端口,nrpe將不能正常運行
nrpe 5666/tcp #nrpe
NREP是基於xinetd的服務,所以只要開啓xinetd 服務就行
五、WEB服務安裝(僅服務端)
直接用yum源安裝
yum install –y httpd
添加httpd服務開機自啓動
chkconfig httpd on
六、客戶端安裝注意事項
需要創建nagios用戶和組。
nrpe和nagios-plugin的安裝按照上面的安裝步驟進行安裝
七、監控添加主機配置
7.1 Nagios文件簡介
配置文件在安裝時放在了/usr/local/nagios/etc/目錄下。
[root@Nagios-Server~]# ls -l /usr/local/nagios/etc/
total 88
-rw-rw-r-- 1nagios nagios 11408 May 29 02:09 cgi.cfg #CGI 配置文件
-rw-r--r-- 1root root 22 May 29 02:13 htpasswd.users #Apache 驗證密碼文件
-rw-rw-r-- 1nagios nagios 43776 May 29 02:09 nagios.cfg #Nagios 主配置文件
drwxrwxr-x 2nagios nagios 4096 May 29 02:09objects #監控對象定義文件目錄
-rw-rw---- 1nagios nagios 1340 May 29 02:09resource.cfg #Nagios資源配置文件
217.41 上面資源配置統一放在monitor下面,根據之前IDC主機業務屬性,劃分數據庫、DMZ區web、測試區、WEB區、應用區、二期上線新增VLAN18、VLAN19、VLAN20三個區域,後期新上線的機器按VLAN 添加到各文件
commands.cfg #命令配置文件
contacts.cfg #聯繫人配置文件
timeperiods.cfg #時間週期配置文件
templates.cfg #模板配置文件
contactgroups.cfg #增加聯繫組定義文件
hosts.cfg #增加主機配置文件
hostgroups.cfg #增加主機組配置文件
services.cfg #增加服務配置文件
servicegroups.cfg #增加服務組配置文件
7.2下面以監控217.49 vsftpd服務爲例,介紹整個配置過程
7.2.1修改服務端與客戶端 /etc/xinetd.d/nrpe 文件
執行命令保證雙方通信正常
49配置:
41配置:
輸出NRPE版本號,表示通信正常
7.3、217.49 本地安裝並啓用VSFTP服務,修改/usr/local/nagios/etc/nrpe 添加監控條目
查看本地執行狀態
[root@idcrm-test1 etc]#/usr/local/nagios/libexec/check_ftp -H 192.168.217.49 -p 21
FTP OK - 0.004second response time on port 21 [220 (vsFTPd3.0.2)]|time=0.004202s;;;0.000000;10.000000
7.4、在217.41上面新增監控主機,217.49屬於測試區,相關資源都在測試區文件中配置,修改hosts.cfg 新增條目
7.4.1將217.49 加入測試區主機組,修改hostgroups.cfg
7.4.2 修改IDCRM-TESTING.cfg 資源文件,新增服務監控條目
這邊check_command check_nrpe!check_vsftp 中
check_vsftp 需要與客戶端本地配置的監控條目名字要一致,否則會有錯誤
7.4.3 添加check_vsftp 到資源服務組hostgroups.cfg
7.5將相關主機文件、資源等文件配置到 nagios.cfg 中 ,並重啓nagios
至此vsftp的相關配置完成,登陸前端查看狀態,紅色字體代表“緊急”,綠色代表“正常”***代表“告警”,如下圖
八、效果圖
九、接下來是圖形化的安裝(pnp4nagios+rrdtool)
pnp4nagios是一個基於php和perl語言的強大工具,它可以通過process_perfdata.pl腳本調用rrdtool對nagios的性能數據進行分析並繪製成相應的性能圖。所以在安裝pnp4nagios之前,我們必須先安裝php、perl、rrdtool.
9.1 rrdtool的安裝
rrdtool是RoundRobin Database Tool的縮寫。從功能上說,rrdtool可用於數據存儲+數據展示。著名的網絡流量繪圖軟件cacti和集羣監控系統Ganglia使用的都是rrdtool。
在數據存儲方面,rrdtool採用“RoundRobin”模式存儲數據,即環狀數據庫。注意:rrdtool數據庫文件後綴名爲“.rrd”。
在正式安裝rrdtool之前,我們還必須要安裝rrdtool編譯時,所需要的基礎庫。如下:
yum -y install gcc cairo-devel libxml2-devel pango-devel pangolibpng-devel freetype freetype-devel libart_lgpl-devel
基礎庫安裝完畢後,我們現在開始正式安裝rrdtool。
進入rrdtool的解壓目錄
配置rrdtool,如下:
./configure --prefix=/usr/local/rrdtool
配置結果如下
直接進行編譯安裝
make&&make install
安裝結果如下:
安裝完成後進行驗證:
/usr/local/rrdtool/bin/rrdtool–v
9.2 安裝pnp4nagios
9.2.1安裝perl-Time-HiRes組件
perl-Time-HiRes組件一定要在安裝配置pnp4nagios之前安裝,否則在安裝配置pnp4nagios時,提示如下的錯誤信息:
configure:error: Perl Module Time::HiRes not available
未驗證。
yum install –y perl-Time-HiRes
開始安裝pnp4nagios(終於到這一步了)
進入pnp4nagios的解壓目錄
配置pnp4nagios:
./configure--prefix=/usr/local/pnp4nagios --with-rrdtool=/usr/local/rrdtool/bin/rrdtool --with-nagios-user=nagios--with-nagios-group=nagios--with-perl_lib_path=/usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/
會出現如上圖的問題,則執行
cp -r /usr/local/rrdtool/lib/perl/5.10.1/x86_64-linux-thread-multi/* /usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/
再次執行上面的配置命令:
結果如下:
編譯pnp4nagios,如下:
makeall
注意:
通過上圖,我們知道pnp4nagios的最後一步的安裝有兩種方法:一是make install進行一步一步的安裝pnp4nagios,二是使用make fullinstall進行自動安裝。
這邊我們用make install
make install
執行結果如下:
安裝pnp4nagios的web配置文件,如下:
makeinstall-webconf
注意:如果apache是使用源碼安裝的話,我們在執行make install-webconf會報錯。
不要怕,我們只需要把sample-config/httpd.conf複製到/usr/local/apache2/conf/下,並重命名爲pnp4nagios.conf即可。在這apache是安裝到/usr/local/apache2下。如下:
cpsample-config/httpd.conf /usr/local/apache2/conf/ pnp4nagios.conf
ll/usr/local/apache2/conf/
以上操作之後,我們還需要在/usr/local/apache/conf/httpd.conf文件中添加 Include conf/pnp4nagios.conf。最後,我們還要重啓apache。
安裝pnp4nagios的配置文件,如下:
make install-config
安裝pnp4nagios啓動的初始化腳本,如下:
make install-init
9.3 pnp4nagios目錄介紹
pnp4nagios安裝完畢後,我們來查看下其安裝的目錄,如下:
ll/usr/local/pnp4nagios/
下面來介紹下pnp4nagios的目錄,如下:
bin目錄用來存放pnp4nagios啓動命令npcd。如下:
/usr/local/pnp4nagios/bin/npcd-h
pnp4nagios開機啓動腳本就是由這個命令控制,如下:
vi/etc/init.d/npcd
etc目錄主要存放pnp4nagios各種配置文件,如下:
ll/usr/local/pnp4nagios/etc/
lib目錄存放pnp4nagios的庫文件。
libexec目錄存放pnp4nagios執行的插件,比如process_perfdata.pl
ll/usr/local/pnp4nagios/libexec
其他的目錄就不需要做介紹了。
以上就是pnp4nagios的安裝。
9.4 配置pnp4nagios
pnp4nagios安裝完畢後,我們現在來配置pnp4nagios。
切換到pnp4nagios的安裝目錄的etc目錄下,如下:
cd/usr/local/pnp4nagios/etc/
現在開始修改etc目錄下內容,如下:
mvmisccommands.cfg-sample misccommands.cfg
mvnagios.cfg-sample nagios.cfg
mvrra.cfg-sample rra.cfg
修改etc/pages目錄下內容,如下:
mvpages/web_traffic.cfg-sample pages/web_traffic.cfg
修改etc/check_commands目錄下內容,如下:
mvcheck_commands/check_all_local_disks.cfg-samplecheck_commands/check_all_local_disks.cfg
mvcheck_commands/check_nrpe.cfg-sample check_commands/check_nrpe.cfg
mvcheck_commands/check_nwstat.cfg-sample check_commands/check_nwstat.cfg
以上修改完畢後,我們來配置pnp4nagios的工作模式。
如果想要了解pnp4nagios的全部工作模式,可以訪問這個連接。如下:
http://docs.pnp4nagios.org/pnp-0.6/config
或者http://www.kar-chan.com/?p=2267
9.5啓動pnp4nagios
pnp4nagios安裝完畢後,我們來啓動pnp4nagios。要啓動pnp4nagios,我們可以使用如下命令:
/etc/init.d/npcd start
ps aux |grep npcd
通過上圖,我們可以很明顯的看到pnp4nagios已經正常啓動,並且也能看出pnp4nagios運行在nagios用戶下。
爲了以後的方便,我們直接把pnp4nagios開機啓動。如下:
chkconfignpcd on
chkconfig–list npcd
9.6訪問pnp4nagios
pnp4nagios啓動後,現在我們通過如下連接訪問pnp4nagios,如下:
http://192.168.1.243/pnp4nagios/
注意:系統會彈出如上的對話框,在此我們只需填入nagios中配置的具有訪問權限的用戶即可,在此我填寫的是nagios的管理員賬號nagiosadmin。
通過上面兩幅圖,我們可以看很明顯的看到pnp4nagios可以正常訪問。
但是在第二幅圖,我們也看到了系統給出的提示。如下:
pnp4nagios may not work correctly with yourenvironment. Remove or rename the /usr/local/pnp4nagios/share/install.php
file on your own risk.
它的意思是要把/usr/local/pnp4nagios/share/install.php文件刪除或者重命名。
現在我們對此文件進行操作,如下:
mv/usr/local/pnp4nagios/share/install.php/usr/local/pnp4nagios/share/install.php.bak
ll/usr/local/pnp4nagios/share/
對該文件操作文件後,我們再次刷新該頁面,可能會出現如下的錯誤信息。如下:
該錯誤是正常的錯誤,不用管它。繼續往下配置。
9.7配置nagios
在pnp4nagios的這幾種工作模式中,我們使用Bulk Mode with NPCD模式。要使用Bulk Mode with NPCD模式,我們需要修改nagios的相關配置,具體修改如下。
配置nagios.cfg文件
修改nagios的配置文件nagios.cfg,在該文件加入或修改如下選項:
vi/usr/local/nagios/etc/nagios.cfg
process_performance_data=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
注意:
process_performance_data=1表示啓用nagios性能數據輸出。
如果上面的內容你記不得,也沒事的,我們可以直接從/usr/local/pnp4nagios/etc/nagios.cfg文件中複製即可。如下:
vi/usr/local/pnp4nagios/etc/nagios.cfg +16
配置commands.cfg文件
nagios.cfg文件修改完畢後,我們現在來編輯commands.cfg文件。在該文件中加入或修改如下選項:
vi/usr/local/nagios/etc/objects/commands.cfg
definecommand{
command_name process-service-perfdata-file
command_line /bin/mv/usr/local/pnp4nagios/var/service-perfdata/usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$
}
definecommand{
command_name process-host-perfdata-file
command_line /bin/mv /usr/local/pnp4nagios/var/host-perfdata/usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$
}
同時還要把nagios中原來的定義process-host-perfdata和process-service-perfdata給註釋掉。如下:
如果上面的內容你記不得,也沒事的,我們可以直接從/usr/local/pnp4nagios/etc/misccommands.cfg文件中複製即可。如下:
vi/usr/local/pnp4nagios/etc/misccommands.cfg +34
配置templates.cfg文件
commands.cfg文件修改完畢後,我們現在來編輯templates.cfg文件。在該文件中加入如下選項:
vi/usr/local/nagios/etc/objects/templates.cfg
definehost {
namehost-pnp
action_url/pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_’ class=’tips’rel=’/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_
register0
}
defineservice {
namesrv-pnp
action_url/pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$’ class=’tips’rel=’/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
register0
}
如果上面的內容你記不得,也沒事的,我們可以直接從pnp4nagios官網查看。如下:
http://docs.pnp4nagios.org/pnp-0.6/webfe
配置主機cfg文件
以上文件全部配置完畢後,我們現在添加一臺主機。如下:
vi/usr/local/nagios/etc/ilanni/ilanni.cfg
definehost{
useilanniserver,host-pnp
host_nameilanni
aliastest server
address192.168.1.248
check_commandcheck-host-alive
}
defineservice{
usegeneric-service,srv-pnp
host_nameilanni
service_descriptionnrpe_load
check_commandcheck_nrpe!check_load
}
9.8查看pnp4nagios繪製圖形
nagios配置完畢後,我們來檢查下nagios配置是否正確。如下:
/etc/init.d/nagiosconfigtest
通過上圖,我們可以看到nagios配置是沒有問題的。
現在我們來重新啓動pnp4nagios和nagios,如下:
/etc/init.d/npcdrestart
/etc/init.d/nagiosreload
現在我們登錄nagios進行查看,先來看看pnp4nagios繪製主機的性能圖,如下:
通過上面三張圖,我們可以很明顯的看出pnp4nagios已經把主機的相關數據進行繪圖。
然後再來看看pnp4nagios繪製服務的性能圖,如下:
通過上面三張圖,我們可以很明顯的看出pnp4nagios已經把服務的相關數據進行繪圖。
最後,我們再來查看下pnp4nagios把數據存放的位置。如下:
ll/usr/local/pnp4nagios/var/perfdata/
ll/usr/local/pnp4nagios/var/perfdata/ilanni
到此有關pnp4nagios繪製nagios性能的圖形已經全部完成。