本帖最后由 adminlily 于 2018-11-5 11:38 编辑  
 
 
 
本文介绍Zabbix的快速配置使用,介绍配置流程,通过浏览器访问http://ServerIP/zabbix开始配置和使用Zabbix。 0 配置流程 Zabbix完整的监控配置流程可以简单描述为:  
  
 Host Groups(主机组)→Hosts(主机)→Applications(监控项组)→Items(监控项)→Triggers(触发器)→Event(事件)→Actions(处理动作)→User groups(用户组)→Users(用户)→Medias(告警方式)→Audit(日志审计)。 在实际使用的时候,Items、Trigger、Graph通常采用模板进行配置,模板的特点就是可以对相同需求的监控项重复使用,无须对每台主机进行逐个设置。  
  
 对于使用Zabbix来说,配置Graph不是必需的,因为没有配置图形,数据的获取也不影响,数据。但是对用户(Zabbix的Web界面用户)来说,没有图形,就无法看到可视化的数据,因此,需要对最关心的Items添加图形,以便将数据可视化。  
  
 配置Trigger不是必需的,但是对于特别关注的数据,需要对取到的值进行条件判断,这时配置触发器就是必需的。  
  
 另外,如果想集中查看图形,可以使用Screens功能,将多个图形配置到一个界面上。(遗憾的是,Screens功能并不十分完美,只能满足一般需求)  
  
 Zabbix的运行流程可以用下面这张图来简单的描述:  
  
 1 添加主机组 
 分组的目的是将统一属性的主机归类,便于查看和统计。  
  
 主机组中可以包含主机,也可以包含模板。  
  
  
 
如何添加新主机组呢?方法是单击“配置”——“主机群组”界面右上角的“创建主机群组”按钮,跳转到添加新主机组的界面:  
  
 填写“组名”,从右侧列表选择主机移到左侧列表中,将这些设备添加到新建的组中。点击“保存”。  
  
 2 添加模板 监控项、触发器、图形、Web、Discovery等都是存在于主机之上的,由于多个主机都会用相同的监控配置,因此可以对这部分同类的数据进行归纳抽象,将这些数据做成模板。当我们需要对其他主机进行配置的时候,只需要对相应的主机添加对应的模板即可。  
  
 单击“配置”——“模板”界面右上角的“创建模板”按钮,跳转到添加新模板的界面:  
  
 填写模板名称和所属的组。如果是将模板加到已有的组,则从“其他群组”中将指定的组移到左侧的列表;如果是将模板加到新的组,则在“新的群组”中填写组名。 
  
  
 模板具有继承的功能(将一个模板在另一个模板中使用),在“链接的模板”Tab页中:  
  
 注意,选择了链接的模板后先点“链接指示器”那里的小字“添加”。 
  
  
 模板中亦可以定义宏。宏主要是对变量的定义,设置宏的作用是方便在Items、Trigger中使用,在模板中配置一个宏,在不同的主机对该宏设置不同的变量值,从而达到模板通用化的目的。  
  
 注意,宏的名称为{$名称},宏的字符范围为“A~Z、0~9、_、.”,如果不是这个范围的字 
  
  
 注意,宏的名称为{$名称},宏的字符范围为“A~Z、0~9、_、.”,如果不是这个范围的字符,一律是无效的。  
  
 查看刚添加的模板:  
  
  
 
可以看到这个模板从Template App Zabbix Agent模板中继承了三个监控项: 
  
  
  
 
关于如何在模板中添加其他的Items,后面再说^_^ 
  
  
 3 添加主机 添加主机的目的是对具体的设备进行监控,步骤为:点击“配置”——“主机”界面右上角的“创建主机”:  
  
  
  
 参数说明如下: 
  
  
 主机名:主机名不能重复。该名称对应Agent的配置文件中Hostname,只允许大小写字母、数字、标点符号和下划线。  
  
  可见的名称:可以不设置,设置了那么在其他地方展示时就显示这个名称,而不是主机名。  
  
  
 
 
 
 
 
 
 
 
 
 
选择模板:  
  
  
 
如果还想配置IPMI、宏、主机资产信息,依次配置即可。 
  
  
  
 4 配置图形 Graph是将数据展示为图像,以视觉化的形式展示,Graph的配置存在于主机和模板中。  
  
 在所在的主机(模板)中,选择“图形”:  
  
  
 
点击右上角的“添加图形”,打开新建图形的界面,输入图形名称,选择所需的监控项: 
  
  
  
 
保存后就能在“监测中”——“图形”中选择“群组”、“主机”和“图形”看到了: 
  
  
  
 
有些情况下,我们并不需要对多有的监控项配置图形,可以在“监测中”——“最新数据”直接查看某个监控项的图形,甚至也可以勾选多个监控项点表格最下面的“显示数据图”或“显示堆叠数据图”: 
  
  
  
 
 
