1. 程式人生 > >運維監控三劍客之Nagios

運維監控三劍客之Nagios

操作系統 mar 瀏覽器 同時 ddc man pla dev group

Nagios

Nagios是一款LInux上成熟的監視系統運行狀態和網絡信息的開源IT基礎設施監控系統。Nagios能夠監控所指定的本地或遠程主機及服務,同時提供異常通知、事件處理等功能。它可以運行在Linux平臺,同時還提供了基於瀏覽器的web界面,以方便系統管理人員查看系統的運行狀態,網絡狀態,各種系統問題及日誌異常等。

工作原理

Nagios的功能是監控服務和主機,但是其自身並不包含這些功能,所有的監控、檢測功能都是通過各種插件來完成的。啟動Nagios後,它會周期性地自動調用插件去檢測服務器狀態,同時Nagios會維持一個隊列,所有插件返回的狀態信息都進入隊列,Nagios每次都從隊列讀取信息,進行處理後,再把狀態結果通過Web界面顯示出來,這是被動模式。常用於監控主機的系統資源,比如系統負載、磁盤使用率、內存使用率、網絡狀態、系統進程數等。另一種是主動模式,主要是Nagios服務器主動去獲取數據,常用於探測URL的監控和服務的狀態監控。

Nagios的主要特點:

  • 監視本地或遠程主機的資源;
  • 監視網絡服務資源;
  • 允許用戶編寫自己的插件來監控特定的服務;
  • 當被監控對象出現異常時,可以通過郵件、短信等方式通知管理人員;
  • 可以事先定義事件處理程序,當主機或服務出現故障時自動調用指定的處理程序;
  • 可以通過web界面來監控各個主機或服務的運行狀態。

系統環境

主機名 操作系統 IP地址 服務名
nagios centos7.4 192.168.96.81 nagios-4.3.4.tar.gz、nagios-cn.4.3.4.tar.gz、nagios-plugins-2.2.1.tar.gz、pnp4nagios-0.6.26.tar.gz
www centos7.4 192.168.96.11 nrpe-3.1.0.tar.gz
客戶端 windows 10 192.168.96.2 網頁瀏覽器

nagios/www服務器均關閉防火墻及SElinux功能

setenforece 0

systemctl stop firewalld

軟件包下載 密碼:yfdi

開始部署

一、安裝nagios

1.安裝系統環境包、apache、php

yum install -y wget httpd php php-devel php-gd gcc glibc glibc-common gd gd-devel make net-snmp

2.添加nagios用戶

useradd -s /sbin/nologin nagios

3.創建nagios安裝目錄,並修改目錄屬主信息

mkdir /usr/local/nagios
chown -R nagios.nagios /usr/local/nagios/

4.安裝nagios軟件包

#解壓
tar zxvf nagios-4.3.4.tar.gz
cd nagios-4.3.4

#配置
./configure --prefix=/nagios --with-command-group=nagios --with-nagios-group=nagios

#編譯安裝
make all
make install
make install-init
make install-config
make install-commandmode
make install-webconf

5.復制軟件包自帶的插件至nagios/libexec目錄下

cp -R contrib/eventhandlers /usr/local/nagios/libexec/

技術分享圖片


二、nagios-plugins插件

1.解壓

tar zxvf nagios-plugins-2.2.1.tar.gz

cd nagios-plugins-2.2.1/

2.配置

./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios

3.編譯及安裝

make && make install

三、nagios漢化插件

1.解壓

tar zxvf nagios-cn.4.3.4.tar.gz

cd nagios-4.3.4/

2.配置

./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios

3.編譯及安裝

make all
make install

四、配置Apache服務

1.為保證nagios安全訪問,添加身份驗證功能

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

2.編輯Apache服務配置文件

vim /etc/httpd/conf/httpd.conf

Listen 192.168.96.81:80         #41行,監聽地址及端口
#Listen 80          #42行,註釋該行

User nagios         #66行,用戶為nagios
Group nagios        #67行,用戶組為nagios

ServerName www.test01.com:80        #95行,域名

DirectoryIndex index.html index.php   #164行,主頁類型添加index.php類型

AddType application/x-httpd-php .php   #285行,添加php支持

3.添加自啟動並啟動httpd服務

systemctl enable httpd
systemctl start httpd

4.查看httpd服務信息

netstat -tunlp

技術分享圖片

5.添加自啟動並啟動nagios服務

