Nagios 安裝(資料)

Nagios簡介:

        Nagios是插件式的結構,它自己沒有任何監控功能,全部的監控都是經過插件進行的,所以其是高度模塊化和富於彈性的。Nagios監控的對象可分爲兩類:主機和服務。主機一般指的是物理主機,如服務器、路由器、工做站和打印機等,這裏的主機也能夠是虛擬設備,如xen虛擬出的Linux系統;而服務一般指某個特定的功能,如提供http服務的httpd進程等。而爲了管理上的方便,主機和服務還能夠分別被規劃爲主機組和服務組等。php

        Nagios是一款免費的開源IT基礎設施監控系統,其功能強大,靈活性強,能有效監控 Windows 、Linux、VMware 和 Unix 主機狀態,交換機、路由器等網絡設備的網絡設置等。一旦主機或服務狀態出現異常時,會發出郵件或短信報警第一時間通知 IT 運維人員,在狀態恢復後發出正常的郵件或短信通知。html

         Nagios和Cacti監控的項目一致,能夠監控服務器CPU、內存、硬盤、網絡流量等等,區別是Nagios主要基於Nagios插件監控服務器主機狀態監控,及時發送報警信息,而Cacti是基於rrdtool繪圖經過snmp抓取數據,更偏向網絡流量圖形展現;mysql

        Nagios不監控任何具體數值指標(如操做系統上的進程個數),它僅用四種抽象屬性對被監控對象的狀態進行描述:OK、WARNING, CRITICAL和UNKNOWN。因而,管理員只須要對某種被監控對象的WARNING和CRITICAL狀態的閾值進行關注和定義便可。Nagios經過將WARTING和CRTICAL的閾值傳遞給插件,並由插件負責某具體對象的監控及結果分析,其輸出信息爲狀態信息(OK,WARNING,CRITICAL或UNKOWN)以及一些附加的詳細說明信息。   ios

        監控網絡並排除網絡故障的工具:nagios、Ntop、OpenVAS、OCS、OSSIM等開源監控工具。web

        能夠實現對網絡上的服務器進行全面的監控,包括服務(apache、mysql、ntp、ftp、disk、qmail和http等)的狀態,服務器的狀態等。sql

       Nagios:監控Windows、Linux和Unix的主機狀態和服務、交換機路由器等網絡設置,打印機等。在系統或服務狀態異常時發出郵件或短信報警第一時間通知運維人員,在狀態恢復後發出正常的郵件或短信通知。apache

         Nagios適用於IT基礎設施的監控系統,其功能強大,靈活性強,能有效監控各類操做系統的主機、交換路由設備等;Zabbix提供分佈式系統監視以及網絡監視功能,用於監控網絡上的服務器,服務以及其餘網絡設備狀態的網絡管理系統。centos

       Nagios是一款免費的開源IT基礎設施監控系統,其功能強大,靈活性強,能有效監控 Windows 、Linux、VMware 和 Unix 主機狀態,交換機、路由器等網絡設備的網絡設置等。一旦主機或服務狀態出現異常時,會發出郵件或短信報警第一時間通知 IT 運維人員,在狀態恢復後發出正常的郵件或短信通知。瀏覽器

優缺點分析:優勢是配置靈活、監控項目不少、自動日誌滾動、支持冗餘方式主機監控、報警設置多樣性。缺點是事件控制檯功能較弱、沒法查看歷史數據、插件易用性很差。服務器

Nagios適用於IT基礎設施的監控系統,其功能強大,靈活性強,能有效監控各類操做系統的主機、交換路由設備等;

 

特性
 

由上述說明能夠,Nagios是極富彈性的,其監控功能徹底能夠按照管理員的指望進行。此外,它外提供了對問題的自動響應能力和一個功能強大的通知系統。全部這些功能的實現是基於一個結構明晰的對象定義系統和少數幾個對象類型實現的。


  1)命令(Commands)
 

「命令」用於定義Nagios如何執行某特定的監控工做。它是基於某特定的Nagios插件定義出的一個抽象層,一般包含一組要執行的操做。


  2)時段(Time periods)
 

