Nagios安裝與部署


 

Nagios概述:

Nagios是一款開源免費(也有收費版的Nagios XI)的監控工具,可以用以監控Windows、Linux、Unix、Router、Switch,可以監控指定主機的物理基礎資源或服務,當被監控對象健康狀態“變好”或者“變壞”的時候,可以通過郵件、短信等方式通知到相關管理人員或運維人員。

官方介紹:

https://www.nagios.org/about/

官方下載地址:

https://www.nagios.org/downloads/nagios-core/thanks/?skip=1&product_download=nagioscore-source

相關網址:

https://www.nagios.org/downloads/nagios-core-frontends/                                     //如果嫌棄Nagios的web界面不夠美觀,可以去這里找些主題換上

https://exchange.nagios.org/#_ga=2.236442180.491245866.1535507044-125128113.1535507044      //nagios的一些拓展插件,可以在這里下載

https://exchange.nagios.org/directory/Addons                                                      //各類插件,包括一些監控腳本

https://www.nagios.org/downloads/nagios-core-addons/                                     //nagios的一些項目

Nagios的運行模式:

Nagios服務以C/S模式收集數據,用戶以B/S模式查看

Nagios的運行原理:

 

上圖的過程可以概括為Nagios Server從客戶端采集過來數據加以分析,然后以網頁形式呈現給用戶。

附上另外兩張網上找的Nagios的運行原理圖幫助理解:

 

部署Nagios所需的軟件:

LAP(Linux + Apache + PHP)

nagios-3.5.1.tar                                  //Nagios的核心文件,Nagios服務文件,選擇穩定版就好,最新版的很多插件用不了

nagios-plugins-2.1.1.tar                    //Nagios插件,用於各種腳本和命令

nrpe-2.15.tar                                    //代理服務,用戶監控非Nagios服務器的服務器本地私有信息代理

NSCP-0.4.3.143-x64                      //Nsclient++,用於監控Windows,分32位和64位

pnp4nagios-0.6.25.tar                     //非必需,用於結合nagios出圖

vautour_style                                  //nagios主題

開始部署

首先解決依賴

[root@xueji ~]# yum install -y gcc gcc-c++ glibc glibc-common php gd gd-devel libpng libmng libjpeg zlib
這里注意:如果提示那個依賴庫安裝失敗,建議配置下網絡YUM源,USTC、Tsinghua或者ali的開源鏡像站都可以;也可以直接去網上下載。

采用YUM方式安裝apache和php:

[root@xueji ~]# yum install -y httpd php

啟動httpd服務並測試PHP是否可用

[root@xueji ~]# service httpd start 
[root@xueji ~]# elinks 192.168.159.130 --dump >> php_out.txt
[root@xueji ~]# echo $?
0
[root@xueji ~]# less php_out.txt
   [1]PHP Logo

   PHP Version 5.3.3

   System             Linux xueji 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22
                      03:15:09 UTC 2013 x86_64
   Build Date         Mar 22 2017 12:27:34
                      './configure' '--build=x86_64-redhat-linux-gnu'......
顯示出PHP的相關信息,即說明PHP正常

添加nagios運行用戶並准備軟件包

[root@xueji ~]# groupadd nagcmd
[root@xueji ~]# usermod -G nagcmd apache
[root@xueji ~]# useradd nagios -G nagcmd
[root@xueji ~]# mkdir Nagios
[root@xueji Nagios]# ls
nagios-3.5.1.tar.gz          pnp4nagios-0.6.25.tar.gz
nagios-plugins-2.1.1.tar.gz  vautour_style.zip
nrpe-2.15.tar.gz

開始安裝nagios

[root@xueji Nagios]# tar -xf nagios-3.5.1.tar.gz 
[root@xueji Nagios]# tar -xf nagios-plugins-2.1.1.tar.gz 
[root@xueji Nagios]# tar -xf nrpe-2.15.tar.gz 
[root@xueji Nagios]# tar -xf pnp4nagios-0.6.25.tar.gz 
[root@xueji Nagios]# unzip vautour_style.zip 
[root@xueji Nagios]# cd nagios
[root@xueji nagios]# ./configure --with-command-group=nagcmd && echo $? && sleep 3 && make all && echo $? && sleep 3 && make install && make install-init && make install-commandmode && make install-config && make install-webconf
//make install安裝生成/usr/local/nagios/,其中/usr/local/nagios/share即nagiosWEB訪問界面的站點目錄
//make install-init                安裝生成/etc/rc.d/init.d/nagios  啟動腳本                                
//make install-config            安裝生成/usr/local/nagios/etc下的nagios相關配置文件                    
//make install-commandmode    設定相應nagios工作目錄的權限
//make install-webconf            安裝Nagios的WEB配置文件到Apache的conf.d目錄下
到此時,安裝過程就結束了

