分佈式監控告警平臺Centreon快速使用

1、 Centreon概述

Centreon是一款功能強大的分佈式IT監控系統,它經過第三方組件能夠實現對網絡、操做系統和應用程序的監控:首先,它是開源的,咱們能夠無償使用它;其次,它的底層採用nagios做爲監控軟件,同時nagios經過ndoutil模塊將監控到的數據定時寫入數據庫中,而Centreon實時從數據庫讀取該數據並經過Web界面展示監控數據;,最後,咱們能夠經過Centreon管理和配置nagios,或者說Centreon就是nagios的一個管理配置工具,經過Centreon提供的Web配置界面,能夠輕鬆完成nagios的各類繁瑣配置。mysql

此外,Centreon還支持NRPE、SNMP、NSClient等插件,能夠經過這些插件構建分佈式的監控報警系統。ios

2、 Centreon的結構

一個典型的Centreon監控系統通常有六大部分組成,分別是Centreon Web、centengine、Centreon Broker SQ、Centreon Broker RRD、centcore和cbmod,下面重點看看每一個組成部分是如何協調工做的,以下圖所示。web

對上圖的結構介紹以下:sql

Centreon Web界面是基於Apache Web服務器,用來配置和展現。
centengine是Centreon的底層監控引擎,主要完成監控報警系統所需的各項功能,是Centreon監控系統的核心。另外,Centreon還支持Nagios、Icinga等監控引擎。這裏介紹官方的centengine監控引擎。
Centreon Broker SQL將信息存儲到MariaDB數據庫,並將其轉發給Centreon Broker RRD。
Centreon Broker RRD使用數據生成和更新RRD文件,以顯示狀態、性能圖。
centcore主要用於centreon的分佈式監控系統中,在系統中centcore是一個基於perl的守護進程,主要負責中心服務器(central server)和擴展節點(pollers)間的通訊和數據同步等操做,例如centcore能夠在中心服務器上執行對遠程擴展節點上centengine服務的啓動、關閉和重啓操做,還能夠運行、更新擴展節點上的配置文件。
cbmod是將centengine與數據庫進行鏈接的工具,它能夠將centengine的實時狀態寫入數據庫,以供其餘程序去調用,最終能夠實如今一個控制檯上完成全部擴展節點的數據入庫操做。shell

3、安裝Centreon監控系統

Centreon的安裝有必定的複雜性,在安裝上有ISO鏡像安裝、VM虛擬機安裝、源碼編譯安裝和yum源安裝四種方式,源碼編譯安裝較複雜,出錯概率也較高,所以這裏推薦採用ISO鏡像安裝方式進行安裝。數據庫

https://download.centreon.com/ 下載須要的版本便可,這裏下載iso鏡像,使用最新的centreon-18.10-5.el7.x86_64版本。將下載下來的鏡像克隆成光盤,或者直接在虛擬機下以iso模式進行引導,便可開始安裝系統,其實這個iso鏡像就是一個centos操做系統鏡像,只不過系統中集成了centreon的安裝環境和安裝包,只要將操做系統安裝完成,那麼centreon也就安裝好了,能夠直接使用,這是最簡單的一種安裝方式。apache

下面簡單說下centreon的iso鏡像安裝過程。centos

將iso刻錄爲光盤或者U盤,而後引導,進行安裝,首先進入第一步,以下圖所示:瀏覽器

接着,選擇一種語言,以下圖所示:bash

語言選擇默認英文便可,而後點擊「Continue」進入下一步,以下圖所示:

在這個主界面下,能夠對安裝系統進行各類設置,這裏對安裝類型要進行選擇,點擊「Installation type」,進入以下界面:

這裏有四個選項供選擇,分別是:

Central with database:表示安裝Centreon(Web界面和數據庫),監控引擎和代理。也就是徹底安裝。
Central without database:安裝Centreon(僅限Web界面),監控引擎和代理。
poller:僅安裝輪詢器(僅限監視引擎和代理)。
database only:僅僅安裝數據庫服務器。