systemctl enable nagios
systemctl start nagios

6.查看ngios服務狀態

systemctl status nagios

技術分享圖片

7.客戶端訪問nagios監控(http://192.168.96.81/nagios)

技術分享圖片
技術分享圖片


五、安裝圖標pnp4nagios

1.安裝軟件支持包

yum install perl-Time-HiRes rrdtool rrdtool-perl -y

2.創建pnp4nagios目錄

mkdir /usr/local/nagios/pnp4nagios

3.解壓

tar zxvf pnp4nagios-0.6.26.tar.gz

cd pnp4nagios-0.6.26/

4.配置

./configure --prefix=/usr/local/nagios/pnp4nagios  --with-nagios-user=nagios --with-nagios-group=nagios

技術分享圖片

5.編譯

make all
make fullinstall

6.復制軟件包中ssi文件至/pnp4nagios/share目錄下

cp -R contrib/ssi /usr/local/nagios/pnp4nagios/share/

7.生成pnp4nagios文件

cd /usr/local/nagios/pnp4nagios/etc/

mv misccommands.cfg-sample misccommands.cfg
mv nagios.cfg-sample nagios.cfg
mv rra.cfg-sample rra.cfg

cd pages/
mv web_traffic.cfg-sample web_traffic.cfg

cd ../check_commands/
mv check_all_local_disks.cfg-sample check_all_local_disks.cfg
mv check_nrpe.cfg-sample check_nrpe.cfg
mv check_nwstat.cfg-sample check_nwstat.cfg

8.加入自啟動並啟動npcd服務

chkconfig npcd on
service npcd start

技術分享圖片

9.編輯pnp4nagios各配置文件

cd /usr/local/nagios/pnp4nagios/etc/

vim /usr/local/nagios/pnp4nagios/etc/process_perfdata.cfg

#調整日誌級別
LOG_LEVEL = 2

10.編輯nagios.conf配置

vim /usr/local/nagios/etc/nagios.cfg

process_performance_data=1
enable_environment_macros=1

增加如下(如果不直接增加也可以去掉註釋自己改)

service_perfdata_command=process-service-perfdata
host_perfdata_command=process-host-perfdata

host_perfdata_file=/usr/local/nagios/pnp4nagios/var/host-perfdata
service_perfdata_file=/usr/local/nagios/pnp4nagios/var/service-perfdata

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

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

host_perfdata_file_mode=a
service_perfdata_file_mode=a

host_perfdata_file_processing_interval=15
service_perfdata_file_processing_interval=15

host_perfdata_file_processing_command=process-host-perfdata-file
service_perfdata_file_processing_command=process-service-perfdata-file

11.編輯commands.cfg配置文件

vim /usr/local/nagios/etc/objects/commands.cfg

把原有的兩個註釋掉,加入下面的
define command{
        command_name    process-host-perfdata
        command_line    /usr/bin/perl /usr/local/nagios/pnp4nagios/libexec/process_perfdata.pl
        }

define command{
        command_name    process-service-perfdata
        command_line    /usr/bin/perl /usr/local/nagios/pnp4nagios/libexec/process_perfdata.pl -d HOSTPERFDATA
        }

define command{
       command_name    process-service-perfdata-file
       command_line    /usr/local/nagios/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/service-perfdata
}

define command{
       command_name    process-host-perfdata-file
       command_line    /usr/local/nagios/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/host-perfdata
}

12.在模版裏添加定義的主機和服務

vim /usr/local/nagios/etc/objects/templates.cfg

define host {
name       host-pnp
action_url /pnp4nagios/share/index.php/graph?host=$HOSTNAME$
register   0
}
define service {
name       srv-pnp
action_url /pnp4nagios/share/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
register   0
}

13.檢查配置文件

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

技術分享圖片

14.重啟nagios、httpd服務

systemctl restart nagios
systemctl restart httpd

15.客戶端訪問(http://192.168.96.81/pnp4nagios/graph?host=192.168.96.11)

技術分享圖片

提醒刪除install.php頁面
cd /usr/local/nagios/pnp4nagios/share/

rm -rf install.php
如果pnp頁面報session的錯,則需修改一下緩存文件的權限
chown -R nagios.root /var/lib/php/session/

技術分享圖片

訪問ngios監控管理平臺(http://192.168.96.81/nagios)

技術分享圖片
技術分享圖片
技術分享圖片

運維監控三劍客之Nagios