简介——米宏
曾就职于多家知名互联网企业(盛大、一下科技、新浪微博等)负责运维工作,主要从事系统运维、服务器监控,数据采集,日志处理、故障分析。是Zabbix中国社区的活跃用户之一,有超过1万小时的Zabbix使用,开发经验。
文章简介
使用Zabbix不仅可以关注您的IT基础结构,还可以从你的数据源收集并保存资产信息,并且以后可以在任何第三方工具中使用。
1
Zabbix资产记录
在Zabbix前端,有“资产记录”选项卡。它主要用于可视化目的,用于显示已收集并保留的有关主机和数据源的清单。实际配置发生在两个地方。
资产记录 选项卡
首先,您应该知道存在一个默认的主机清单模式,默认它是禁用的。如果转到管理 > 常规 > 其他,则可以看到它。
注意,本部分仅对前端内部的超级管理员可见。
默认情况下,您不收集任何记录内容,因此您无法在其他任何地方看到它。也有手动和自动模式可供选择,但是这么配置比较麻烦。
假设您有100台主机,并且在您决定在监控系统内实施自动清单收集之前,一直禁用清单收集。您可以在“其他”配置参数中选择“自动”并更新设置,但是如果查看已存在的主机配置,记录收集将保持禁用状态。原因是对默认主机清单模式的更改仅适用于新创建的主机。它不会更改前端内部已经存在的主机的设置。
如果要更改现有主机,可以使用API或直接数据库查询来完成。没有数据库经验的用户应谨慎使用直接查询,或选择使用API。
2
手动和自动
让我们找出两种模式之间的差异。
在 配置 > 主机 中,每个主机都有一个主机清单选项卡。如您所知,默认情况下禁用记录收集。
如果单击“手动”,您将看到一长列的字段。
主机清单选项卡
这些是默认情况下Zabbix中所有提供的清单字段。从模式名称可以猜到,您需要手工填写所有字段。
在自动模式下,无需手动填写字段。要配置自动清单收集,首先,在主机清单中选择自动。然后,转到“项目”>“您的项目”。查找“填充主机清单”字段框。选择要系统填充的字段,例如“名称”。
填充主机清单字段
如果转到主机,则会看到名称已添加到OS字段中。同名也是我的数据库项目的值。
名称
在该字段的对面,您可以看到正在收集值的项目。单击它转到其配置。
总的来说,您应该指定主机上的某些项目将填充主机清单字段,例如system.hostname将返回计算机的主机名。您还可以创建小的自定义脚本,这些脚本将检索“软件”中应用程序等字段的值。
至于可视化部分,请转到清单 > 概述以查看现有主机的概述。它们可以按任何字段分组,例如按名称分组。
主机清单概述
如果转到 清单 > 主机,则可以查看所有主机,主机组和带有值的实际清单字段。您也可以按字段类型搜索主机。
主机
好处
每种模式有什么好处呢?自动模式意味着您无需手动浏览前端指定字段。这些值将自动从项目中接收。但是,并非所有清单数据都可以由标准监控检索。缺点是您将必须创建自定义检查和自定义项目以获得所需的数据。
但是,在手动模式下,您将花费大量时间将信息手动添加到主机。在其他团队的帮助下,您实际上可以获取清单数据,而无需进行自定义检查和自定义项目,这些将其从主机中拉出。但是,显然,如果您有数千个主机,在前端手动配置它们是不现实的。
注意, 这时API就会派上用场。API见本期在线课程。
3
添加新的字段
关于Zabbix中清单中最常见问题是如何创建新字段以及如何更改现有字段。
现在让我回答第一个问题,可以添加一个新字段。但是,肯定需要重写前端内部代码并修改数据库表,不建议这样做。
更改现有字段的名称会更容易,更人性化,并且不会产生潜在的负面影响。让我们以“类型”字段为例。
每个字段名称都存储在前端文件中的某个位置。前端文件只是一个PHP文件。该值本身存储在数据库中。在任何情况下,您通常都不想更改数据库的默认版本。这是因为如果您没有数据库的默认架构,则下次您对Zabbix安装进行重大升级时,很有可能会失败。如果您在该领域没有任何经验,那么您将不知道是什么原因导致了该问题以及如何解决该问题。如果您有经验并且对数据库绝对了解,那么可以修改它。
要更改字段名称,我们将需要使用CLI并了解Zabbix前端的位置。如果从软件包安装了前端,默认它将在usr / share / zabbix。
让我们从库存中搜索一个字段:
user/share/zabbix
grep -R 'Hardware'
输出将列出程序文件。
程序文件输出
您将需要以下内容:
vim include/hosts.inc.php
该文件包含所有具有映射的清单字段。如您所见,第一个字段标题是Type,它也链接到名为type的数据库字段。
带有映射的清单字段
例如,我们可以将标题更改为Zabbix Cookbook。保存文件,刷新页面,然后转到此处,我们现在有了另一个字段名称。
字段名称已更改
不过要小心。我不建议修改数据库。而且,由于您不修改数据库,因此db_field有一些限制。它可以是大小,文本,整数等。您无法更改此设置,并且仍然受限于数据库字段范围。但是需要注意,升级前端(而不是Zabbix服务器)之后,这些更改将消失。
如果您需要保留新的字段名,最好的办法是从修改后的PHP文件制作补丁,或者只是保存升级前的PHP文件,然后将其与Zabbix新版本中的新PHP文件进行比较。再次修改。为了确保它能正常工作,我不建议您仅将其复制粘贴到新版本上。
不要忘记Zabbix灵活且开源。只要您知道如何编写适当的脚本,您就不受任何功能的限制。Zabbix与仅用于清单收集的其他工具一起使用就不会是个问题。您可以使用Zabbix API进行集成,在环境中运行清单收集软件,自动获取该软件提供的值,然后使用实际清单数据填充前端内部的主机。然后可以使用API查询将其导出。这将帮助您掌握公司中的资产数据。
希望您今天学到了一些新知识。感谢您的关注!
欢迎关注
Zabbix开源社区
分享更多精彩内容