這裏選擇第一個便可,而後點擊左上角的「Done」便可返回主界面,接着開始對磁盤進行分區設置,以下圖所示:

點擊「INSTALLATION DESTINATION」進行磁盤分區設置,以下圖所示:

這裏選擇「 I will configure partitioning」,也就是自定義分區,而後點擊左上角的「Done」進入下一步,以下圖所示:

在這個自定義分區界面中,建議按照上圖的設置進行分區。分區完成點擊左上角的「Done」進入下一步,

根據提示,選擇「Accept Changes」返回主界面,接着,在主界面選擇「NETWORK &HOST NAME」進行主機名和網絡配置,網絡配置選擇手動配置靜態IP,以下圖所示:

網絡配置完成,保存退出,返回網絡和主機名配置界面,以下圖所示:

網絡配置完成後,點擊左上角的「Done」返回主界面,最後選擇主界面下的「DATE & TIME」進入時間和時區配置,以下圖所示:

時區選擇亞洲/上海便可,而後點擊左上角的「Done」返回主界面,至此,系統安裝配置所有完成,以下圖所示:

點擊「Begin Installation」開始安裝系統。

系統安裝完成後,系統裏面集成的centreon服務會自動啓動,接着就能夠初始化centreon配置了,打開瀏覽器訪問centreon服務地址:

經過URL登陸Centreon Web界面:http:// [SERVER_IP] /centreon。將顯示Centreon設置嚮導。以下圖所示:

這是centreon歡迎界面,單擊「 next」,以下圖所示:

繼續單擊「 next」,以下圖所示:

這些默認的配置都無需修改,直接單擊「 next」,以下圖所示:

繼續單擊「 next」,以下圖所示:

這裏是設置centreon管理員用戶admin的密碼和用戶信息,手動輸入後,單擊「next」,以下圖所示:

這裏只須要輸入數據庫用戶centreon的密碼便可,centreon用戶會自動建立。手動輸入後,單擊「next」,以下圖所示:

單擊「 next」,以下圖所示:

單擊「install」,安裝模塊和插件,以下圖所示:

單擊「 next」,以下圖所示:

安裝完成。單擊Finish。

4、配置Centreon監控系統

配置Centreon並不複雜,全部操做都能在web管理界面完成,若是對nagios的配置過程比較瞭解,那麼配置Centreon就變得很是簡單。下面先來熟悉一下Nagios中配置文件之間的關係。

在Nagios的配置過程當中涉及幾個定義:主機、主機組、主機模板,服務、服務組、服務模板,聯繫人、聯繫人組、監控時間和監控命令等,從這些定義能夠看出,Nagios的各個配置文件之間是互爲關聯,彼此引用的。成功配置一臺Nagios監控系統,必需要弄清楚每一個配置文件之間依賴與被依賴的關係,其中,最重要的有四點:第一要定義監控哪些主機、主機組、服務和服務組;第二要定義這個監控要經過什麼命令實現;第三要定義監控的時間段;最後要定義主機或服務出現問題時要通知的聯繫人和聯繫人組。

Centreon的配置邏輯和過程與Nagios徹底相同,所以,清楚了Nagios的配置重點和各個配置文件之間的依賴關係,Centreon的配置將變得比Nagios更加簡單。

4.1 添加主機和主機組

在Centreon早期版本中,安裝完成後,會有一些初始的主機或服務的監控項,可是在centreon最新版本中,去掉了默認的主機,服務和模板,而是經過插件的形式提供模板、通知等基礎功能,但這並不影響咱們的學習和使用。

一、建立一個check_host_alive命令

監控命令(Commands)是Centreon分佈式監控系統運行的基礎,不管是主機仍是服務,都是經過監控命令完成狀態檢查和報警的。常用的監控命令分爲兩種,分別是檢測(Check)命令和通知告警(Notification)命令。

