目录
配置流程
添加组机组
添加模板
添加主机
配置图形
配置大屏
Monitoring
配置地图
最新数据
故障
使用IT服务
使用报表
资产管理
全局搜索
导入导出
用户权限
用户组权限
用户
匿名用户
调试模式
与 LDAP 对接
维护模式
故障确认
批量更新
配置流程
在Zabbix-Web管理界面中添加一个主机,其完整的配置流程可以简单描述为:
Host groups(主机组)→Hosts(主机)→Applications(监控项组)→Items(监控项)→Triggers(触发器)→Problems(故障)→Actions(处理动作)→User groups(用户组)→Users(用户)→Medias(告警方式)→Action log(日志审计)。
在实际使用时,Items、Triggers、Graphs(图形)不必每台设备(Host)都手动配置,通常采用模板进行批量配置即可。模板就是对设备的监控项等监控配置内容的抽象,可以将其链接(Link)对应到同一种监控类型的设备。
添加组机组
分组的目的是将同一属性的主机、模板进行分类。在 Zabbix 的软件设计规则中,已规定主机、模板必须属于一个分组。
对同一属性的主机或者模板应归类到相同组,相关原则如下:
以地理位置纬度进行划分 | 以业务为单位划分组 | 以机器用途进行划分 |
以系统版本进行划分 | 以应用程序来划分组 | 其他方式等 |
添加主机组后的相关信息保存在数据库中,如果想在数据库中查询主机组,则可运行下面的命令:
$ mysql -uzabbix -pzabbix zabbix -e "select * from hstgrp"
① 层级主机分组
在 Zabbix 4.0中,支持对主机组进行层级分组(Nested Host Group)的功能,层级较高分组中的主机均可以被下级分组所继承。如图4-4所示,“ShangHai/IDC/Nginx”为3级分组(图中标号①),“ShangHai/IDC”为2级分组(图中标号②), “ShangHai”为1级分组(图中标号③)。在3级分组中有主机Host-1和Host-2(图中标号④),那么在2级分组和1级分组中继承了3级分组的主机 Host-1和 Host-2。注意其命名格式,用“/”分隔分组,必须遵循这种格式,且“/”前后均不能有空格。
在更新一个主机组时,如图4-5所示,勾选“ShangHai”(图中标号①),然后勾选“Applypermissions and tag filters to all subgroups”(图中标号②),该功能表示是否将该组的权限赋予下一级的主机组。
添加模板
监控项、触发器、图形、Web、Discovery 等都存在于主机之上,由于多个主机会使用相同的监控配置,因此可以对这部分同类的数据进行归纳抽象,即将这些数据做成模板。当我们需要对其他监控数据进行配置时,只需要为相应的主机添加对应的模板即可。
模板具有继承的功能(在一个模板中使用另一个模板),如图所示。
配置宏
在模板中也可以配置宏(Micros)
宏主要是对变量的定义,配置宏的作用是方便后面在Items、Triggers中引用。在模板中配置一个宏,在不同的主机中为该宏设置不同的变量值,从而达到模板化通用的目的。
注意:宏的名称为{$名称},宏的字符范围为“A~Z、0~9、_、.”,如果不是这个范围内的字符,则一律无效
查看新添加的模板,如下图所示。可以看到,Items 中已经有三个监控项了,是继承于Zabbix Agent模板的:
添加主机
添加主机的各参数说明:
添加主机后,需要添加模板
注意:如果要从主机中删除模板,选择“Unlink”,并不会清除已经添加的监控数据;而选择“Unlink andclear”,则会删除链接到主机的模板,并且会清除主机中的监控数据。
配置图形
Graphs(图形)用于将数据以可视化形式展示。Graphs的配置存在于主机和模板中。
选择刚才创建的图形,单击“Preview”,即可查看图形
Graphs配置参数说明
Items的显示属性如图所示
在某些情况下,我们并不需要为所有的监控项都配置图形,这时就可以通过 Simple Graphs来查看图形,
配置大屏
Screens(大屏)用于将多种信息放在一起展示,便于集中显示某个主机的多种信息,或者将多个主机的同一种信息放在一起显示,这些信息可以为Graphs、Maps、Server info等,几乎涵盖了Zabbix的所有监控信息。
“Change”,就可以配置大屏上的图形了
配置好大屏后,通过单击Monitoring→Screens来选择相应的大屏
Monitoring
配置地图
Maps配置默认无背景图,在某些情况下,我们需要添加一个背景图来展示拓扑图。
单击刚创建好的地图链接,即可打开地图进行展示。此时,在地图上面还没有添加任何设备。下面我们单击“Edit map”按钮进入编辑模式,单击Icons中的“Add”按钮来添加设备。
其中,在“Label”文本框中可以使用宏。可用的宏如下:
{HOST.NAME}
{HOST.CONN}
{HOST.DERSCRIPTION}
{HOST.DNS}
{HOST.IP}
{HOST.HOST}
{TRIGGER.EVENTS.ACK}
{TRIGGER.EVENTS.PROBLEM.ACK}
{TRIGGER.EVENTS.UNACK}
{TRIGGER.HOSTGROUP.NAME}
{TRIGGER.PROBLEM.EVENTS.PROBLEM.ACK}
{TRIGGER.POBLEM.EVENTS.PROBLEM.UNACK}
{TRIGGERS.UNACK}
{TRIGGERS.PROBLEM.UNACK}
{TRIGGERS.ACK}
{TRIGGERS.PROBLEM.ACK}
例如,使用宏{{HOST.NAME}:system.cpu.load[, avg1].last(0)},可以显示CPU负载。关于其他的宏参数,请访问如下地址来了解:
1 Supported macros
依次添加其他主机,添加完毕后单击“Update”按钮提交更改,
当我们需要在两个设备之间添加一条线时,可以选中这两个设备的图标。单击“Edit”按钮进行编辑(图4-32中标号④),在“Label”文本框中可以添加连线上的标签,在这个标签中还可以使用宏,
最新数据
最新数据(Latest data)功能将最近一次获取到的数据进行展示,适合于查看监控数据的场景。比如在主机上并没有配置图形,这时就可以在最新数据中查看了。
故障
监控系统最重要的功能之一就是告警,对于发生过故障(Problems)的监控项,我们可以单击Monitoring→Problems 查看故障的详细情况。其支持时间段的选择,并支持按条件搜索。
使用IT服务
使用 IT 服务(Services)的目的是为了宏观度量和管理基础设施的总体情况的可用性。因为在很多时候,我们无须关心基础设施的细节问题,如磁盘空间不足、处理器高负载等,只关心总体情况的可用性,从而发现并着手解决IT基础设施暴露的问题。
使用IT服务实施可用性度量带来的好处如下:
- 为提高服务的持续性提供科学依据。
- 明确提供服务过程中的薄弱点。
- 使提供服务的过程得到有效监控。
- 为审核服务成本提供数据支持。
对IT服务的可用性需求分析内容如下:
- 服务的范围及其定义。
- 服务对所在机构的重要性。
- 服务所支持的用户数量。
- 服务不可用状态造成的业务影响程度。
- 服务不可用状态产生的成本代价,以及成本代价随时间推移变化的趋势。
- 提供服务的可用时间。
- 提供服务的关键时段,如业务的高峰、月末及处理期限等。
- 提供服务的次要时段,如较容易发生停机故障的时间。
- 服务计划的中断时段,如专为计划内维护与系统升级工作设定的停机时间。
- 服务容许的不可用时间,如在启动应急计划之前所容许的故障停机时间。
对IT服务的要求级别如下表所示。
Zabbix的IT服务是一个分层次的数据展示结构,其树状结构如图4-39所示。
该结构中的每一个节点都具有属性状态,状态根据所选择的算法进行计算并传播到上层。IT服务的最低水平是触发器,各个节点的状态都受其触发器所影响。
使用报表
Zabbix 的报表(Reports)功能主要有系统运行状态、可用性报告、故障报告、日志审计、告警通知等。单击 Reports→System information,可以显示 Zabbix 系统的摘要信息。
单击“Triggers top 100”,可以显示前100个触发器信息
单击“Audit”,可以看到审计日志,所有的增删改记录均可以在此查看到数据
单击“Action log”,可以看到告警发送等日志信息
对于已经发送过的告警信息,我们可以利用报表进行统计,在该统计报表中包含了告警接收用户、时间周期、告警数量、接收方式等信息。
Zabbix 的报表功能仅能呈现一些基本的图形数据,不能自动生成文本报告。如果读者有这方面的需求,则可以通过API手动编写程序生成报表数据,然后自动发送到邮箱中。
资产管理
配置资产管理(Host inventory)是在 Host 下面完成的,该项默认是关闭的。也可以自动获取或者手动输入资产管理信息。
Zabbix本身的资产管理功能非常有限,对于简单的应用有一定的帮助,但对于有更多需求的实际应用来说,这个功能就不能满足了。所以,如果需要将资产管理作为服务对外提供,则应使用专业的CMDB资产管理系统。当然,在使用过程中,可以将CMDB与Zabbix进行深度集成和定制,实现数据的打通
全局搜索
全局搜索(Search)功能支持模糊搜索,并将搜索结果进行展示,搜索对象可以是主机、主机组、模板。
导入导出
在有些场景下,除需要查看数据外,还需要将数据导出,比如将 Zabbix 的模板导出分享给其他人,这时就要用到导出功能了。
Zabbix 支持将所有的配置导出为标准格式的 XML 文件,同样,也支持导入标准格式的XML配置文件。
单击 Configuration→Templates/Host→Export/Import→Export 按钮,勾选要导出的模板/主机,再单击“Export”按钮,即可将XML文件导出到本地。
当然,除了主机和模板,还支持地图、值映射(Value mapping)、故障灯的数据导出,读者可以自行验证。
用户权限
在 Zabbix的 Web管理界面中,用户类型主要有3类,分别为超级管理员、管理员和普通用户。还有一类特殊用户,即匿名用户 guest。用户的权限是由用户组进行控制的。
用户组权限
针对每个主机组,用户组权限(Permissions)有读写、只读、拒绝访问主机组、权限未设置这4种组合。此外,还支持通过标签(Tag filter)将主机、主机组添加到用户组中。Zabbix 4.0版本仅支持基于Trigger的标签,从Zabbix 4.2版本开始,支持基于主机、主机组、模板等的标签。通过不同的权限组合,可以控制用户对资源的访问,以及对该资源具有权限的用户发送告警信息。故设置正确的权限,对系统的影响是非常大的。
当需要从用户组中去掉一个主机组的权限时,设置如下图所示,将该组的权限设置为“None”(图中标号①),然后单击Update按钮(图中标号②)即可去掉该组的权限。
当需要添加一个含有层级分组的主机组时,如下图所示,默认不勾选“Include subgroups”(包含层级主机组),则自动将层级分组的第2层分组设置为None权限,即默认只包含该组的权限,而不包含其他分组的权限。
当需要添加一个含有层级分组的主机组时,如下图所示,勾选“Include subgroups”(包含层级主机组)(图中标号②),则会将该层级分组下的所有分组全部包含(图中标号④)。
当我们在权限中未选择包含层级分组时(添加主机组时未勾选“Include subgroups”),如图4-65中的标号①所示,则可以通过更新主机组,如图中标号②所示,将该分组下的层级分组全部包含(图中标号④)。此功能在更新数据时并没有提示信息,所以务必在完全理解之后再去使用,否则会造成层级分组的权限错乱。
用户
用户必须属于用户组。另外,还需要为用户设置初始密码。在创建用户时,可以选择用户类型,如超级管理员、管理员和普通用户。
匿名用户
匿名用户为内置的 guest 用户,不需要密码即可访问,其只有查看权限。在生产环境中,一般禁用匿名用户,
调试模式
Zabbix 的调试模式(Debug mode)主要用于前后端的调试,如果想知道对某个页面的查询使用了哪些SQL语句,则可以打开调试模式。
在页面的右下方,可以看到调试模式的开关,在访问页面时单击 Debug 按钮,即可看到当前页面的调试信息,如当前页面运行了哪些 SQL语句,而无须通过修改 PHP代码来获取。
与 LDAP 对接
Zabbix 本身具有认证体系,还支持与 LDAP 集成来实现身份的统一认证。单击Administration→Authentication,然后选择LDAP认证接入方式。
在上面的 LDAP配置中,微软的活动目录配置和 OpenLDAP配置稍有差异。
维护模式
在某些场合中,我们不需要告警,例如业务的正常维护,所以此时维护时间功能特别有用。
这里的维护时间配置和Action中的配置紧密相关
在Action中配置了只有不在维护时间内才发送告警,因此启用维护时间不会产生告警。除可以对主机和主机组进行选择外,还可以使用标签方式设置让触发器处于维护模式。
在禁止维护模式期间访问Web GUI的配置语句如下:
shell# vim /etc/zabbix/web/maintenance.inc.php
// Maintenance mode
define('ZBX_DENY_GUI_ACCESS', 1);
// IP range, who are allowed to connect to FrontEnd
$ZBX_GUI_ACCESS_IP_RANGE = array('127.0.0.1');
// MSG shown on Warning screen!
$_REQUEST['warning_msg'] = 'Zabbix is under maintenance.';
修改好后保存,访问Zabbix-Web,则提示Zabbix处于维护模式下
故障确认
故障确认(Problem acknowledgement)功能用于人为干预故障,当某个故障发生时,我们无法立即解决,但是已经知晓了该故障,即先响应后彻底消除。为方便故障处理流程的转动,我们就可以使用这一功能。单击 Monitoring→Problems,查看当前的故障信息,对于需要进行确认的故障,可以单击故障确认的状态进行设置。
单击Ack列中的“No”,如图4-76所示,输入内容,确认并返回结果。此外,Zabbix 4.0具有改变故障的告警级别、确认故障、关闭问题的功能。
可以看到Ack已经变为Yes状态,说明有用户修改过该状态
单击“Yes”,可以查看具体的信息
批量更新
批量更新(Mass update)功能支持一次对多个主机、多个监控项、多个触发器等的属性进行改变。该功能存在于主机、监控项中。
在主机组中批量选择主机,单击“Mass update”按钮,可以进行替换、新增、删除主机组,选择Proxy,开启、关闭主机等操作。