監控系統-nagios

Nagios簡介php

  Nagios是一款開源的電腦系統和網絡監視工具,能有效監控Windows、Linux和Unix的主機狀態,交換機路由器等網絡設備,打印機等。在系統或服務狀態異常發出郵件或短信報警第一時間通知網站運維人員,在狀態恢復後發出正常的郵件或者短信通知。python

  Nagios原名爲:NetSaint,由Ethan Galstad開發並維護至今。NAGIOS是一個縮寫形式。Nagios被開發在Linux下使用。可是在Unix下也工做的很是好。ios

主要功能:  c++

  • 網絡服務監控(SMTP,POP3,HTTP,NNTP,ICMP,SNMP,FTP,SSH)
  • 主機資源監控(CPU load,disk usage,system logs),也包括Windows主機(使用NSCLient+plugin)
  • 能夠指定本身編寫的Plugin經過網絡收集數據來監控任何狀況(溫度,警告。。。)
  • 能夠經過配置Nagios遠程執行插件,遠程執行腳本
  • 遠程監控支持ssh或ssl加通道方式進行監控
  • 簡單的plugin設計容許用戶很容易的開發本身須要的檢查服務,支持多開發語言(shell script,c++,Perl,Ruby,python,PHP,c#等)
  • 包含不少圖形化數據plugins(Nagiosgraph,Nagiosgrapher,PNP4Nagios等)
  • 可並行服務檢查
  • 可以定義網絡主機的層次,容許逐級檢查,就是從父主機開始向下檢查
  • 當服務或主機出現問題時發出通告,能夠經過email,pager,sms或任意用戶自定義的plugin進行通知
  • 可以自定義事件處理機制從新激活出問題的服務或主機
  • 自動日誌循環
  • 支持冗餘監控
  • 包括web界面能夠查看當前網絡狀態,通知,問題歷史,日誌文件等。

Nagios監控流程

Nagios工做原理 web

  Nagios的功能是監控服務和主機,可是他自身並不包括這部分功能,全部的監控,檢測功能都是經過各類插件來完成的。shell

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

  Nagios提供了許多插件,利用這些插件能夠方便的監控不少服務狀態。按章完成後,在Nagios主目錄下的/libexec裏放有Nagios自帶的可使用的全部插件,如:check_disk是檢查磁盤空間的插件,check_load是檢查CPU負載的,等等。每個插件能夠經過運行./check_xxx_ -h 來查看其使用方法和功能。apache

  Nagios能夠識別四種狀態返回信息,即0(ok)表示狀態正常/綠色,1(Warning)表示出現警告/黃色,2(Critical)表示出現嚴重錯誤/紅色,3(Unknown)表示未知錯誤/深黃色。Nagios根據插件返回來的值,來判斷監控對象的狀態,並經過web顯示出來,以供管理員及時發現故障。c#

   再說報警功能,若是監控系統發現問題不能報警那就沒有意義了,因此報警也是Nagios很重要的功能之一。可是,一樣的,Nagios自身也沒有報警部分 的代碼,甚至沒有插件,而是交給用戶或者其餘相關開源項目組去完成的。centos

  Nagios安裝,是指基本平臺,也就是Nagios軟件包的安裝,它是監控體系的框架,也是全部監控的基礎。

  打開Nagios的官方文檔,會發現Nagios基本上沒有什麼依賴包,只要求系統是Linux或者其餘Nagios支持的系統。㘝若是你沒有安裝Apache(HTTP服務),那麼你就沒有那麼直觀的界面來查看監控信息了,因此Apache姑且算是一個前提條件。關於Apache的安裝,網上有不少,安裝完看看是否正常運行就能夠了。

  知道Nagios是如何經過插件來管理服務器對象後,如今開始研究它是如何管理遠程服務器對象的。Nagios經過週期性的運行它來得到遠端服務器的各類狀態信息。他們之間的關係以下圖所示:

NSCA:Nagios service check acceptor
NDOUtils:從一個或多個Nagios實例導出當前和歷史數據到MySQL數據庫。

Nagios經過NRPE來遠程管理服務

1.Nagios執行安裝在它裏面的check_nrpe插件,並告訴check_nrpe去檢測那些服務。
2.經過SSL,check_nrpe連接遠端機子上的NRPE 的deamon
3.NRPE 運行本地的各類插件去檢測本地的服務和狀態(check...disk...etc)
4.最後,NRPE把檢測的結果傳給主機端的check_nrpe,check_nrpe再把結果送到Nagios狀態隊列中。
5.Nagios依次讀物隊列中的信息,再把結果顯示出來。

Nagios基本安裝

 host1.zyg.com Nagios-Server 192.168.5.101 Apache、Pho、Nagios、nagios-plugins

 host2.zyg.com Nagios-Linux    192.168.5.102 nagios-plugin、nrpe

Server 安裝了Nagios軟件,對監控的數據作處理,而且提供web界面查看和管理。固然也能夠對本機自身的信息進行監控。

Client 安裝了NRPE等客戶端,根據監控機的請求執行監控,而後將結果回傳給監控機。

 

[root@localhost ~]# yum install -y wget httpd php gcc glibc glibc-common gd gd-devel make net-snmp unzip openssl-devel
[root@localhost ~]# 
==============================================================================================================================================
 Package                                架構                      版本                                       源                          大小
==============================================================================================================================================
正在安裝:
 gd-devel                               x86_64                    2.0.35-26.el7                              base                        79 k
 httpd                                  x86_64                    2.4.6-80.el7.centos.1                      updates                    2.7 M
 net-snmp                               x86_64                    1:5.7.2-33.el7_5.2                         updates                    330 k
 php                                    x86_64                    5.4.16-45.el7                              base                       1.4 M
爲依賴而安裝:
 httpd-tools                            x86_64                    2.4.6-80.el7.centos.1                      updates                     90 k
 libXpm-devel                           x86_64                    3.5.12-1.el7                               base                        36 k
 libjpeg-turbo-devel                    x86_64                    1.2.90-5.el7                               base                        98 k
 libpng-devel                           x86_64                    2:1.5.13-7.el7_2                           base                       122 k
 libzip                                 x86_64                    0.10.1-8.el7                               base                        48 k
 mailcap                                noarch                    2.1.41-2.el7                               base                        31 k
 net-snmp-agent-libs                    x86_64                    1:5.7.2-33.el7_5.2                         updates                    705 k
 php-cli                                x86_64                    5.4.16-45.el7                              base                       2.7 M
 php-common                             x86_64                    5.4.16-45.el7                              base                       565 k

事務概要
==============================================================================================================================================
安裝  4 軟件包 (+9 依賴軟件包)
添加一個測試帳戶
[root@localhost ~]# useradd nagios [root@localhost ~]# groupadd nagcmd [root@localhost ~]# usermod -a -G nagcmd nagios [root@localhost ~]# usermod -a -G nagios,nagcmd apache [root@localhost ~]#

而後按照網上的方法進行安裝便可,安裝完以後能夠經過web界面進行訪問

。。。。

安裝出現了一點問題,無法測試了。下邊的內容基本都是一些理論內容,從各個文檔摘抄的

配置Nagios

Nagios主要用於監控一臺或者多臺本地主機及遠程的各類信息,包括本機資源以及對外的服務等。默認的Nagios配置沒有任何監控內容,僅僅是一些模板文件。若要讓Nagio提供服務,就必需要修改配置文件。增長要監控的主機和服務。

配置文件之間的關係

  在Nagios的配置過程當中涉及到的幾個定義有:主機、主機組、服務、服務組、聯繫人、聯繫人組、監控時間、監控命令等,從這些定義能夠看出,Nagios各個配置文件之間是互爲關聯,彼此引用的。

  成功配置出一臺Nagios監控系統,必需要弄清楚每一個配置文件之間依賴於被依賴的關係,最重要的有四點:

  1. 定義監控那些主機、主機組、服務和服務組
  2. 定義這個監控要用什麼命令實現
  3. 定義監控的時間段
  4. 定義主機或服務出現問題時要通知的聯繫人和聯繫人組

  爲了能更清楚的說明問題,同時也爲了維護方便,建議將Nagios各個定義對象建立獨立的配置文件:

  • 建立hosts.cfg文件來定義主機和主機組
  • 建立services.cfg文件來定義服務
  • 用默認的contacts.cfg文件來定義聯繫人和聯繫人組
  • 用默認的commands.cfg文件來定義命令
  • 用默認的timeperiods.cfg文件來定義監控時間段
  • 用默認的templates.cfg文件做爲資源引用文件

配置文件的詳細介紹。。。。

 

剩下的用到了再換個服務器測試。線上服務器不敢隨便亂來。。。

 

有問題歡迎討論。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相關文章
相關標籤/搜索