在Centreon系統中,選擇Configuration—>Commands—>Checks,便可看建立監控檢測命令,選擇Configuration—>Commands—>Notifications,便可看到自帶的通知告警命令,例如經常使用的host-notify-by-email、service-notify-by-email等。

選擇Configuration—>Commands—>Checks,點擊add建立一個命令,以下圖所示:

其中,「Command Name」爲check_host_alive;「Command Type」爲「Check」;「Command Line」是命令的具體執行方式,命令中「$USER1$」是一個變量,其實就是nagios插件或centreon插件的存放路徑,「$HOSTADDRESS$」是個主機宏,用於取主機定義裏的IP地址或者主機名,這些內容的含義與在Nagios下表示的含義徹底相同,這裏再也不過多介紹。

二、配置主機模板generic-host

登陸centreon web,在左側導航中,選擇Configuration > Hosts >
Templates,而後點擊「add」按鈕,先建立一個模板文件,以下圖所示:

主機模板,顧名思義,是對主機默認屬性或通用屬性的設置。只有主機引用了這個模板,那麼此模板的設置值就繼承到主機裏面了。一些基礎的主機監控,好比主機檢查屬性、報警通知屬性、自定義宏屬性等均可以在主機模板中進行設置,固然也能夠在定義主機監控的時候設置這些屬性。

主機模板的一個最大特色是繼承性,若是一個主機引用了這個模板,那麼此主機模板下的全部監控屬性都被自動繼承過來了,例如要對1000臺主機作ping連通性檢查,首先能夠建立一個check_ping命令,而後將這個命令引用到generic-host模板中,最後在建立主機的時候,全部1000臺主機都引用generic-host這個主機模板便可,引用主機模板的好處是,若是監控屬性發生了變化,只需修改generic-host配置便可,而無需一個主機一個主機的修改,方便快捷。

有時候可能會發現一個監控屬性既在generic-host模板中設置了,也在主機定義中設置了,此時就有一個優先級的問題,在這種狀況下,監控屬性的生效值以主機中的設置爲準。例如,已經在generic-host中設置了Check
Period爲「24x7」,而在某主機的定義中也引用了generic-host模板,同時將Check Period設置改成「workhours」,那麼此主機監控週期最終生效的設置是「workhours」。

在上圖能夠看到一些主機檢查屬性值,例如,「Max Check Attempts」 表示最大檢查嘗試次數,「Normal Check Interval」表示正常檢查間隔,單位是分鐘,「Retry Check Interval」表示重試檢查間隔,單位是分鐘。這些主機檢查屬性值都須要根據實際狀況進行修改或添加。

點擊上圖中的「Notification」標籤,用來設置告警通知屬性模板,以下圖所示:

告警通知屬性主要是對是否啓用告警、告警聯繫人、告警週期、告警類型等進行設置,上圖已經很清楚的描述了每一個選項的含義,這裏再也不多說。

三、添加主機監控

選擇Configuration—>Hosts—>Hosts,點擊Add添加一個主機,以下圖所示。首先添加一個172.16.213.188主機,此主機無需設置更多的屬性,只須要引用模板便可,模板就選擇以前咱們建立的「generic-host」,這樣,此主機的全部屬性就配置完成了,由於更多的主機屬性都經過指定的主機模板繼承進去了。

固然,咱們也能夠在主機屬性中從新指定配置項,例如能夠在「Check
Command」項中添加一個新的用於檢測主機狀態的命令,這個命令定義之後,主機模板中定義的主機檢測命令就被覆蓋了。

要添加更多的主機,方法與上面徹底相同。下面依次添加多臺主機,以下圖所示:

在這個界面上,有不少操做屬性,能夠用於對主機進行復制、刪除、修改、啓用和禁用等,因而可知,經過Centreon管理主機很是方便和簡單。

四、添加主機組監控

選擇Configuration—>Hosts—>Host Groups,點擊Add添加一個主機組,以下圖所示,依次輸入「Host Group Name」和「Alias」的值,而後在「Linked Hosts」中選擇此主機組須要加入的主機便可,添加完畢,點擊「Save」便可完成主機組的添加。

