Linux監控系統之Nagios

Linux監控系統之Nagios

Nagios工做原理

Nagios的功能是監控服務和主機,可是其自身並不包括這部分功能,全部的監控、檢測功能都是聽過各類插件去完成的。在啓動Nagios後,它會週期性地去自動調用插件去檢測服務器狀態,同時Nagios會維持一個隊列,全部插件返回的狀態信息都進入隊列,Nagios每次都會將從隊首讀取信息,進行處理後,再將狀態結果經過web顯示出來。mysql

Nagios模式

被動模式:就如同上圖所顯示的那樣,客戶端起nrpe進程,服務端經過check_nrpe插件向客戶端發送命令,客戶端根據服務端的指示來調用相應的插件,插件能夠獲取到本機的相關信息,並把獲取到的結果發送給服務端。由於須要調用客戶端的插件去等帶客戶端返回的信息,因此叫作被動模式linux

主動模式:主動模式不須要調用客戶端的插件,而是經過本身的插件主動去探測客戶端的相關信息。
那麼,由於主動模式和被動模式的區別這兩種模式所擅長監控的服務也是不一樣的。ios

Nagios功能

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

試驗環境

角色 IP地址
監控主機 192.168.58.146
被監控主機 192.168.58.149

實驗實施

首先咱們須要搭建LAMP服務,這個前面已經介紹過,這裏就很少加贅述web

安裝Nagios所須要的依賴包sql

[root@localhost ~]# yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel

添加用於管理Nagios的進程用戶apache

[root@localhost ~]# useradd -s /sbin/nologin nagios

建立用於安裝Nagios的目錄vim

[root@localhost ~]# mkdir /usr/local/nagios

改變Nagios安裝目錄的屬主和屬組windows

[root@localhost ~]# chown -R nagios.nagios /usr/local/nagios

下面進行編譯安裝Nagios服務器

[root@localhost ~]# tar xf nagios-4.0.1.tar.gz -C /opt/
#將安裝包解壓到/opt目錄下面
[root@localhost ~]# cd /opt/nagios-4.0.1/
#切換至解壓路徑下
[root@localhost nagios-4.0.1]# ./configure --prefix=/usr/local/nagios
#配置Nagios安裝路徑
[root@localhost nagios-4.0.1]# make all
因爲nagios分不少單獨的文件,因此使用make all來編譯全部的的單獨的文件
[root@localhost nagios-4.0.1]# make install
#這是編譯安裝主程序包括CGI和HTML文件
[root@localhost nagios-4.0.1]# make install-init
#編譯安裝一些初始化腳本
[root@localhost nagios-4.0.1]# make install-commandmode
#這是爲外部命令文件所在的目錄安裝和配置權限
[root@localhost nagios-4.0.1]# make install-config
#這是安裝一些配置的模板文件,主要在/usr/local/nagios/etc目錄下面
[root@localhost nagios-4.0.1]# chkconfig --add /etc/rc.d/init.d/nagios
#將nagios添加到chkconfig系統管理中
[root@localhost nagios-4.0.1]# chkconfig --level 35 nagios on
#設置nagios在35級別開啓自啓動

Linux監控系統之Nagios
這時候咱們能夠去/usr/local/nagios/目錄下查看是否生成相關文件目錄網絡

[root@localhost nagios-4.0.1]# ls /usr/local/nagios/
bin  etc  libexec  sbin  share  var

安裝nagios-plugins服務

[root@localhost ~]# tar xf nagios-plugins-1.5.tar.gz -C /opt/
[root@localhost ~]# cd /opt/nagios-plugins-1.5
[root@localhost nagios-plugins-1.5]#  ./configure --prefix=/usr/local/nagios
#將它安裝到nagios目錄下
[root@localhost nagios-plugins-1.5]# make && make install
#編譯安裝

修改apache服務的配置文件

[root@localhost ~]# vim /etc/httpd.conf

Linux監控系統之Nagios
Linux監控系統之Nagios
Linux監控系統之Nagios
建立httpd帳戶驗證文件

[root@localhost ~]# htpasswd -c /usr/local/nagios/etc/htpasswd jack
[root@localhost ~]# cat /usr/local/nagios/etc/htpasswd 
jack:$apr1$cTieBr/D$vWomztP4eURmUTxxv1WFv0
#能夠看到咱們添加的帳戶以及密碼

修改nagios配置文件,配置文件通常在/usr/local/nagios/etc/objects下面

  • templates.cfi文件

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

[root@localhost etc]# cd /usr/local/nagios/etc/objects/
[root@localhost objects]# ls
commands.cfg  hosts.cfg      printer.cfg   switch.cfg     timeperiods.cfg
contacts.cfg  localhost.cfg  services.cfg  templates.cfg  windows.cfg
[root@localhost ~]# sed -i 'contact_groups/s/admins/ts/g' /usr/local/nagios/etc/objects/templates.cfg

Linux監控系統之Nagios

  • resource.cfg文件

resource.cfg是nagios的變量定義文件通常無需更改

  • commands.cfg文件

此文件默認是存在的,無需修改便可使用,固然若是有新的命令須要加入時,在此文件進行添加便可。

  • hosts.cfg文件

此文件默認不存在,須要手動建立,hosts.cfg主要用來指定被監控的主機地址以及相關屬性信息。

[root@localhost objects]# vim hosts.cfg 

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

用來監控本機 通常無需更改

  • windows.cfg文件

用來監控windows 這裏無需使用

  • services.cfg文件

此文件默認也不存在,須要手動建立主要用於定義監控的服務和主機資源。

[root@localhost objects]# vim services.cfg

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

contacts.cfg是一個定義聯繫人和聯繫人組的配置文件。

[root@localhost objects]# vim contacts.cfg 

define contact{
        contact_name                    jack#聯繫人的名稱,這個地方不要有空格
        use                             generic-contact#引用generic-contact的屬性信息,其中「generic-contact」在templates.cfg文件中進行定義
        alias                           Nagios Admin
        email                           admin@123.com
        }
define contactgroup{
        contactgroup_name       ts#聯繫人組的名稱,一樣不能空格
        alias                   Technical Support#聯繫人組描述
        members                 jack#聯繫人組成員,其中「jack」就是上面定義的聯繫人,若是有多個聯繫人則以逗號相隔
        }
  • cgi.cfg文件

此文件用來控制相關cgi腳本
因爲nagios的web監控界面驗證用戶爲jack,因此只需在cgi.cfg文件中添加此用戶的執行權限。

[root@localhost objects]# cd ../
[root@localhost etc]# ls
cgi.cfg  htpasswd  nagios.cfg  objects  resource.cfg
[root@localhost etc]# vim 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
  • 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對外部命令檢測的時間間隔

都配置完了咱們能夠經過相關命令進行檢測。

[root@promote objects]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

若是出現下面迴應,說明配置成功。
Linux監控系統之Nagios
最後開啓nagios服務

[root@localhost ~]# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

重啓mysql和httpd服務,進行網頁測試訪問http://192.168.58.146/nagios

Linux監控系統之Nagios
Linux監控系統之Nagios
Linux監控系統之Nagios

相關文章
相關標籤/搜索