1. 程式人生 > >Nagios監控系統環境部署

Nagios監控系統環境部署

systemctl conf 能夠 zed 關閉防火墻 err 多個 分享圖片 系統負載

Nagios的功能是監控服務和主機,但其自身並不包括這部分功能,所有的監控、檢測功能都是通過各種插件來完成。啟動Nagios後,它會周期性的調用插件去檢測服務器狀態,同時Nagios會維持一個隊列,所有插件返回來的狀態信息都進入隊列,Nagios每次都從隊首讀取信息,進行處理後,再把狀態通過web展現出來。

這就是所謂的被動模式,經常用於監控主機的系統資源,比如系統負載、磁盤使用率、內存使用率、網絡狀態、系統進程數等等。

另一種是主動模式,主要是nagios服務器主動去獲取數據,常用於探測URL的監控和服務狀態監控。

相比於主動模式中服務器去被監控主機上輪詢獲取監控數據的方式,這樣的最大優勢是避免除了數據處理工作以外的其他工作都放在了被監控主機上(包括數據傳輸),避免了被監控主機量大時,一次輪詢時間過長而導致監控反應延遲,這也是被動模式能夠承擔更大監控量的關鍵。

Nagios提供了許多插件,利用這些插件可以方便的監控很多服務狀態,安裝完成後,在nagios目錄下的/libexec裏放nagios自帶的可以使用的所有插件,如check_disk是檢查磁盤空間的插件,check_load是檢查CPU負載的插件。每一個插件都可通過運行./check_xxx -h命令來查看其使用方法和功能。

一、部署環境

主機 操作系統 IP地址 主要軟件
Nagios centos7.3 x86_64 192.168.144.112 Nagios4.0.1、nagios-plugins-1.5、LAMP環境
被監控主機 centos7.3 x86_64 192.168.144.111

二、Nagios服務主機部署

1、首先準備LAMP環境

  • 由於被動模式數據進過處理後需要通過web界面呈現出來,因此在nagios服務主機上需要LAMP環境支持。
yum install -y httpd mariadb-server mariadb php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash

vim /etc/httpd/conf/httpd.conf

ServerName www.yun.com
...

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
...
DirectoryIndex index.html index.php
  • 關閉防火墻和SELinux,啟動服務

systemctl stop firewalld.service
setenforce 0
systemctl start httpd
systemctl start mariadb.service

2、準備nagios服務軟件相關環境

yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel

useradd -s /sbin/nologin nagios

mkdir /usr/local/nagios

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

ll -d /usr/local/nagios/ 查看權限

3、解壓軟件包,執行安裝

tar zxvf nagios-4.0.1.tar.gz -C /opt/
cd /opt/nagios-4.0.1/
./configure --prefix=/usr/local/nagios

執行安裝程序後,編譯各模塊的五大步驟
make all    //首先執行全部編譯

make install

make install-init        //初始化命令位置

make install-commandmode   //編譯安裝控制模塊

make install-config      //編譯生成相關配置文件

chkconfig --add /etc/rc.d/init.d/nagios

chkconfig --level 35 nagios on

chkconfig --list nagios

  • 為驗證編譯是否完整成功,需要檢查/usr/local/nagios/下是否存在etc、bin、sbin、share、var 這五個目錄

4、編譯安裝插件模塊

tar xvzf nagios-plugins-1.5.tar.gz -C /opt
cd /opt/nagios-plugins-1.5
./configure --prefix=/usr/local/nagios 安裝插件模塊,註意放入nagios安裝目錄中
make && make install

5、修改Apache配置文件,為nagios創建虛擬目錄

vim /etc/httpd/conf/httpd.conf

找到:
User apache 
Group apache 
修改為 
User nagios 
Group nagios 
...

為了安全起見,一般情況下要讓nagios 的web 監控頁面必須經過授權才能訪問,
這需要增加驗證配置,即在httpd.conf 文件最後添加如下信息:
#setting for nagios 
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> 
  • 設置完訪問驗證設置後,需要設置驗證的賬戶密碼
  • 利用htpasswd在/usr/local/nagios/etc/htpasswd生成jack賬戶並設定密碼

htpasswd -c /usr/local/nagios/etc/htpasswd jack

cat /usr/local/nagios/etc/htpasswd

jack:$apr1$DR0SjMa5$trumMzpqj./BA15Iswx2g0

systemctl restart httpd.service

三、配置nagois各功能模塊配置文件

1.templates.cfi nagios

主要用於監控主機資源以及服務,在nagios配置中稱為對象,
為了不必重復定義一些監控對象,Nagios引入了一個模板配置文件,
將一些共性的屬性定義成模板,以便於多次引用。

 contact_groups  聯系組屬性改成 ts 將在後面的contacts.cfg文件中定義

2.resource.cfg文件

resource.cfg是nagios的變量定義文件 一般無需更改
$USER1$=/usr/local/nagios/libexec

3.commands.cfg文件

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

4. hosts.cfg文件,如果創建位置不在object下,需要註意屬主屬組權限,並且主配置文件中告知為絕對路徑

此文件默認不存在,需要手動創建,hosts.cfg主要用來指定被監控的主機地址以及相關屬性信息(不能有任何空格)

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

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

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

7.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#指定檢查的命令。
        }  

8.contacts.cfg文件   contacts.cfg是一個定義聯系人和聯系人組的配置文件(不能有空格)

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

9.cgi.cfg文件 此文件用來控制相關cgi腳本
由於nagios的web監控界面驗證用戶為jack,所以只需在cgi.cfg文件中添加此用戶的執行權限
在最後加入

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

10. 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對外部命令檢測的時間間隔
  • 檢測配置文件

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 驗證配置文件

技術分享圖片

  • web界面顯示
    http://192.168.144.112/nagios

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

Nagios監控系統環境部署