當一批主機有某些相同的服務須要監控的時候,將這些主機添加到一個主機組中,而後建立一個須要監控的服務,將這個主機組加到此服務中,這樣就完成了對批量主機的某些相同服務的監控,省去了一個主機添加一個服務的麻煩,很是方便。

從上圖能夠看到,添加了一個名爲hostgroup1的主機組,而後將8臺主機添加到了這個組中。一個主機能夠屬於多個主機組。

4.2 批量添加主機

添加一臺主機很是簡單,可是若是有成千上萬臺主機須要添加呢,一個個添加顯然是不行的,此時就須要經過批量添加主機的方法實現。這實際上是藉助於Centreon的模板功能完成的,其基本原理是:先把批量主機的共同屬性添加到主機模板中,而後在批量添加主機時,引用這個主機模板便可。這樣在添加每一個主機時不一樣的屬性只有IP地址和主機名,只要把這兩個值寫入數據庫便可完成主機的添加。

下面是一個寫好的批量添加主機的perl腳本:

#!/usr/bin/perl use strict; use warnings; use DBI; use DBD::mysql; # ---------------------------------------------------- my $DB_HOST = "127.0.0.1"; #監控服務器的IP地址,建議修改成127.0.0.1 my $DB_USER = "centreon"; # Centreon web安裝時設置的數據庫訪問用戶,默認爲centreon my $DB_PASSWD = "centreon"; # Centreon web安裝時設置的數據庫密碼,這裏爲centreon my $DB_NAME = "centreon"; # Centreon web 對應的數據庫名,默認是centreon my $dbh = DBI->connect("DBI:mysql:database=$DB_NAME;host=$DB_HOST", "$DB_USER", "$DB_PASSWD", { RaiseError => 1 }); # ---------------------------------------------------- my $file_path = "/var/tmp/hosts"; #hosts模板文件,須要本身建立 my $tpl_name = "generic-host"; #主機模板,填寫批量添加的主機須要繼承的模板 my $nagios_name = "Central"; #poller,默認爲Central foreach my $arg (@ARGV) { # == file of hostname and ipaddress == if ($arg eq '-f') { $file_path = shift; } # == name of template == elsif ($arg eq '-t') { $tpl_name = shift; } # == name of nagios name == elsif ($arg eq '-n') { $nagios_name = shift; } else { &print_help(); exit 1; } } # ----------------------------------------------------- open (HOST, "$file_path") || die "Cannot open $file_path for read"; my $sql; my $sth; my $line; my ($host, $ipaddr); my ($host_id, $tpl_id, $nagios_id) = (0, 0, 0); while (defined($line = <HOST>)) { # == skip blank lines ================= next if ($line =~ /^\s*$/); # == skip if # ======================== next if ($line =~ /^\s*#/); # == get host and ipaddress =========== ($ipaddr, $host) = split(/\s+/, $line); next if ($ipaddr eq '' || $host eq ''); # == insert the host to table host ==== $sql = "insert host set host_template_model_htm_id='2',host_name='$host',host_alias='$host',host_address='$ipaddr',host_active_checks_enabled='2',host_passive_checks_enabled='2',host_checks_enabled='1',host_event_handler_enabled='2',host_flap_detection_enabled='2',host_process_perf_data='2',host_retain_status_information='2',host_retain_nonstatus_information='2',host_notifications_enabled='2',host_register='1',host_activate='1'"; $sth = $dbh->do($sql); sleep(1); # == get host_id ====================== $sql = "select host_id from host where host_name='$host'"; $sth = $dbh->prepare($sql); $sth->execute(); while (my $ref = $sth->fetchrow_hashref()) { $host_id = $ref->{'host_id'}; print "host_id is $host_id\n"; } next if ($host_id == 0); # == insert extended_host_information == $sql = "insert extended_host_information set host_host_id='$host_id'"; $sth = $dbh->do($sql); # == insert host_template_relation ===== $sql = "select host_id from host where host_name='$tpl_name'"; $sth = $dbh->prepare($sql); $sth->execute(); while (my $ref = $sth->fetchrow_hashref()) { $tpl_id = $ref->{'host_id'}; print "template id is $tpl_id\n"; } next if ($tpl_id == 0); $sql = "insert host_template_relation set host_host_id='$host_id',host_tpl_id='$tpl_id',`order`='1'"; $sth = $dbh->prepare($sql); $sth->execute(); # == insert ns_host_relation =========== $sql = "select id from nagios_server where name='$nagios_name'"; $sth = $dbh->prepare($sql); $sth->execute(); while (my $ref = $sth->fetchrow_hashref()) { $nagios_id = $ref->{'id'}; print "Poller id is $nagios_id\n"; } next if ($nagios_id == 0); $sql = "insert ns_host_relation set host_host_id='$host_id',nagios_server_id='$nagios_id'"; $sth = $dbh->prepare($sql); $sth->execute(); # == insert complete == print "insert $host to centreon successful\n"; } close(HOST); $dbh->disconnect(); exit 0; # -------------------------------------------------------------------------------- sub print_help { print "Usage ./batch_add_host.pl [-f path of host file] [-n nagios name] [-t template name]\n"; print "\n"; }

