您好,登录后才能下订单哦!
我们在主机中不仅可以添加很多需要监控的指标(即监控项),还可以添加图形、触发器、监控项组、展示屏、Web scenarios和low-level Discovery,如果在每个主机中添加这些对象,尤其是在一个大型环境中,其工作量是不可想象的,何况需要监控的主机有很多具有相同的监控属性,需要重复相同的配置工作,如果手工完成这些配置任务几乎是不可能的。好在Zabbix为我们提供了模板,通过在不同的模板中添加监控项、触发器、图形等配置并应用到任意数量的主机上。当然对于特殊的监控需求仍然可以在主机中单独添加监控项、触发器、图形等,两者可以结合使用。
使用模板会给我们带来很大的便利,假设我们需要在所有主机上修改某些监控项的设置,在模板中我们只需要修改一次,即会在所有连接该模板的主机上生效。因此使用模板可以精简Zabbix配置的同时会大量减少运维的工作量。
近日完成《深入浅出 zabbix 4.0》视频教程的录制并正式发布,该教程基于 zabbix 4.2 ,对Zabbix进行全面讲解。欢迎大家围观。课程链接:https://edu.51cto.com/sd/ce000
模板中包含的内容和主机非常类似,都包含一些需要监控的监控项,还有触发器、图形、展示屏、Discovery等。每个模板都需要有唯一的名称,可以属于一个或多个主机组。但两者的区别在于主机可以提供多种方式和Zabbix server通信,例如可以使用一个或多个ip地址或者DNS主机名与Zabbix server通信,主机作为一个监控对象,通过agent、SNMP、JMX或IPME接口给Zabbix server提交数据。而模板没有任何访问接口,因此Zabbix server不会通过模板来收集数据。
创建模板是非常简单的,在Configuration --> Templates页面中,单击右上角的Create template按钮。然后我们可以看到template配置页面中有三个不同的标签,分别是Template、Linked Templates和Macros,其中LinkedTemplates标签和Macros标签我们会在本章后面的内容中介绍,在一个基本的模板中可以不配置Linked Templates和Macros标签中的参数。
实际上配置一个最基本的模板只需要配置一个名称就可以。可以把模板添加到一个或多个主机组中,也可以直接分配模板到某个主机。下面一起来看看模板配置页面,如下图7-1所示。
图 7-1
Template标签页面中各参数的含义如下:
Template name:唯一的模板名称。
Visible name:设置该名称后,在页面列表、拓扑图等地方会显示该名称,这个参数支持UTF-8,在这里你可以设置中文名称。
Groups:模板所属的主机组或模板组。
New group:创建模板的同时创建一个模板所属的组。
Hosts/Templates:链接到该模板的主机或模板的列表。
Description:模板的描述信息。
添加监控项到模板的方法和在主机上添加的方法几乎是一样的。添加监控项时你不能指定任意类型的IP或接口,当模板链接到某个需要监控的主机时,Zabbix会自动收集接口信息。需要添加触发器、图形等项目时必须引用已经创建的监控项,在这里需要确认引用的监控项在模板中已经存在。
在模板中我们可以添加以下的内容:
监控项
触发器
图形
监控项组
展示屏
Low-level Discovery rules
Web scenarios
在模板中你会经常用到下面几个和主机相关的宏变量。
{HOST.CONN}:引用主机的主机名称或IP地址。根据主机配置的选项等同于{HOST.IP}或{HOST.DNS}。
{HOST.DNS}:引用主机的主机名称。必须是DNS服务器中设定的完整的域名(FQDN)。
{HOST.HOST}:引用Zabbix中定义的主机的Host name(主机名称)。这个是主要的主机标识符,它在Zabbix server中必须是唯一的。如果在主机中使用agent,在agent配置文件中必须设置相同的主机名称。
{HOST.IP}:引用主机的IP地址。一个主机可能有多个IP地址,可以使用{HOST.IP1}、{HOST.IP2}、… {HOST.IP9}。
{HOST.NAME}:引用Zabbix中定义的主机的visible name。在页面列表、拓扑图等地方会显示该名称。
通过下面的图可以更清楚的了解上面提到的主机相关的宏变量。如下图7-2所示。
图 7-2
在上图7-2中,{HOST.HOST}将解析为example host name,{HOST.NAME}解析为example visible name,{HOST.IP}解析为127.0.0.1,{HOST.DNS}解析为zabbix.example.com,{HOST.CONN}将根据Connect to的选项解析为127.0.0.1。
这些宏变量在触发器和图形名称中使用的比较多,当用图形名称作为标题时,可以通过宏变量的引用动态匹配实际的主机信息,区分同一类型但不同主机的图形,尤其是同时在屏幕上显示的时候。
在监控项Key的定义中很少使用这些宏变量,但在Externalchecks监控方式的监控项中,{HOST.CONN}、{HOST.IP}等经常会作为脚本文件的参数使用,这样就可以同时在多个主机上执行脚本,完成相同的任务。
在模板和主机级别可以自定义宏变量,在模板配置页面中的Macros标签中我们可以配置宏变量。如下图7-3所示。
图 7-3
在模板中定义宏变量,一般用法是设置共用的阈值以便在触发器中使用。在模板中监控项或触发器使用自定义的宏变量时,这个宏变量也最好在模板中设置,这样可以避免这个模板导出到其他Zabbix 系统中使用时,相关的宏变量是否正确配置的问题。
在模板配置页面的Template标签中,可以选择链接该模板的主机,或者在主机配置页面的Template标签中选择想要链接的模板,不管用哪种方法都可以把模板链接到主机上。
当模板链接到主机后,主机会继承所有在模板中添加的监控项、触发器、宏变量等,如果主机上存在以前配置的相同名称的监控项、触发器等,都会被覆盖。在模板中没有定义的监控项、触发器等会保留。
如果你在模板中修改监控项、触发器等的配置,修改的结果会立刻在链接的所有主机中生效。如果你只在某个主机中修改从模板中继承的配置时,只在该主机生效,不会对模板中的配置有任何影响。不建议在主机上修改从模板继承的配置,因为你可以修改的配置参数很少,仅仅是个别选项可以修改,例如监控项中Update interval属性。
从主机上Unlink一个模板时,取消链接的同时不会从主机上删除从模板中继承的监控项、触发器等。如果使用Unlink and clear,取消链接的同时会删除所有从模板中继承的监控项、触发器等,这个操作可能会造成所有监控项的历史数据和趋势数据不可用。因此建议使用Unlink的方法取消连接的模板,然后在主机上禁用所有不使用的监控项和触发器等,这样可以同时保留它们所有的历史数据。
Zabbix中我们可以链接模板到主机,也可以链接一个模板到其他的模板。这个操作相当于你链接了一个已经存在的模板到主机上。我们可以在模板配置页面的Linked templates标签中添加链接,如下图7-4所示。
图 7-4
在Link new templates中输入模板名称或点击Select按钮从弹出的模板列表页面中选择想要链接的模板,然后点击Add按钮添加。
如果要删除已经链接的模板,可以在Linked templates中,在相应模板名称的右边ACTION列中点击Unlink或者Unlink and clear。
下面让我们来看看嵌套模板的用法。
更灵活的定义宏变量
因为模板会继承所有链接模板中的配置,包括宏变量,所有我们可以设置更灵活通用的宏变量。例如,我们创建了一个名称是Template Macros的模板,并配置了一个{$PFREE}的宏变量,用这个宏的值做为监测剩余磁盘空间的百分比或剩余可用内存等的阈值。这个模板可以链接到TemplateOS Linux和Template OS Windows模板并在这些模板中使用{$PFREE}。如果你需要修改监测剩余磁盘空间的百分比或剩余可用内存等的阈值时,只需要到Template Macros模板中修改,修改的新的阈值会通过链接的模板在主机上生效。
定义多层次的模板
在实际环境中,我们会使用大量相同品牌甚至相同配置的服务器,只是安装的操作系统(如Linux、Windows)或者版本不同,完成不同的功能如数据库服务器、文件服务器、web服务器等等。你可以创建几个单独的模板,比如说监控硬件的模板、监控操作系统的模板、监控特定应用的模板等。监控硬件的模板可以链接到多个监控操作系统的模板,而监控操作系统的模板可以链接到监控特定应用的模板中。这样做的好处是新创建的主机只需要链接一个模板。你可以灵活的创建新的模板并嵌套它们,需要修改时只需要在一个位置修改就可以在整个嵌套的模板链中生效。
Zabbix不仅为模板提供了导入和导出功能,可以对下列的对象进行导入和导出:
模板:包括所有直接添加到模板中的监控项、触发器、图形、展示屏、发现规则和模板链接。
主机:包括所有直接添加的监控项、触发器、图形、展示屏、发现规则和模板链接。
拓扑图:包括所有相关的p_w_picpaths。
图像
展示屏
值映射
主机组(只能通过ZabbixAPI)
导出一个模板很简单,在模板列表页面选择需要导出的模板,点击Export按钮即可,如下图7-5所示。
图 7-5
Zabbix将所有支持的对象导出到一个文件中,主机或嵌套模板中的监控项、触发器等不会导出,当导入时嵌套模板中的监控项、触发器等会重新创建。通过low-level discovery创建或依赖low-leveldiscovery项目的触发器等不会导出。使用web监控项的触发器和图形也不会导出。
导入时在Configuration --> Templates页面中点击右上角的Import按钮进入导入页面,如下图7-6所示。
图 7-6
在import页面中,Import file字段选择需要导入的模板文件。在Rules中,我们可以看到UPDATE EXISTING、CREATE NEW、DELETE MISSING三个列,让我们来看一下这三个列的含义:
Update existing:如果导入的对象已经存在将会强制更新,可用来更新或简单地添加缺少的对象。
Create new:创建新的对象。
Delete missing:将删除导入文件中不存在的对象。
本文出自 http://ustogether.blog.51cto.com/8236854/1928287,如需转载请与作者联系。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。