「時段」用於定義某「操做」能夠執行或不能執行的日期和時間跨度,如工做日內的天天8:00-18:00等;


  3)聯繫人和聯繫人組(Contacts and contact groups)
 

「聯繫人」用於定義某監控事件的通知對象、要通知的信息以及這些接收通知者什麼時候及如何接收通知;一個或多個聯繫人能夠定義爲聯繫人組,而一個聯繫人也能夠屬於多個組;


  4)主機和主機組(host and host groups)
 

「主機」一般指某物理主機,其包括此主機相關的通知信息的接收者(即聯繫人)、如何及什麼時候進行監控的定義。主機也能夠分組,即主機組(host groups),一個主機可同時屬於多個組;


  5)服務(Services)
 

「服務」一般指某主機上可被監控的特定的功能或資源,其包括此服務相關的通知信息的接收者、如何及什麼時候進行監控等。服務也能夠分組,即服務組(Service groups),一個服務可同時屬於多個服務組;

 

相關概念


一、    依賴關係
 

Nagios的強大功能還表如今其成熟的依賴關係系統上。好比,某路由設備故障必然會致使關聯在其上的其它主機沒法被正常訪問,若是不能定義這些設備間的依賴關係,那麼監控系統上必然會出現大量的設備故障信息。而Nagios則經過依賴關係來描述網絡設備的拓撲結構,並可以實如今某設備故障時再也不對依賴於此設備的其它設備進行檢測,從而避免了無謂的故障信息,方便管理員及時定位並排除故障。此外,Nagios的依賴關係還能夠在服務級別上實現,若是某服務依賴於其它服務時,也能實現相似主機依賴關係的功能。


2    宏
 

Nagios還可以使用宏,而且宏的定義在整個Nagios系統中具備一致性。宏是可以用於對象定義中的變量,其值一般依賴於上下文。在「命令」中定義的宏,相對於主機、服務或其它許多參數來講,其值會隨之不一樣。好比,某命令能夠根據向其傳遞的IP地址的不一樣來監控不一樣的主機。


3.3    計劃中宕機
 

Nagios還提供了調度性計劃中的宕機機制,管理員能夠週期性的設定某主機或服務爲計劃中的不可用狀態。這種功能能夠阻止Nagios在調度宕機時段通知任何信息。固然,這也可讓Nagios自動通知管理員該進行主機或服務維護了。


四、    軟狀態和硬狀態(Soft and Hard States)
 

如上所述,Nagios的主要工做是檢測主機或服務的狀態,並將其存儲下來。某一時刻,主機或服務狀態僅能夠是四種可用狀態之一,所以,其狀態可以正確反映主機或服務的實際情況就顯得特別關鍵。爲了不某偶然的臨時性或隨機性問題,Nagios引入了軟狀態和硬狀態。在實際的檢測中,Nagios一旦發現某主機或服務的狀態爲UNKOWN或不一樣於上一次檢測時的狀態,其將會對此主機或服務進行屢次測試以確保此狀態的變更是非偶然性的。具體共要作出幾回測試是能夠配置的,在這個指定次數的測試時段內,Nagios假設此變化後的狀態爲軟件狀態。一旦測試完成後狀態仍然爲新變的狀態時,此狀態就成了硬狀態。

 

相關配置及參數詳解

5.1    Nagios的主配置文件
 

Nagios的主配置文件爲nagios.cfg,其語法很是簡潔,一般#開頭的行爲註釋行,而參數的設置格式爲<parameter>=<value>;其中,有些參數是能夠重複出現的。其中經常使用的參數說明以下:

 

log_file: 設定Nagios的日誌文件;

 

cfg_file: Nagios對象定義的相關文件,此參數可重複使用屢次以指定多個文件;

 

cfg_dir:  設定Nagios對象定義的相關文件所在的目錄,此目錄中的全部文件都會被做爲對象定義的文件;此參數可重複使用屢次以指定多個目錄;

 

resource_file: 設定Nagios附加的宏定義的相關文件;

 

status_file: 設定Nagios存儲全部主機和服務當前狀態信息的文件;

 