你可從這裏直接下載此腳本:https://www.ixdba.net/centreon/batch_add_host.zip

要使用這個perl腳本,須要具有以下條件:

1) 一個已經配置好的主機模板文件,在上面腳本中爲generic-host。
2) 一個IP和主機名對應的hosts文件,而且須要放到/var/tmp目錄下。

hosts文件的內容格式爲「IP地址 主機名」,每行一個,將多個主機依次添加到這個hosts文件中便可。將上面腳本命名爲batch_add_host.pl,放到監控服務器任意路徑下,授予其可執行權限,而後執行這個腳本便可完成主機的批量添加。

對於批量添加的主機,「Host Name」選項對應hosts文件中的主機名,「IP Address /DNS」選項對應hosts文件的IP地址。

4.三、 監控引擎管理

在完成主機和主機組添加後,這些主機信息並不會立刻生效,還須要將這些信息生成centreon配置文件進行保存,而後從新啓動監控引擎,這就是Centreon的監控引擎管理功能。在任何配置添加或修改完成後,都須要重啓監控引擎才能使這些配置生效。

選擇Configuration—> Pollers—> Pollers,以下圖所示:

在此圖中選擇「Export configuration」,以下圖所示:

上圖主要用於將建立好的配置導出,默認選擇「Generate Configuration Files」和「Run monitoring engine debug (-v)」兩個動做,固然也建議選擇後面三項。在「 Restart Monitoring Engine」一項中,可選的動做有二個,分別是Restart、Reload,其中Restart用於從新啓動監控引擎服務,例如新增長了一臺主機,就可使用Restart這個動做;而Reload是從新加載配置,例如修改了某個主機的配置參數,就可使用Reload從新加載便可;

在一般狀況下,Restart動做執行的時間較長,特別是當Centreon監控的主機或服務較多的時候,執行Restart操做會啓動得比較慢,而Reload操做僅僅是將新的配置加載生效,執行速度相對較快,所以,如何選擇這兩個動做參數,要結合實際狀況而定。

4.四、添加服務和服務組

在完成主機和主機組添加後,下面開始添加須要監控的服務和服務組。

一、添加服務模板generic-service

這裏的服務模板與以前介紹的主機模板相似,它們具備相同的做用,選擇Configuration—>Services—>Templates,點擊「ADD」便可添加一個服務模板,以下圖所示:

此界面中,對每一個選項的含義都作了詳細的描述,這裏再也不多說。

generic-service服務模板中設置的屬性值都是通用的或公用的,主要用於在建立服務的時候進行引用。

二、建立監控命令

選擇Configuration—>Commands—>Checks,點擊add建立一個命令,以下圖所示:

這裏是建立了一個「check_port」命令,此命令用來檢測遠程主機的端口狀態,能夠看到此命令最終應用的監控命令是check_tcp,這個check_tcp是經過安裝nagios插件獲取的。

三、添加監控服務

添加監控服務的方法與添加主機基本同樣,選擇Configuration—>Services—>Services by host,點擊Add添加一個服務。這裏添加了一個「zabbix_agent_10050」的服務,在「Service Template」中引用了服務模板generic-service,以下圖所示。

在添加監控服務過程當中,只要引用了以前建立好的服務模板「generic-service」,那麼大部分的屬性基本都不用配置了,由於已經在服務模板配置過了。

這裏重點關注「check_port」中的args中的配置,能夠看到,這個args有三個配置項,分別是端口、警告閾值和故障閾值。根據須要進行配置便可。這樣一個監控服務就添加完成了,以下圖所示:

在上圖的服務監控列表中,能夠對每一個服務進行復制、刪除、啓用、禁用等操做,這些功能對之後的監控系統運維是很是重要的。

四、添加主機組服務

選擇Configuration—>Services—>Services by host group,點擊Add按鈕添加一個服務組,以下圖所示,與以前添加服務方式同樣,這裏添加了一個名爲「host_ping」的服務組,而且應用了generic-service模板。

添加主機組的監控服務與添加針對主機的服務,步驟徹底同樣,不一樣的是要選擇對應的主機組,而不是主機。看上圖「Linked with Host Groups」選項的內容可知。

在「Check Command」選項中,咱們選擇了自定義的命令check_ping,這個命令經過icmp監控網絡鏈接狀態,在「Args」選項中,指定了發送的包的個數,以及警告和故障的閥值。

4.五、監控報警配置

監控報警配置是Centreon中一個很是重要的組成部分,在前面兩節中,主要介紹了主機和服務的添加,而且在主機和服務中都引用了各自的模板。而咱們在模板中已經開啓了報警通知功能,那麼,下面就重點講述下主機和服務的報警通知功能。

一、開啓主機報警通知

開啓主機報警通知功能有兩種方法,第一種方法是在定義主機時進行開啓,選擇Configuration—>Hosts—>Hosts,編輯已經建立好的主機172.16.213.220,這裏重點看「Notification」選項,以下圖所示:

在默認狀況下,「Notification Enabled」選項處於「Default」狀態,這個狀態表示一個繼承關係,也就是說若是此主機引用了generic-host模板,而在generic-host模板中開啓了報警通知功能,那麼這個主機也就自動繼承報警通知功能。同理,若是在generic-host模板中沒有開啓報警通知功能,默認此主機也不會開啓報警功能,所以,在主機模板沒有開啓報警通知功能的時候,就須要在主機定義中指定開啓,這裏選擇「Yes」選項,就開啓了主機的報警通知功能。

而後繼續選擇報警須要通知的聯繫人和聯繫人組,這裏選擇「monitoring_server」做爲通知聯繫人,monitoring_server 就是admin用戶的全名,「選擇Supervisor」做爲聯繫人組。這裏能夠根據監控須要任意添加。

接着還能夠選擇通知間隔、通知週期、通知類型、是否延時發送通知等選項。對於比較重要的主機能夠選擇短一點的通知時間間隔,能夠選擇通知週期爲7×24,另外還能夠選擇工做日(workhours)、非工做日(nonworkhours)兩個選項,能夠選擇通知類型爲宕機(Down)、不可到達(Unreachable)、恢復(Recovery)等。最後一個選項是設定第一次發送通知的延時時間,若是設置爲0,則表示主機故障後馬上發送通知。

開啓主機報警的第二種方式是配置主機模板generic-host。在前面介紹的主機添加過程當中,都引用了主機模板generic-host,而在主機模板配置中也能夠開啓報警通知功能,開啓方法很簡單:編輯主機模板,找到「Notification」選項,設置方法與上圖徹底同樣,當開啓了通知功能後,對應的這個主機就繼承了模板的設置,自動開啓了主機通知功能。

