nagios

 

   Nagios是一款開源的免費網絡監視工具,能有效監控Windows、Linux和Unix的主機狀態,交換機路由器等網絡設置,打印機等。在系統或服務狀態異常時發出郵件或短信報警第一時間通知網站運維人員,在狀態恢復後發出正常的郵件或短信通知。Nagios可運行在Linux/Unix平臺之上,同時提供一個可選的基於瀏覽器的WEB界面以方便系統管理人員查看網絡狀態,各種系統問題,以及日誌等等。

 Nagios的功能是監控服務和主機,但是他自身並不包括這部分功能,所有的監控、檢測功能都是通過各種插件來完成的。

 啓動Nagios後,它會週期性的自動調用插件去檢測服務器狀態,同時Nagios會維持一個隊列,所有插件返回來的狀態信息都進入隊列,Nagios每次都從隊首開始讀取信息,並進行處理後,把狀態結果通過web顯示出來。

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

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

   nagios-plugins是nagios官方提供的一套插件程序,nagios監控主機的功能其實都是通過執行插件程序來實現的。


nagios.cfg Nagios 主配置文件
resource.cfg 變量定義文件,又稱爲資源文件,在些文件中定義變量,以便由其他配置文件引用,如$USER1$
objects objects 是一個目錄,在此目錄下有很多配置文件模板,用於定義Nagios 對象
objects/commands.cfg 命令定義配置文件,其中定義的命令可以被其他配置文件引用
objects/contacts.cfg 定義聯繫人和聯繫人組的配置文件
objects/localhost.cfg 定義監控本地主機的配置文件
objects/templates.cfg 定義主機和服務的一個模板配置文件,可以在其他配置文件中引用
objects/timeperiods.cfg 定義Nagios 監控時間段的配置文件


監控主機:172.25.85.2  server2.example.com

被監控主機:172.25.85.3 server3.example.com


server2:

添加用戶:
  tar jxf nagios-cn-3.2.3.tar.bz2
       
   yum install gd-devel-2.0.35-11.el6.x86_63.rpm
   groupadd nagcmd
   useradd -M  -d /usr/local/nagios  -G   nagcmd  nagios     (-M 不指定用戶家目錄  -m指定用戶家目錄)
   usermod -G nagcmd apache           ##添加nagcmd用戶組,用以通過web頁面提交外部控制命令
   cd nagios-cn-3.2.0
       
  ./configure  --with-command-group=nagcmd    
   make all
   make install
   make install-init
   make install-commandmode
   make install-config
   make install-webconf                           ##安裝web配置文件

   vim /etc/httpd/conf.d/nagios.conf
wKiom1eiCXOyR_CPAAAQADqTh_w950.png-wh_50
   cat /usr/local/nagios/etc/htpasswd.users

nagiosadmin:gCWSDnqEHR45c

  

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

                                           ##(htpasswd  用於創建和更新儲存用戶名,和用於用戶密碼認證)
 

   cat /usr/local/nagios/etc/htpasswd.users

nagiosadmin:AYGVkVYuX2mDs

     
  /usr/local/nagios/bin/nagios  -v /usr/local/nagios/etc/nagios.cfg       ##檢查配置文件
wKioL1eiCjjgNNaUAABNnPVh2rk996.png-wh_50

 

   /etc/init.d/httpd  start
  /etc/init.d/nagios start

http://172.25.85.2/nagios/

wKiom1eiCseiZev0AABc71Hn7zE170.png-wh_50wKioL1eiCs7SctpiAAMi2H8zjRM429.png-wh_50







2.    server2:
      安裝nagios-plugins
      tar zxf nagios-plugins-1.4.14.tar.gz
      cd nagios-plugins-1.4.14
      yum install  mysql-devel  openssl-devel
     ./configure
wKiom1eiC7bigpPDAABlbBlWYXk413.png-wh_50

      make
      make install
      cd /usr/local/nagios/libexec
      chown nagios.nagios  *  -R

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

     /etc/init.d/nagios  reload