status_update_interval: 設定status_file指定的文件中狀態信息的更新頻率;

 

service_check_timeout: 設定服務檢測的超時時間,默認爲60秒;

 

host_check_timeout: 設定主機檢測的超時時間,默認爲30秒;

 

notification_timeout: 設定通知信息發送嘗試的超時時間,默認爲30秒;


5.2    resource_file和宏定義
 

在主配置文件中,參數resource_file用於定義全部用戶變量(即「宏」)的存儲文件,它用於存儲對象定義中的能夠訪問的額外信息,如訪問某服務的密碼等;所以,這些信息一般都是些敏感數據,通常不容許經過Web接口來訪問。此文件中能夠定義的宏可多達32個,它們分別爲$USER1$,$USER2$...$USER32,這些宏通常在check命令中引用。一般狀況下$USER1$用於引用Nagios插件所在目錄這個路徑信息,所以,通常不建議修改其值。

 

Nagios事先定義了許多宏,它們的值一般依賴於其上下文。

 

以下:

 

HOSTNAME: 用於引用host_name指定所定義的主機的主機名;每一個主機的主機名都是惟一的;

 

HOSTADDRESS: 用於引用host對象中的address指令的值,它一般能夠爲IP地址或主機名;

 

HOSTDISPLAYNAME: 用於引用host對象中alias指令的值,用以描述當前主機,即主機的顯示名稱;

 

HOSTSTATE:某主機的當前狀態,爲UP,DOWN,UNREACHABLE三者之一;

 

HOSTGROUPNAMES: 用於引用某主機所屬的全部主機組的簡名,主機組名稱之間以逗號分隔;

 

LASTHOSTCHECK:用於引用某主機上次檢測的時間和日期,Unix時間戳格式;

 

LISTHOSTSTATE:用於引用某主機前一次檢測時的狀態,爲UP,DOWN或UNREACHABLE三者之一;

 

SERVICEDESC: 用於引用對應service對象中的desccription指令的值;

 

SERVICESTATE: 用於引用某服務的當前狀態,爲OK,WARNING,UNKOWN或CRITICAL四者之一;

 

SERVICEGROUPNAMES: 用於引用某服務所屬的全部服務組的簡名,服務組名稱之間以逗號分隔;

 

CONTACTNAME: 用於引用某contact對象中contact_name指令的值;

 

CONTACTALIAS: 用於引用某contact對象中alias指令的值;

 

CONTACTEMAIL: 用於引用某contact對象中email指令的值;

 

CONTACTGROUPNAMES: 用於引用某contact所屬的全部contact組的簡名,contact組名稱之間以逗號分隔;

引用方式根據對象類型的不一樣也有所不一樣,具體以下:

 

   $_HOST<variable>$ – 引用在主機對象中定義的指令的值;

 

   $_SERVICE<variable>$ – 引用在服務對象中定義的指令的值;

 

   $_CONTACT<variable>$ – 引用在聯繫人對象中定義的指令的值;

 

 

Nagios的功能特徵包括:


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

 

Nagios和cacti的區別:

cacti主要是監控流量,服務器狀態頁面展現;nagios主要監控服務,郵件及短信報警燈,也有簡單的流量控制界面,兩者綜合使用效果更好,

Nagios監控客戶端須要藉助Nagios插件及NRPE軟件來實現,NRPE做爲中間的代理程序,接受Nagios服務端發來的請求,另外一端在遠程主機上指定的相關的監控信息。

                                         Nagios原理圖

注意:左邊是客戶端,,右邊是服務端。

Database不存放客戶監控數據

 

Ntop:監控網絡流量,流量採集技術有如下幾個:

       1.sniffer:採集的信息最全面,可徹底複製網絡的數據報文。

       2.SNMP:是一種主動的採集方式,取得的數據只包含端口層數據,      對於僞造端口地址的蠕蟲病毒無能爲力。

3.Netflow :統計全部網絡報文,對網絡設備性能影響較大。

4.sFlow:採用採樣的方式,經過設定必定的採樣率,進行數據捕獲,對網絡設備影響很小。

