1. 程式人生 > >部署監控三劍客 Nagios 服務器監控

部署監控三劍客 Nagios 服務器監控

smart mkdir 逗號 分享 人的 狀態 dmi 網站 web監控

Nagios 簡介 :

Nagios是一款開源的免費網絡監視工具,能有效監控Windows、Linux和Unix的主機狀態,交換機路由器等網絡設備,打印機等。在系統或服務狀態異常時發出郵件或短信報警第一時間通知網站運維人員,在狀態恢復後發出正常的郵件或短信通知。

Nagios 可以監控的功能有:

  • 1、監控網絡服務(SMTP、POP3、HTTP、NNTP、PING等);
  • 2、監控主機資源(處理器負荷、磁盤利用率等);
  • 3、簡單地插件設計使得用戶可以方便地擴展自己服務的檢測方法;
  • 4、並行服務檢查機制;
  • 5、具備定義網絡分層結構的能力,用"parent"主機定義來表達網絡主機間的關系,這種關系可被用來發現和明晰主機宕機或不可達狀態;
  • 6、當服務或主機問題產生與解決時將告警發送給聯系人(通過EMail、短信、用戶定義方式);
  • 7、可以定義一些處理程序,使之能夠在服務或者主機發生故障時起到預防作用;
  • 8、自動的日誌滾動功能;
  • 9、可以支持並實現對主機的冗余監控;
  • 10、可選的WEB界面用於查看當前的網絡狀態、通知和故障歷史、日誌文件等;
  • 11、可以通過手機查看系統監控信息;
  • 12、可指定自定義的事件處理控制器

本案環境 :

主機 系統 IP地址
nagios CentOS 7.4 192.168.100.130
被監控 CentOS 7.4 192.168.100.131

部署 Nagios 監控系統

1.關閉防火墻 :

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

2.創建 nagios 用戶 :

useradd -M -s /sbin/nologin nagios

mkdir /usr/local/nagios

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

3.安裝環境 :

yum -y install gcc gcc-c++ make perl openssl-devel

4.編譯安裝 nagios :


wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.3.1.tar.gz
tar zxvf nagios-4.3.1.tar.gz

cd nagios-4.3.1/

./configure --prefix=/usr/local/nagios

make all

make install

make install-init   # 把nagios做成一個運行腳本,使nagios隨系統開機啟動

make install-commandmode  # 給外部命令訪問nagios配置文件的權限

make install-config  # 把配置文件樣例復制到nagios的安裝目錄
chkconfig --add /etc/rc.d/init.d/nagios

chkconfig --level 35 nagios on

chkconfig --list nagios

5.檢驗是否安裝成功 :

[root@localhost nagios-4.3.1]# ls /usr/local/nagios/
bin  etc  libexec  sbin  share  var                    #查看文件是否存在

6.安裝 nagios-plugins 插件:

tar zxvf nagios-plugins-1.5.tar.gz -C /opt/

cd /opt/nagios-plugins-1.5

./configure --prefix=/usr/local/nagios
make && make install

7.安裝 web 服務 :

yum -y install httpd php

8.修改 http 配置文件 :

vim /etc/httpd/conf/httpd.conf 

User nagios      #管理用戶和組修改成nagios
Group nagios

DirectoryIndex index.html index.php   #添加 index.php

AddType application/x-httpd-php .php     #添加可識別 php 
# 為了安全起見,一般情況下要讓nagios 的web 監控頁面必須經過授權才能訪問
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"   #末尾添加
<Directory "/usr/local/nagios/sbin"> 
     AuthType Basic 
     Options ExecCGI 
     AllowOverride None 
     Order allow,deny 
     Allow from all 
     AuthName "Nagios Access" 
     AuthUserFile /usr/local/nagios/etc/htpasswd              
     Require valid-user 
</Directory> 
Alias /nagios "/usr/local/nagios/share" 
<Directory "/usr/local/nagios/share"> 
     AuthType Basic 
     Options None 
     AllowOverride None 
     Order allow,deny 
     Allow from all 
     AuthName "nagios Access" 
     AuthUserFile /usr/local/nagios/etc/htpasswd 
     Require valid-user 
</Directory> 

9.創建訪問認證文件 :

[root@localhost ]# htpasswd -c /usr/local/nagios/etc/htpasswd nagiosadm  #用戶名 nagiosadm
New password:         #密碼
Re-type new password: 
Adding password for user nagiosadm