http://172.25.85.2/nagios/
wKioL1eiDG_ByKGJAANTejn4r7g743.png-wh_50



3.server2:

  修改配置文件:
  vim  /usr/local/nagios/etc/nagios.cfg
wKiom1eiDKaS2IOMAABXG0J87lI387.png-wh_50

##註銷掉cfg_file=  這一行

   cd /usr/local/nagios/etc/objects

   cp localhost.cfg  hosts.cfg -p
   vim hosts.cfg
wKioL1eiDSSw-51pAAByR6gjcAM812.png-wh_50

define host{
        use                     linux-server
        host_name               server2.example.com
        alias                   Manager
#       parents                 MainSwitch
        address                 172.25.85.2
        icon_p_w_picpath              server.gif
        statusmap_p_w_picpath         server.gd2
        2d_coords               500,200
        3d_coords               500,200,100
        }
# HOST GROUP DEFINITION
###############################################################################
# Define an optional hostgroup for Linux machines
define hostgroup{
        hostgroup_name  linux-servers ; The name of the hostgroup
        alias           Linux Servers ; Long name of the group
        members         *     ; Comma separated list of hosts that belong to this group
        }







   cp localhost.cfg services.cfg
   chown nagios.nagios services.cfg
   vim services.cfg

wKiom1eiDhHTX_L5AAAwXMkPoKY070.png-wh_50

wKioL1eiDhOAMevAAACV4zXrqno746.png-wh_50

wKiom1eiDhTB9DqTAAChqqzYYT0231.png-wh_50

define servicegroup{
        servicegroup_name 系統負荷檢查
        alias 負荷檢查
        members server2.example.com,進程總數,server2.example.com,登錄用戶數,server2.example.com,根分區,server2.example.com,交換空間利用率
        }
define service{
        use                             local-service         ; Name of service template to use
        host_name                       *
        service_description             PING
        check_command                   check_ping!100.0,20%!500.0,60%
        }
define service{
        use                             local-service         ; Name of service template to use
        host_name                       server2.example.com
        service_description             根分區
        check_command                   check_local_disk!20%!10%!/
        }
define service{
        use                             local-service         ; Name of service template to use
        host_name                       server2.example.com
        service_description             登錄用戶數
        check_command                   check_local_users!20!50
        }
define service{
        use                             local-service         ; Name of service template to use
        host_name                       server2.example.com
        service_description             進程總數
        check_command                   check_local_procs!250!400!RSZDT
        }
define service{
        use                             local-service         ; Name of service template to use
        host_name                       server2.example.com
        service_description             系統負荷
        check_command                   check_local_load!5.0,4.0,3.0!10.0,6.0,4.0

        }

define service{
        use                             local-service         ; Name of service template to use
        host_name                       server2.example.com
        service_description             交換空間利用率
        check_command                   check_local_swap!20!10
        }
define service{
        use                             local-service         ; Name of service template to use
        host_name                       server2.example.com
        service_description             SSH
        check_command                   check_tcp!22!1.0!10.0
        notifications_enabled           0
        }

define service{
        use                             local-service         ; Name of service template to use
        host_name                       server2.example.com
        service_description             HTTP
        check_command                   check_http
        notifications_enabled           0
        }



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

   /etc/init.d/nagios reload
    

   
172.25.85.2/nagios/

wKioL1eiD7HRIn_2AAAiuIWq6x8211.png-wh_50

wKiom1eiD4zw5-pJAAE-dFICzSw213.png-wh_50




  server2:
   cd  /usr/local/nagios/libexec
   ./check_disk -w 20 -c 10
   ./check_disk -w 20 -c 10 -p /


   cd /usr/local/nagios/etc/objects
   vim services.cfg
在定義根分區最後加入:

max_check_attempts              2






4. server3:
  yum install mysql-server -y
  /etc/init.d/mysqld start
  mysql_secure_installation
  mysql -p