Nagios的管理模式:

分佈-集中的管理模式,在nagios服務器上安裝主程序,在被監控主機上安裝nagios代理程序,經過nagios主程序nagios代理程序之間的通訊,監控對象的狀態。

nagios經過nrpe插件來遠程管理服務的工做過程

  • Nagios執行安裝在它裏面的check_nrpe插件,並告訴check_nrpe去檢測哪些服務。
  • 經過ssl,check_nrpe鏈接遠端機器上的NRPE daemon。
  • NRPE運行本地的各類插件去檢測本地服務器和狀態(check_disk,...etc)。
  • NRPE把檢測的結果傳給主機端的check_nrpe,check_nrpe再把結果送到nagios狀態隊列中。
  • Nagios依次讀取隊列中的信息,再把結果顯示出來。

nagios的四種監控狀態
Nagios能夠識別四種狀態返回信息。0(OK)表示狀態正常(綠色顯示)

  • WARNING)表示出現警告(黃色),
  • (CRITICAL)表示出現很是嚴重錯誤(紅色),
  • (UNKNOWN)表示未知錯誤(深黃色),nagios根據插件返回來的值來判斷監控對象的狀態,並經過web顯示出來,以供管理員即時發現故障。
     

安裝方法1

注意:Nagios須要LAMP環境,若是沒有就安裝,,客戶端不安裝Nagios,服務端安裝Nagios

Nagios配置文件

在centos 6中安裝

【root@localhost ~】# yum install -y httpd mysqld mysqld-server mysql-devel php php-devel php-mysql 

在centos 7中安裝

【root@localhost ~】# yum install -y httpd mariadb mariadb-server mariadb-devel php php-devel php-mysql 

 

wget -c http://nchc.dl.sourceforge..net/projects/nagios/nrpe-2.x/nrpe-2.14/nrpe-2.14.tar.gz

wget -c http://down1.chinaunix.net/distfiles/nagios-plugins-1.4.14.tar.gz

在./configure以前,建立nagios用戶(的同時也會自動建立組),#useradd nagios

 

注意:make install-webconf     生成nagios.conf配置文件,下面是nagios.conf配置文件內容

【root@localhost nagios】# cd /usr/local/ngios/ 

【root@localhost nagios】# ls

【root@localhost nagios】# cd share/

【root@localhost share】# ls

【root@localhost share】#cd /etc/httpd/conf.d

【root@localhost share】# ls

重啓apache

【root@localhost share】# /etc/init.d/httpd restart

啓動失敗

在瀏覽器上面輸入IP:192.168.226.130/nagios/

建立用戶名和密碼

/etc/init.d/nagios restart

 

 

在clinet客戶端安裝插件

 

 

安裝2

1.依賴套件安裝

[root@localhost]# cd /usr/local/src
[root@localhost src]# yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel libpng libpng-devel libjpeg libjpeg-devel zlib zlib-devel httpd php php-devel

2.建立nagios用戶以及用戶組

[root@localhost src]# useradd -s /sbin/nologin nagios
[root@localhost src]# mkdir /usr/local/nagios
[root@localhost src]# chown -R nagios.nagios /usr/local/nagios

安裝完成後在/usr/local/nagios裏面生成上圖看到的幾個目錄,分別是 var日誌文件,bin執行程序,etc配置文件,sbin, share libexec網頁的目錄。至此安裝成功。

 

3.編譯安裝nagios

[root@localhost src]# wget http://iweb.dl.sourceforge.net/project/nagios/nagios-4.x/nagios-4.1.1/nagios-4.1.1.tar.gz

解壓
[root@localhost src]# tar zxvf nagios-4.1.1.tar.gz
[root@localhost nagios-4.1.1]# cd nagios-4.1.1

#指定安裝目錄
[root@localhost nagios-4.1.1]# ./configure --prefix=/usr/local/nagios


[root@localhost nagios-4.1.1]#  make all              #編譯

 
 #安裝主程序和CGI和html文件
[root@localhost nagios-4.1.1]#  make install            # 安裝 

 
 #建立啓動腳本