5 配置聚合图形 聚合图形将多种信息放在一起展示,便于集中展示某个主机的多个信息,或是将多个主机的同一种信息放在一起显示。 通过点击“监测中”——“聚合图形”——“创建聚合图形”:  
  
 6 使用GraphTree Graphtree 由OneOaaS开发并开源出来,用来解决Zabbix的聚合图形配置繁琐的问题,集中展示图形,性能较好。  
  
 安装方式是,下载Graphtree补丁包,使用patch打补丁,即可,具体请参考[  /OneOaaS/graphtrees]OneOaaS/graphtrees[/url]。  
  
 效果如下:  
  
 7 配置Web监控 Web monitoring(Web监控)是用来监控Web程序的,可以监控到Web程序的下载速度、返回码及响应时间,还支持把一组连续的Web动作作为一个整体进行监控。  
  
 Web监控即对HTTP服务的监控,模拟用户去访问网站,对特定的结果进行比较,如状态码、返回字符串等特定的数据进行比较和监控,从而判断网站Web服务的可用性。  
  
 点击“配置”——“主机”——“Web监测”——“创建Web场景”。  
  
  
  
 名称:Web场景的名称。 
  
  
  
 
 
 
 
 
 
 
 
 
 
切换到“步骤”Tab页,添加步骤:  
  
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
如果有多个URL,则一次添加步骤:  
  
  
 
添加完成后,在“监测中”——“Web监测”中可以查看: 
  
  
  
 
Web监控实际上也是多个监控项组成的,如下图。所以也可以配置触发器,触发器的如何配置,下次再说。 
  
  
  
 
 
8 配置监控项 监控项可以配置获取数据的方式、取值的数据类型、获取数值的间隔、历史数据保存时间、趋势数据保存时间、监控项所属的应用集。  
  
 监测周期的长短直接影响了数据的获取,也影响了Zabbix Server的性能。  
  
 监控的方式非常多,ZAbbix支持的监控方式有:  
  
  
 
 
其中,最常用的有:  
  
  
 
 
 
 
 
 
 
监控项可以存在于模板中,也可以存在于主机中,模板的作用是可以复用,对需要重复配置的监控项归类。  
  
 监控项的添加方式为,打开“配置”——“模板”/“主机”,点击对应的模板或主机的“监控项”,再点击页面右上角“创建监控项”:  
  
  
创建监控项的页面:  
  
  
 
 
 
 
 
 
 
 
 
 
 
 
 
单位:数据的单位符号,Zabbix将会处理接收到的数据,并且把数值转换为需要显示的单位。默认情况下,如果原始值超过1000,则除以1000并相应地显示。例如,设置bps为单位,如果接收到的值为881764,将会显示881.76Kbps。有个特殊情况,当单B(byte)、Bps(bytes每秒),时将会除以1024。  
  
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
如何确认我们配置的Key是正确可用的呢?答案就是用前面介绍的zabbix_get啦。  
  
 8.1 监控项的Key  
  
 Key可以带参数,该参数为一个数组列表,可以同时传递多个参数,多个参数之间用半角逗号隔开。例如:  
  
 vfs.fs.size[/] vfs.fs.size[/opt] system.cpu.load[percpu,avg1]  
  
 举个例子,创建个自定义监控:  
  
  
 
 
这里,/etc/passwd为$1,root为$2,则Key最终运行的命令为 grep –c root /etc/passwd。  
  
 顺便介绍下用户自定义参数(UserParameter)。UserParameter配置在zabbix_agentd.conf中或Include指定的配置文件中。 Key自定义的不带参数的格式为:  
  
 UserParameter=key, command  
  
 带参数的格式为:  
  
 UserParameter=key, command $1 $2 $3…  
  
 添加了UserParameter后要重启zabbix-agent服务才会生效。  
  
 注:Zabbix内置了很多关于网络流量、端口、进程、CPU、内存、磁盘、文件监控的Key,可以查阅官方文档。  
  
 9 配置触发器 告警是监控的重要功能,是指将达到某一阈值事件的消息发送给用户,让用户在事件发生的时候即可知道监控项处于不正常状态,从而让用户来决定是否采取相关措施。  
  
 在Zabbix中,告警是由一系列的流程组成的,首先是触发器达到阈值,接下来是动作对事件信息进程处理,其中包含两部分:第一部分是发送消息,即将告警信息发送给用户;第二部分是执行命令,即将事件用命令进行处理,达到对事件故障自动尝试恢复的效果。 触发器的状态分为“OK/正常”和“Problem/问题”。  
  
 触发器的状态是在Zabbix Server每次接收到监控项的新数据时,就会对值进行判断。对于触发器中的时间函数nodata()、date()、dayofmonth()、dayofweek()、time()、noew(),Zabbix Server会每隔30秒进行重新判断。  
  
 一个监控项可以对应多个触发器,通过不同的阈值来设置不同的告警级别,实现分故障级别的告警。  
  
 触发器的配置是在“配置”——“主机”/“模板”——“触发器”——“创建触发器”:  
  
  
 
 
