部署Nagios監控系統

Nagios簡介

  • Nagios是一款開源的免費網絡監視工具,能有效監控Windows、Linux和Unix的主機狀態,交換機路由器等網絡設備,打印機等。在系統或服務狀態異常時發出郵件或短信報警第一時間通知網站運維人員,在狀態恢復後發出正常的郵件或短信通知。
  • nagios本身並沒有監控的功能,所有的監控是由插件完成的,插件將監控的結果返回給nagios,nagios分析這些結果以web的方式展現給我們,同時提供相應的報警功能(這個報警的功能也是由相應的插件完成的。

Nagios工作原理

Nagios的主動模式和被動模式

  • 被動模式:就如同上圖所顯示的那樣,客戶端起nrpe進程,服務端通過check_nrpe插件向客戶端發送命令,客戶端根據服務端的指示來調用相應的插件,插件可以獲取到本機的相關信息,並把獲取到的結果發送給服務端。因爲需要調用客戶端的插件去等帶客戶端返回的信息,所以叫做被動模式
  • 主動模式:主動模式不需要調用客戶端的插件,而是通過自己的插件主動去探測客戶端的相關信息。
    主動模式和被動模式的區別這兩種模式所擅長監控的服務也是不同的。
  • 主動模式:主機死活,端口,http服務,MySQL服務......
  • 被動模式:客戶端主機的負載,硬盤空間,內存......

Nagios可以識別4種狀態返回信息,即 0(OK)表示狀態正常/綠色、1(WARNING)表示出現警告/×××、2(CRITICAL)表示出現非常嚴重的錯誤/紅色、3(UNKNOWN)表示未知錯誤/深×××。Nagios根據插件返回來的值,來判斷監控對象的狀態,並通過web顯示出來,以供管理員及時發現故障。

操作步驟

  • 案例環境
主機 IP 主要軟件
Nagios監控端 192.168.200.131 httpd、php、nagios、nagios-plugins、nrpe、
被監控端 192.168.200.132 .

  • 下載安裝包環境

    # wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.3.1.tar.gz 
    # wget https://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz
    # wget https://sourceforge.net/projects/nagios/files/nrpe-3.x/nrpe-3.1.0.tar.gz
    # yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel
    # yum intall httpd php
  • 安裝

    # useradd -s /sbin/nologin nagios
    # mkdir /usr/local/nagios
    # chown -R nagios.nagios /usr/local/nagios
    # tar -zxvf nagios-4.3.1.tar.gz -C /opt
    # cd /opt/nagios-4.3.1
    # ./configure --prefix=/usr/local/nagios
    # make all
    # make install
    # make install-init
    # make install-commandmode
    # make install-config
    # make install-webconf      //生成apache配置文件
    # chkconfig --add /etc/rc.d/init.d/nagios
    # chkconfig --level 35 nagios on
    # chkconfig --list nagios
    # ls /usr/local/nagios    檢查 是否存在etc、bin、sbin、share、var 這五個目錄
  • 安裝插件

    # tar xvzf nagios-plugins-2.2.1.tar.gz -C /opt
    # cd /opt/nagios-plugins-2.2.1/
    # ./configure --prefix=/usr/local/nagios
    # make && make install
  • 修改httpd配置文件

    # vim /etc/httpd/conf/httpd.conf 
    User nagios        //修改
    Group nagios       //修改
    <IfModule dir_module> 
        DirectoryIndex index.html index.php       //修改
    </IfModule> 
    ........
    AddType application/x-httpd-php .php    //添加
  • 爲了安全起見,一般情況下要讓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> 
    
    # systemctl restart httpd.service  //重啓服務
  • 創建認證訪問文件

    # htpasswd -c /usr/local/nagios/etc/htpasswd zkc    //接着輸入密碼
  • 配置Nagois

    配置文件一般在目錄/usr/local/nagios/etc/ 下

  • resource.cfg : 是nagios的變量定義文件 一般無需更改 $USER1$=/usr/local/nagios/libexec
  • commands.cfg : 此文件默認是存在的,無需修改即可使用,當然如果有新的命令需要加入時,在此文件進行添加即可
  • localhost.cfg : 用來監控本機 一般無需更改
  • windows.cfg : 用來監控windows
  • templates.cfi
    主要用於監控主機資源以及服務,在nagios配置中稱爲對象,爲了不必重複定義一些監控對象,Nagios引入了一個模板配置文件,將一些共性的屬性定義成模板,以便於多次引用。

    # vim templates.cfi
    contact_groups       ts        //聯繫組屬性改成 ts(5個) 將在後面的contacts.cfg文件中定義
  • hosts.cfg
    此文件默認不存在,需要手動創建,hosts.cfg主要用來指定被監控的主機地址以及相關屬性信息(不能有任何空格)

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

部署Nagios監控系統

  • services.cfg
    此文件默認也不存在,需要手動創建,主要用於定義監控的服務和主機資源

    # vim /usr/local/nagios/etc/objects/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#指定檢查的命令。
                    }  

    部署Nagios監控系統

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

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

部署Nagios監控系統

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

    # vim /usr/local/nagios/etc/cgi.cfg 
    default_user_name=zkc
    authorized_for_system_information=nagiosadmin,zkc  
    authorized_for_configuration_information=nagiosadmin,zkc  
    authorized_for_system_commands=zkc
    authorized_for_all_services=nagiosadmin,zkc  
    authorized_for_all_hosts=nagiosadmin,zkc
    authorized_for_all_service_commands=nagiosadmin,zkc  
    authorized_for_all_host_commands=nagiosadmin,zkc

  • nagios.cfg

    # vim /usr/local/nagios/etc/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 驗證配置文件
    # systemctl restart nagios.service 
    # systemctl restart httpd

    部署Nagios監控系統

  • 驗證:打開瀏覽器輸入

    http://192.168.200.131/nagios/

部署Nagios監控系統
部署Nagios監控系統

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章