[root@localhost nagios-4.1.1]#  make install-init         #把nagios作成一個運行腳本,是nagios隨系統開機時啓動
 
 #配置目錄權限
[root@localhost nagios-4.1.1]#  make install-commandmode      #給外部命令訪問配置權限
 
 #安裝示例配置文件
[root@localhost nagios-4.1.1]# make install-config              把配置文件樣例複製到nagios的安裝目錄下
 chkconfig --add nagios
 chkconfig --level 35 nagios on
 chkconfig --list nagios

4.目錄說明

切換目錄到安裝路徑(這裏是/usr/local/nagios),看是否存在etc、bin、sbin、share、var 這五個目錄,若是存在則能夠代表程序被正確的安裝到系統了。Nagios 各個目錄用途說明以下:
bin Nagios 可執行程序所在目錄
etc Nagios 配置文件所在目錄
sbin Nagios CGI 文件所在目錄,也就是執行外部命令所需文件所在的目錄
share Nagios網頁文件所在的目錄
libexec Nagios 外部插件所在目錄
var Nagios 日誌文件、lock 等文件所在的目錄
var/archives Nagios 日誌自動歸檔目錄
var/rw 用來存放外部命令文件的目錄

5.插件安裝

nagios自己並無監控的功能,全部的監控是由插件完成的,插件將監控的結果返回給nagios,nagios分析這些結果,以web的方式展示給咱們,同時提供相應的報警功能

[root@localhost src]#  wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.16.tar.gz


解壓
[root@localhost src]# tar zxvf nagios-plugins-1.4.16.tar.gz
[root@localhost src]# cd nagios-plugins-1.4.16


編譯安裝
[root@localhost src]# ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
[root@localhost src]# make && make install

 

安裝完成後,在/usr/local/nagios目錄下生成插件文件libexec,nagios全部的插件都會在這個目錄下。

修改配置文件/usr/local/apache/conf/httpd.conf

找到以下兩行

增長以下兩個代碼段

Apache配置文件改完後,使用命令htpasswd給nagiosadmin用戶設置密碼(我設置爲123456)

 

檢查配置文件有沒有問題

顯示以下  則說明沒有問題

在客戶端瀏覽器輸入:http://IP/nagios.看到以下效果。則個人nagios服務已經安裝成功

 

 

 

檢查nagios的配置是否正確:

/usr/local/nagios/bin/nagios  -v  /usr/local/nagios/etc/nagios.cfg 若沒有錯誤,就能夠啓動nagios了。

nagios啓動的方式有兩種:

l /usr/local/nagios/bin/nagios  -d  /usr/local/nagios/etc/nagios.cfg

l /etc/init.d/nagios start

 

常見問題:

一、[root@server34 nagios-cn-3.2.3]# ./configure

錯誤:*** GD, PNG, and/or JPEG libraries could not be located... *********

解決:須要安裝gd-devel:

二、

wKioL1m6ZVizyXNHAAA4ERPfBLI449.png

其實它是要製做目標文件/include/locations.h,這個是頭文件,但是這個頭文件須要broker.o文件

這個文件是由perl安裝包提供的,你能夠先執行下面命令安裝perl,而後再從新./configure一下,再make all就沒有問題啦

yum install perl -y

yum install perl -y

# make install

# make install-init

# make install-commandmode

# make install-config

# chkconfig --add nagios

# chkconfig --level 35 nagios on

# chkconfig --list nagios

 

三、

wKiom1m6ZZfwdAsaAAGm5ly6WE8708.png

則在編譯時入加 --with-included-apr 便可解決。

四、

 

 

參考連接:https://my.oschina.net/wdos/blog/73117

 

連接:

nagios監控三部曲之——nagios的安裝與配置(1)  : http://blog.51cto.com/dl528888/763032

nagios監控三部曲之——爲何nagios不能發送報警郵件(2)   :  http://blog.51cto.com/dl528888/763079

nagios監控三部曲之——nagios實現飛信報警(3)   :  http://blog.51cto.com/dl528888/770684