触发器比较复杂的就是告警表达式的配置。点击“添加”按钮,打开表达式构造页面:  
  
  
 
 
Zabbix支持很多条件判断:  
  
  
 
 
选择一个判断条件后,在下面的 “N”文本框中填入阈值数字:  
  
  
 
 
插入后就生成表达式了:  
  
  
 
 
表达式支持监控项&组成复杂的判断条件。  
  
  
 
 
添加触发器时可以为触发器选择一个“严重性”,然后就可以根据告警的严重性来配置不同的动作。  
  
 10 配置报警媒介 在定义动作配置告警之前,我们要先配置告警媒介,并给用户配置告警的收件人。  
  
 在“管理”——“报警媒介类型”界面:  
  
  
 
 
Zabbix支持短信和SMTP邮件,还有自定义脚本的方式。例如上图的邮件和短信都是用自定义脚本的方式。  
  
 自定义脚本的报警媒介需要指定脚本名称和脚本参数。这里的参数是用宏定义的,在动作中调用报警媒介时会将该动作的收件人、标题和内容传递给脚本。  
  
  
 
 
Zabbix Server在调用脚本的时候,会按顺序将参数作为位置参数传给脚本。上图的配置中则$1为收件人,$2为消息标题,$3为消息内容。  
  
 11 配置用户 要让用户能收到告警通知,需要对该用户配置告警媒介的收件人信息。  
  
 在“管理”——“用户”的“报警媒介”Tab页中添加:  
  
  
 
 
12 配置动作 如果想在产生事件后,即当触发条件被满足时,采取一些操作,比如,发送事件通知、远程执行命令等,则需要配置动作。动作可以对以下四种类型的事件进行响应:  
  
 创建动作的方法是,打开“配置”——“动作”界面,在“事件源”下拉菜单中选择事件来源,点击“创建动作”,配置动作的信息、条件和操作。  
  
 “动作”Tab页需要配置动作的名称、消息的标题和内容、是否发送恢复消息和恢复消息的标题及内容。标题和内容中可以使用宏来获取触发器的相关参数:  
  
  
 
“条件”Tab页可以配置哪些主机群组、主机、触发器等触发该动作,多个条件之间的关系可以是and或者or:  
  
  
 
 
“操作”Tab页配置动作的具体操作,“操作类型”分为发送消息和远程命令。发送消息则配置发送到的用户组和/或用户,以及发送到的报警媒介;远程命令则选择要执行命令的主机或主机群组,以及要执行的命令和远程命令的执行方式。操作可以配置多个步骤,实现告警升级。  
  
  
 
 
不同类型事件的动作可选的操作不同:  
  
 触发器事件:发送消息、执行远程命令  
  
 自动发现事件:发送消息、执行远程命令、添加主机、删除主机、启用主机、停用主机、添加到主机群组、从主机群组中移除、关联模板、取消关联模板、设置主机清单模式  
  
 自动注册事件:发送消息、执行远程命令、添加主机、启用主机、添加到主机群组、关联模板、设置主机清单模式  
  
 动作发送消息的日志可以在“报表”——“动作日志”中查看。  
  
13 维护时间 在某些场合中,我们不需要进行告警,例如,业务的正常维护,所以此时维护时间功能特别有用。  
  
 在“配置”——“维护”,创建维护期间,配置维护的时间段和主机/群组:  
  
  
 
 
维护时间和动作中的配置紧密相关,动作中配置了不在维护时间内才发送告警,因此,启用维护时间不会产生告警:  
  
  
 
14 事件确认 当事件出现状态为Problem的时候,在“监测中”——“触发器”/“事件”界面可以查看事件的详细信息:  
  
  
 
 
事件的确认有“No/不”和“Yes/是”两种状态。点击“不”弹出确认界面,输入内容,确认并返回:  
  
  
 
 
然后事件的确认状态就是“是”了,表示有用户修改过状态:  
  
  
 
 
点击“是”可以查看具体的内容:  
  
  
 
 
原创:吴坤 
 |