10.開啟服務,訪問 http://192.168.100.130/nagios :

systemctl start httpd.service 
systemctl start nagios.service

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

11.修改 objects 配置文件模板 :

1. 修改 templates.cfg :

cd /usr/local/nagios/etc/objects

vim templates.cfg  #定義主機和服務模板的配置文件

contact_groups  test   #5個全部修改  定義聯系組的名稱

2.添加 hosts.cfg :

vim hosts.cfg  #hosts.cfg主要用來指定被監控的主機地址以及相關屬性信息(不能有任何空格)

define host{   
        use                     linux-server #引用主機linux-server的屬性信息,linux-server主機在templates.cfg文件中進行了定義。
        host_name               Nagios-Linux #主機名
        alias                   Nagios-Linux #主機別名
        address                 192.168.100.131 #被監控的主機地址,這個地址可以是ip,也可以是域名。
        }   
#定義一個主機組   
define hostgroup{      
        hostgroup_name          bsmart-servers#主機組名稱,可以隨意指定。
        alias                   bsmart servers#主機組別名
        members                 Nagios-Linux#主機組成員,其中“Nagios-Linux”就是上面定義的主機。     
        }

3. localhost.cfg 文件 #用來監控本機 一般無需更改

4. windows.cfg #用來監控windows 這裏無需使用

5.添加 services.cfg :

vim services.cfg  #主要用於定義監控的服務和主機資源

define service{  
        use                     local-service #引用local-service服務的屬性值,local-service在templates.cfg文件中進行了定義。
        host_name               Nagios-Linux #指定要監控哪個主機上的服務,“Nagios-Server”在hosts.cfg文件中進行了定義。
        service_description     check-host-alive #對監控服務內容的描述,以供維護人員參考。
        check_command           check-host-alive #指定檢查的命令。
        }  

6.修改 contacts.cfg :

vim contacts.cfg #定義聯系人和聯系人組的配置文件(不能有空格)
define contact{
        contact_name                    nagiosadm #聯系人的名稱,這個地方不要有空格
        use                             generic-contact #引用generic-contact的屬性信息,其中“generic-contact”在templates.cfg文件中進行定義
        alias                           Nagios Admin
        email                           [email protected]    #郵箱
        }
define contactgroup{
        contactgroup_name       test #聯系人組的名稱,同樣不能空格
        alias                   Technical Support #聯系人組描述
        members                 nagiosadm #聯系人組成員,其中“nagiosadm”就是上面定義的聯系人,如果有多個聯系人則以逗號相隔
        }

7. commands.cfg 文件 #此文件默認是存在的,無需修改即可使用,當然如果有新的命令需要加入時,在此文件進行添加即可

12.修改 nagios 配置文件 :

1. resource.cfg文件 #是nagios的變量定義文件

2. 修改 cgi.cfg :

cd /usr/local/nagios/etc/ 

vim cgi.cfg  #文件用來控制相關cgi腳本

#由於nagios的web監控界面驗證用戶為nagiosadm,所以只需在cgi.cfg文件中添加此用戶的執行權限
#末尾添加

default_user_name=nagiosadm
authorized_for_system_information=nagiosadmin,nagiosadm  
authorized_for_configuration_information=nagiosadmin,nagiosadm  
authorized_for_system_commands=nagiosadm
authorized_for_all_services=nagiosadmin,nagiosadm  
authorized_for_all_hosts=nagiosadmin,nagiosadm
authorized_for_all_service_commands=nagiosadmin,nagiosadm  
authorized_for_all_host_commands=nagiosadmin,nagiosadm

3.修改 nagios.cfg :

vim nagios.cfg #將對象配置文件在Nagios.cfg文件中進行引用

cfg_file=/usr/local/nagios/etc/objects/hosts.cfg    #添加
cfg_file=/usr/local/nagios/etc/objects/services.cfg #添加
command_check_interval=10s       #該變量用於設置nagios對外部命令檢測的時間間隔

13.檢查配置文件語法 :

[root@localhost ]# /etc/init.d/nagios checkconfig 
Running configuration check...
 OK.

14. 訪問 http://192.168.100.130/nagios :

systemctl restart nagios.service

技術分享圖片

部署監控三劍客 Nagios 服務器監控