http://blog.51cto.com/izhouyu/1965409

nagios論壇 :http://www.cnyunwei.com/forum-60-1.html

Nagios 3 Enterprise Network Monitoring :http://club.topsage.com/thread-242245-1-1.html

 

Building a Monitoring Infrastructure with Nagios : http://club.topsage.com/thread-242244-1-1.html

Network Management with Nagios : http://club.topsage.com/thread-242243-1-1.html

Nagios: System and Network Monitoring :http://club.topsage.com/thread-242242-1-1.html

Nagios-超詳細配置,監控必備,不看絕對損失   : https://mp.weixin.qq.com/s/0q7Qw4pfCX87l76sVmF1gQ
Apress Pro Nagios 2.0 :http://club.topsage.com/thread-242241-1-1.html

nagios監控磁盤分區使用    :  http://blog.chinaunix.net/uid-25266990-id-108070.html

Nagios解決libraries: libltdl.so.3問題   :  http://blog.chinaunix.net/uid-25266990-id-2485793.html

nagios 客戶端安裝配置    :   http://blog.chinaunix.net/uid-25266990-id-2422661.html

使用pnp4nagios實現Naigos服務圖表   :   http://blog.chinaunix.net/uid-25266990-id-3437195.html

使用NDOUtils將Nagios監控信息存入Mysql   :  http://blog.chinaunix.net/uid-25266990-id-3417451.html

nagios配置監控的一些思路和工做流程  :  http://blog.51cto.com/xiaoluoge/1587997

nagios一鍵安裝腳本  :  http://blog.51cto.com/xiaoluoge/1587079

Nagios&Cacti              : Nagios&Cacti

原  CentOS6.6下的Nagios簡單安裝   :   https://blog.csdn.net/u012402276/article/details/49427187

原  CentOS6.6下的Nagios安裝配置詳解(一)   :   https://blog.csdn.net/u012402276/article/details/49640373

原  CentOS6.6下的Nagios安裝配置詳解(二)    :  https://blog.csdn.net/u012402276/article/details/49640551

原  CentOS6.6下的Nagio安裝配置詳解(三)   :  https://blog.csdn.net/u012402276/article/details/49640755

原  Nagios排錯集合     :   https://blog.csdn.net/u012402276/article/details/49684163

Nagios搭建完整記錄--田逸老師nagios筆記補充完整版      :  http://blog.51cto.com/zhouxuguang/510816

nagios報錯:./stdio.h:456:1: error: 'gets' undeclared here (not in a function) 薦         :        http://blog.51cto.com/ityunwei2017/1893212

nagios經過微信告警(無限制告警條數) 薦          :         http://blog.51cto.com/ityunwei2017/1891946

Nagios監控Redis           : http://blog.51cto.com/ityunwei2017/1845178

Nagios監控Mysql       :           http://blog.51cto.com/ityunwei2017/1843015

Nagios調用Python程序控制微信公衆平臺發佈報警信息             :        http://blog.51cto.com/ityunwei2017/1775702

Nagios監控Dell服務器硬件狀態           :       http://blog.51cto.com/ityunwei2017/1766745

Nagios監控ESXI主機系統、硬件、nagios日誌文件時間格式轉換     :      http://blog.51cto.com/ityunwei2017/1755319

 

運維監控利器Nagios:概念、結構和功能     :https://www.ixdba.net/archives/2012/06/142.htm

運維監控利器Nagios之:安裝nagios        :https://www.ixdba.net/archives/2012/06/144.htm

運維監控利器Nagios之:nagios配置詳解   :      https://www.ixdba.net/archives/2012/06/146.htm

運維監控利器Nagios之:Nagios的平常維護和管理   :      https://www.ixdba.net/archives/2012/06/148.htm

 

 

 

 

企業監控系統 Nagios+Centreon 簡介 : https://mp.weixin.qq.com/s/Q3jcHFrzXrzPOKKOqQXiuA

 

Nagios 可視化指南 : https://mp.weixin.qq.com/s/gcU1j_BIFgXxeGciSS73xA

相關文章
相關標籤/搜索