mysql> create database nagdb;
mysql> grant select on nagdb.*  to nagios@'172.25.85.2' identified by "redhat";


  server2:
  cd /usr/local/nagios/libexec
  ./check_mysql -H 172.25.85.3 -u nagios -p redhat
 wKioL1eiENTSYvgxAAA6TUYBLdc942.png-wh_50     
  mysql -h 172.25.85.3 -u nagios -predhat      ##可以登陸


  server3:
 /etc/init.d/mysqld stop
 
  server2:
  mysql -h 172.25.85.3 -u nagios -predhat
wKiom1eiES6AnNAbAAAs-aQBwzs727.png-wh_50
 

   server2:
   cd /usr/local/nagios/etc/objects
   vim commands.cfg
wKioL1eiEcPCJpqaAABIyt6lmVk499.png-wh_50

define command{
         command_name    check_mysql
         command_line    $USER1$/check_mysql -H $HOSTADDRESS$   -u $ARG1$ -p  $ARG2$
         }

    

     vim services.cfg
wKiom1eiEfjjWi7KAAA8Nny1EAY461.png-wh_50

最後一行加上:

define service{
        use                             local-service         ; Name of service template to use
        host_name                       server3.example.com
        service_description             MYSQL
        check_command                   check_mysql!nagios!redhat
        notifications_enabled           0
        }

   vim hosts.cfg
添加一個host

wKioL1eiEibwfXFrAABE6GFCkPc431.png-wh_50

define host{
        use                     linux-server
        host_name               server3.example.com
        alias                   Manager
#       parents                 MainSwitch
        address                 172.25.85.3
        icon_p_w_picpath              server.gif
        statusmap_p_w_picpath         server.gd2
        2d_coords               400,100
        3d_coords               400,100,100
        }




  /usr/local/nagios/bin/nagios  -v /usr/local/nagios/etc/nagios.cfg
  /etc/init.d/nagios reload


http://172.25.85.2:/nagios/

wKioL1eiElHgqC6CAAA9_ZLnodA733.png-wh_50


5.  server3:

  tar zxf nrpe-2.15.tar.gz
  tar zxf nagios-plugins-2.1.1.tar.gz
  useradd -M -d /usr/local/nagios  nagios
  cd  /root/nagios-plugins-2.1.1
  yum install openssl-devel   xinetd  -y
  ./configure
wKiom1eiEo7jMrqAAABiTlrDiV0736.png-wh_50
   make
   make install
 
   cd /usr/local/nagios/
   chown nagios.nagios  . -R

   cd /root/nrpe-2.15
  ./configure
   make all
   make install-plugin
   make install-daemon
   make install-daemon-config
   make install-xinetd


  cd /etc/xinetd.d/
  vim nrpe
修改:

only_from       = 172.25.85.2     ##監控主機

  vim /etc/services
在最後添加:

nrpe      5666/tcp

 


  vim /usr/local/nagios/etc/nrpe.cfg
wKioL1eiE5uR5JIDAABg-F335HM276.png-wh_50  

 allowed_hosts=172.25.85.2

    /etc/init.d/xinetd start


   cd /usr/local/nagios/libexec/
   scp check_nrpe  [email protected]:/usr/local/nagios/libexec/



   server2:

   cd /usr/local/nagios/libexec/
   chown nagios.nagios check_nrpe
  ./check_nrpe -H 172.25.85.3                                  ##檢測nrpe是否可用成功顯示nrpe版本號  ./check_nrpe -H 172.25.85.3 -c check_disk         
wKioL1eiHiKBrw2jAAA6xkG8udo998.png-wh_50
 
   cd  /usr/local/nagios/etc/objects
   vim commands.cfg
wKiom1eiE-qxL2RzAABkdThABXQ804.png-wh_50

   define command{
         command_name    check_nrpe
         command_line    $USER1$/check_nrpe -H $HOSTADDRESS$   -c $ARG1$ 
         }



   vim services.cfg

wKiom1eiFErCNUqJAACPfOL92Ww612.png-wh_50

添加在mysql後面:

 define service{
        use                             local-service         ; Name of service template to use
        host_name                       server3.example.com
        service_description             根分區
        check_command                   check_nrpe!check_disk
     }