根據運維經驗,建議經過修改主機模板的方式開啓主機通知功能,由於當監控的主機有上千臺之多時,一個一個修改主機配置變得不現實,此時只需經過修改主機模板generic-host的配置,便可開啓全部主機的報警通知功能,簡單又方便。固然這樣作的前提是全部主機都引用了generic-host模板。

二、 開啓服務報警通知

開啓服務報警通知的方法也有兩種:一種是在服務模板generic-service中配置,一種是在定義服務的時候指定,其實與開啓主機報警通知的方法徹底同樣。選擇Configuration—>Services—>Services by host,編輯對應的服務,開啓「Notification」選項的報警功能,並配置各個報警參數便可。

要在服務模板generic-service中修改報警通知配置也是能夠的,選擇Configuration—>Services—>Templates,而後編輯generic-service模板,開啓報警功能便可。這裏也建議將全部添加的服務中都引用generic-service模板,這樣作便於往後的修改和運維。

三、 報警方式和聯繫人配置

在開啓了主機和服務的報警通知功能後,還須要設置報警方式和報警聯繫人。Centreon支持多種報警方式,能夠選擇郵件報警、短信報警、MSN報警、QQ報警等方式,而郵件報警是默認方式,能夠無需添加插件直接使用。

選擇Configuration—>Users—>Contacts/Users,而後編輯admin用戶,以下圖所示:

這是用戶設置的第一部分,「Full Name」其實就是admin登陸用戶的全名,「Email」就是報警郵箱的地址,在其中填寫真實有效的郵箱地址便可,「Pager」中填寫的是用於接收報警短信的手機號碼,若是配置了短信報警方式將會用到。接着配置「Group Relations」選項,此選項主要是配置聯繫人組,admin用戶默認屬於「Supervisors」聯繫人組。

接着看用戶設置的第二部分——如何配置報警通知命令,在用戶配置選項下也能夠設置用戶的相關報警通知屬性,而且這裏的配置優先級最高,能夠根據用戶的等級,配置主機或服務報警的接收類型、接收時段等,這裏重點關注一下主機通知和服務通知命令。若是是郵件報警,在主機通知命令中,能夠選擇host-notify-by-email,而在服務通知命令中能夠選擇service-notify-by-email。關於這兩個命令,可能要根據實際狀況進行修改,修改方法很簡單:選擇Configuration—>Commands—>Notifications,編輯對應的命令便可。

在默認狀況下,這兩個命令都是經過Linux系統自帶的「mail」命令發郵件的,這個命令不太好用,功能也不強大,所以推薦另外一個利用命令行發郵件的工具「sendEmail」,這個命令行發郵件的工具功能很是強大,使用也很是簡單,強烈推薦。

下面簡單介紹sendEmail。

sendEmail的主頁是http://caspian.dotconf.net/menu/Software/SendEmail/, 它的安裝很是簡單,下載下來便可使用。能夠將解壓出來的sendEmail可執行文件複製到/usr/local/bin下,直接運行sendEmail就會顯示詳細的用法,這裏介紹幾個重要的使用參數。

-f,表示發送者的郵箱。
-t,表示接收者的郵箱。
-s,表示SMTP服務器的域名或者IP地址。
-u,表示郵件的主題。
-xu,表示SMTP驗證的用戶名。
-xp,表示SMTP驗證的密碼。
-m,表示郵件的內容。

下面介紹幾個簡單的使用例子。

cat 文件名 | /usr/local/bin/sendEmail -f centreon@test.com -t admin@ixdba.net -s mail.test.com -u 「Centreon host-notify test」 -xu centreon -xp xxxzzz

這個例子省去了「-m」參數,而是經過管道將郵件內容傳給了sendEmail。

下面是一個定義好的host-notify-by-email命令的內容:

/usr/bin/printf "%b" "*****Centreon Monitor Notification For HOST*****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $HOSTSTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$HOSTOUTPUT$" | /usr/local/bin/sendEmail -f www@163.com -t $CONTACTEMAIL$ -s smtp.163.com -u "** HOST $NOTIFICATIONTYPE$ alert - $HOSTNAME$ is $HOSTSTATE$ **" -xu www@163.com -xp 'zzzzzz' -o tls=no

在Configuration—>Commands—>Notifications中,編輯「host-notify-by-email」內容以下:

到這裏爲止,關於Centreon郵件報警方式的配置基本介紹完成了,下面再介紹一下其餘報警方式的優缺點及使用經驗。

Centreon支持多種報警方式,上面介紹了默認的郵件報警,還有經過第三方插件配置短信報警、微信告警等。

郵件報警是最基礎的報警形式,它能夠有多種擴展形式,目前不少郵箱都支持短信提醒功能,將郵箱綁定短信提醒後,就變相實現了短信報警的功能。另外,如今的手機基本都是智能機時代了,在手機上安裝一個郵件客戶端工具,而後綁定報警郵件地址,就能夠隨時隨地收取報警郵件了,這種方式簡單、實用,惟一的成本就是要支付一部分手機的無線流量。

上面代碼可從這裏下載:https://www.ixdba.net/centreon/sendEmail.zip

四、 查看監控報警狀態

Centreon經過Web UI界面展現了全部主機和服務的運行狀態,對於不一樣的運行狀態,Centreon分別用不一樣的顏色顯示,基本的狀態與顏色的定義以下:

正常運行狀態(OK),通常狀況下用綠色表示。
警告狀態(Warning),一般用黃色表示。
故障、宕機狀態(Critical、Down),一般用紅色表示。
未知狀態(Unknown),一般用灰色表示。
掛起、不可到達狀態(Pending、Unreachable),一般用淺藍色表示。

選擇Monitoring > Status Details > Hosts便可查看全部主機、主機組、故障主機等的相關信息,以下圖所示:

從上圖能夠看到全部主機的主機名稱、主機運行狀態、主機IP地址、最後一次檢查的時間、某種主機狀態持續的時間等,最後一列是主機狀態的檢查結果。在「Hosts」一列後面是對ping操做監控狀態的一個數據彙總,點擊這個圖標便可查看主機在某段時間內的ping狀態曲線圖。

Centreon查看主機或服務狀態的功能很是強大,支持根據主機名過濾查詢,還支持根據狀態查詢、根據主機組名稱查詢等。另外還能夠對主機進行啓用通知、關閉通知、啓用檢查、關閉檢查等操做。

選擇Monitoring > Status Details > Services查看全部監控服務的狀態,以下圖所示。

從圖上能夠看出,172.16.213.239主機對應的zabbix_agent_10050服務出現了故障,具體的監控出錯信息是「connect to address 172.16.213.239 and port 10050: Connection refused」,這種錯誤通常都是服務關閉或者中斷致使的。

點擊上圖「Services」列後面的柱狀小圖標,便可查看服務運行趨勢圖,以下圖所示:

能夠看出,此圖是對host_ping服務的監控曲線圖,能夠查看指定時段host_ping服務的運行狀態。

關於對監控狀態的查看,Centreon還給出了一個全局的狀態統計,在Centreon web最上方有一個表格,統計了全部主機和服務的運行狀態,以下圖所示:

在Centreon監控系統中,全部監控狀態頁面都是定時自動刷新的,這個刷新值能夠自行修改,默認刷新間隔是一分鐘,因此只須要查看全局的這個狀態監控表格,就能知道哪些主機或服務出現了故障。

到這裏爲止,centreon web中主要的配置已經基本介紹完畢了,其實能夠看出,centreon的使用思路和nagios基本一致,所以,能夠徹底套用nagios的使用思路來學習centreon。

本節就介紹到這裏,下節將繼續介紹經過cenrreon監控apache、mysql、hadoop的實戰案例,並給出一個桌面監控告警工具。

相關文章
相關標籤/搜索