分布式监控告警平台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的实战案例,并给出一个桌面监控告警工具。

相关文章
相关标签/搜索