Nagios安裝完成后,相關文件目錄說明

[root@xueji nagios]# ls /usr/local/nagios/    
bin  etc  libexec  sbin  share  var
[root@xueji nagios]# ls /usr/local/nagios/share/   #執行過make install 后生成了/usr/local/nagios/share這個目錄
config.inc.php  includes   media             side.php
contexthelp     index.php  robots.txt        ssi
docs            js         rss-corefeed.php  stylesheets
images          main.php   rss-newsfeed.php
##執行了make install-init 后,生成了/etc/init.d/nagios,即nagios的啟動文件
[root@xueji nagios]# ls /etc/init.d/nagios 
/etc/init.d/nagios
##執行make install-config后,生成了nagios的配置文件
[root@xueji nagios]# ls /usr/local/nagios/etc/
cgi.cfg  nagios.cfg  objects  resource.cfg
##執行make install-webconf后,會在/etc/httpd/conf.d/下生成nagios的配置文件
[root@xueji nagios]# ls /etc/httpd/conf.d/ | grep nagios
nagios.conf

Nagios安裝完成后的主目錄

[root@xueji nagios]# ls /usr/local/nagios/
bin       //nagios執行程序所在的目錄
etc       //nagios配置文件所在目錄,初始安裝完成后,只有幾個.cfg文件,
libexec  //監控所用命令,需要安裝nagios-plugins插件才會有,檢測命令,不裝是空的
sbin    //Nagios的cgi文件所在目錄,外部命令所需的文件存放目錄
share  //nagiosde 前端頁面
var     //日志文件,pid(進程)文件等等。

使用客戶端訪問測試nagios的前端

此時還不能登錄,需要建立登錄用戶

[root@xueji ~]# htpasswd -c /usr/local/nagios/etc/htpasswd
.users nagiosadmin
New password: 
Re-type new password: 
Adding password for user nagiosadmin
##htpasswd.users這個文件是htpasswd 命令通過-c參數創建出來的,之后再添加nagios用戶的話,就不需要-c參數了
[root@xueji ~]# cat /usr/local/nagios/etc/htpasswd.users 
nagiosadmin:6WusQf7QgCtw6
[root@xueji ~]# service httpd restart  //重啟httpd服務測試剛才創建的nagios用戶是否可以登錄。

登錄測試

現在可以登錄,但僅限於可以登錄,因為沒有做其他配置。

開始安裝nagios-plugins插件

[root@xueji Nagios]# cd nagios-plugins-2.1.1
[root@xueji nagios-plugins-2.1.1]# ./configure --with-nagios-user=nagios --with-nagios-group=nagcmd && echo $? &&sleep 3 && make && echo $? && sleep 3 && make install && echo $?

安裝完成后,生成的相關文件

[root@xueji nagios-plugins-2.1.1]# cd /usr/local/nagios/
[root@xueji nagios]# ls
bin  etc  include  libexec  sbin  share  var
[root@xueji nagios]# ls libexec/
check_apt           check_ldap         check_procs
check_breeze        check_ldaps        check_real
check_by_ssh        check_load         check_rpc
check_clamd         check_log          check_sensors
check_cluster       check_mailq        check_simap
check_dhcp          check_mrtg         check_smtp
check_dig           check_mrtgtraf     check_spop
check_disk          check_mysql        check_ssh
check_disk_smb      check_mysql_query  check_ssmtp
check_dns           check_nagios       check_swap
check_dummy         check_nntp         check_tcp
check_file_age      check_nntps        check_time
check_flexlm        check_nt           check_udp
check_ftp           check_ntp          check_ups
check_http          check_ntp_peer     check_uptime
check_icmp          check_ntp_time     check_users
check_ide_smart     check_nwstat       check_wave
check_ifoperstatus  check_oracle       negate
check_ifstatus      check_overcr       urlize
check_imap          check_pgsql        utils.pm
check_ircd          check_ping         utils.sh
check_jabber        check_pop

啟動nagios服務

[root@xueji ~]# service httpd restart 
Stopping httpd:                                          [  OK  ]
Starting httpd:                                          [  OK  ]
[root@xueji ~]# service nagios restart 
Running configuration check...done.
Stopping nagios: No lock file found in /usr/local/nagios/var/nagios.lock
Starting nagios: done.

再次登錄測試

現在就有機器信息了。