define service{
        use                             local-service         ; Name of service template to use
        host_name                       server3.example.com
        service_description             登陸用戶數
        check_command                   check_nrpe!check_users
       
        }

   /usr/local/nagios/bin/nagios  -v /usr/local/nagios/etc/nagios.cfg
   /etc/init.d/nagios reload


http://172.25.85.2:/nagios/
wKiom1eiFJXCU6twAACN9tyRJAA158.png-wh_50









6.  虛擬機聯網:

   網橋方式:適合寬帶網絡

   server2:
   yum install mail -y

   ip addr add 172.25.254.185/24 dev eth1
   ip route show  
   route -n
wKioL1eiFPLCnibsAABDLWuKwhA443.png-wh_50  

cat /etc/resolv.conf
nameserver 192.168.11.182                


    物理機:

    ip addr show

wKioL1eiFZThTCV2AACrmuthz0c363.png-wh_50 

    NAT方式:適合無線
    先將虛擬機的ip 改爲動態分配                   ##server2和server3都要修改
    然後修改虛擬機的虛擬網絡接口爲NAT方式

    重啓虛擬機
 


注意:

[重啓虛擬機後兩臺虛擬機的ip 會變化,之前所作的和ip 相關的操作需要重新做。

重啓之後:server2 172.25.85.2  變成了 192.168.122.196

                server3 172.25.85.3  變成了  192.168.122.202]

      server2:
 
    vim /usr/local/nagios/etc/objects/contacts.cfg
wKiom1eiFwLAaOngAAAm3E3JUmQ631.png-wh_50
  



  
   vim /usr/local/nagios/etc/objects/templates.cfg      ##186行

wKiom1eiF57Cpz_ZAAAtXKpcTDk471.png-wh_50


/usr/local/nagios/bin/nagios  -v /usr/local/nagios/etc/nagios.cfg
   /etc/init.d/nagios reload



su - nagios                ##試着給qq郵箱發送郵件,看虛擬機通網了沒

wKioL1eiGCnxKrIcAAAYPFrbBcY188.png-wh_50


登錄郵箱設置白名單:[email protected]

wKiom1eiGE3glU-UAAAO5haSK38194.png-wh_50

  



檢測:
   server3:
   /etc/init.d/mysqld stop



172.25.85.2/nagios/
wKioL1eiF9rie_uOAACEP51h1jo764.png-wh_50



wKioL1eiGHTRK2y4AAAfoB5LHbM383.png-wh_50




7.110雲告警:  ##步驟可參考官網

登陸one!ert->配置-> 選擇配置類

生成了一個key

wKioL1eiGwiCzzbkAACRiggOqEU101.png-wh_50
配置->通知策略->
wKiom1eiGMqCA0ZqAABPrN8GA1U353.png-wh_50

關閉server3上的mysqld

server2:


cd /usr/local/nagios
tar zxf alert-agent-4.1.3.1-linux-x64.tar.gz  -C /usr/local/nagios/libexec

su - nagios

-bash-4.1$ cd  /usr/local/nagios/libexec/alert-agent
-bash-4.1$ cd nagios-plugin/
-bash-4.1$ cp nagios  /usr/local/nagios/libexec/
-bash-4.1$ cp 110monitor.cfg /usr/local/nagios/etc/objects/

cd  /usr/local/nagios/etc/objects

vim contacts.cfg
wKiom1eiGPmhaR4eAAAh2jGscIo022.png-wh_50

 vim 110monitor.cfg
wKioL1eiGT6jL8KsAAAcjlUUXhI754.png-wh_50

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

wKiom1eiGXbw2ExqAABQJyeSa7c287.png-wh_50

date_format=iso8601

/usr/local/nagios/bin/nagios  -v /usr/local/nagios/etc/nagios.cfg
 /etc/init.d/nagios reload

告警:

wKioL1eiHCGikFndAACi74KETTs452.png-wh_50

cd /usr/local/nagios/var
tail -f nagios.log


 

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