配置監控之前,需要做一系列的准備工作(指定主配置文件需要加載的配置文件—定義主機—定義服務 –定義監控命令—檢查配置文件—啟動Nagios)

[root@xueji ~]# vim /usr/local/nagios/etc/nagios.cfg
log_file=/var/log/nagios/nagios.log                         #日志位置
cfg_file=/etc/nagios/objects/commands.cfg                   #這個文件定義了很多命令
cfg_file=/etc/nagios/objects/contacts.cfg                   #定義聯系人,怎么聯系
cfg_file=/etc/nagios/objects/timeperiods.cfg                #定義了時間段
cfg_file=/etc/nagios/objects/templates.cfg                  #模板(聯系人,主機,時間)
cfg_file=/etc/nagios/objects/localhost.cfg                  #監控本機相關配置文件
#cfg_file=/etc/nagios/objects/windows.cfg                   #windows,默認不監控
#cfg_file=/etc/nagios/objects/switch.cfg                    #交換機路由器監控,默認不監控
#cfg_file=/etc/nagios/objects/printer.cfg                   #打印機監控,默認不監控

#cfg_dir=/etc/nagios/servers                                #定義了服務合集(多個使用)
#cfg_dir=/etc/nagios/printers                               #定義了打印機合集(多個使用)
#cfg_dir=/etc/nagios/switches                               #定義了交換合集(多個使用)
#cfg_dir=/etc/nagios/routers                                #定義了路由合集(多個使用)
cfg_dir=/etc/nagios/conf.d                     #配置文件目錄(下面的cfg文件一樣有效)

resource_file=/etc/nagios/private/resource.cfg 資源變量配置文件,包括$USER1$變量(一個路徑)等
status_update_interval=10                                   #狀態更新時間,單位s
log_rotation_method=d                                       #日志滾動,默認天
service_check_timeout=60                                    #服務檢查超時時間
host_check_timeout=30                                        #主機檢查超時時間
event_handler_timeout=30                                
notification_timeout=30
ocsp_timeout=5
perfdata_timeout=5
[root@xueji ~]# vim /usr/local/nagios/etc/cgi.cfg  //比nagios.cfg文件的優先級高
main_config_file=/etc/nagios/nagios.cfg             #主配置文件
physical_html_path=/usr/share/nagios/html           #物理路徑
url_html_path=/nagios                               #在URL后面加上/nagios才能訪問
use_authentication=1                                #使用認證
use_ssl_authentication=0                            #不使用ssl
authorized_for_system_information=nagiosadmin       #認證用戶

配置nagios實現對本地NFS服務的監控

[root@xueji ~]# cd /usr/local/nagios/etc/objects/
[root@xueji objects]# ls
commands.cfg   printer.cfg    timeperiods.cfg
contacts.cfg   switch.cfg     windows.cfg
localhost.cfg  templates.cfg
[root@xueji objects]# cp localhost.cfg{,.bak}
[root@xueji objects]# vim localhost.cfg
define service{
        use                             local-service         ; Name of service template to use
        host_name                       localhost
        service_description             NFS        check_command                   check_tcp!2049
        }


@                                                         
/define service 
##創建一個共享
[root@xueji objects]# vim /etc/exports
/tmp *{rw}
[root@xueji objects]# /etc/init.d/nfs start
Starting NFS services:  exportfs: No options for /tmp *{rw}: suggest *{rw}(sync) to avoid warning
                                                         [  OK  ]
Starting NFS quotas:                                     [  OK  ]
Starting NFS mountd:                                     [  OK  ]
Starting NFS daemon:                                     [  OK  ]
Starting RPC idmapd:                                     [  OK  ]
[root@xueji objects]# showmount -e 192.168.159.130
Export list for 192.168.159.130:
/tmp *{rw}
檢查localhost是否啟用
[root@xueji objects]# grep localhost /usr/local/nagios/etc/nagios.cfg 
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg  //默認已經啟用
檢查配置文件是否有誤
[root@xueji objects]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg  | grep ^Total
Total Warnings: 0
Total Errors:   0
都是0表明配置文件沒有問題。
[root@xueji objects]# /etc/init.d/nagios restart 
Running configuration check...done.
Stopping nagios: done.
Starting nagios: done.

再次登錄nagios查看

手動停掉NFS服務,強制刷新,再次查看,在上圖界面,鼠標單擊NFS會出現如下所示

點擊右側Re-schedule the next check of this service,然后在彈出的窗口點擊commit,一次不行,多試兩次,然后就會看到如下所示

nagios的告警顏色含義

 


免責聲明!

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



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