张世宏(当代张思德) | Zabbix开源社区签约专家
2017-2021 Zabbix中国峰会演讲高朋2020年Zabbix环球峰会演讲高朋自主研发开源组件Zabbix报表系统ZbxTableZabbix作为企业级开源监控平台,资产管理也是其内置的功能之一,利用自带的资产管理可自动采集信息,在中小企业中可完备代替人肉Excel实现大略的资产管理。
Zabbix的资产功能在很早之前就已经存在,可进行大略的资产管理。本次以Zabbix6.0版本为例子。

在主界面上点击Inventory→overview可根据资产类型搜索对应设备,
点击Host可查看已绑定资产的设备,
那这里的资产是如何绑定到主机的呢?对付此问题是很多人的迷惑,此配置可通过模板批量配置也可手动录入。
2.资产模式Zabbix的资产配置有三种模式,分别为:Disabled,Manual,Automatic
Disabled: 禁用主机资产管理功能Manual: 通过手动添加干系资产信息Automatic: 通过关联干系的Item指标,自动添补资产信息点击Configuration→Hosts,任意选择一个Hosts,点击Inventory标签,即可看到当前主机的资产配置模式,默认为禁用。
Zabbix 供应70个资产字段,可完备知足对主机资产的管理。
3.映射指标常日情形下建议利用自动模式,主机Invertory模式可批量开启配置,点击Configuration→Hosts,选中多个主机点击Mass update按钮,Inventory mode选择Automatic即可,此页面还可对主机的Inventory 指标进行批量配置。
开启Automatic模式后,可绑定指定的Item到对应的Inventory字段。一样平常建议按照模板来绑定,做好指标的对应关系。
4.范例运用在实际运用中,每每须要对交流机、Linux操作系统、Windows操作系统平分歧类型的设备进行采集固定指标,比如设备CPU利用率、内存利用率、序列号等,由于不同类型的设备可能绑定不同类型的模板,而对应的指标又是不同的Item或者Key,因此无法实现统一的方法获取。此场景下可通过绑定到指定的Inventory字段,通过提取主机对应的Inventory字段即可获取。在配置Inventory字段映射之前,建议做好配置对应表。例如:
Inventory字段
Item字段
指标含义
software_app_a
CPU utilization
CPU利用率
software_app_b
Memory utilization
内存利用率
software_app_c
Total memory in Bytes
总内存
可将不同模板的指标绑定到同一个Inventory字段。以绑定CPU utilization为例子,点击Configuration→Templates选择Linux by Zabbix agent模板,点击CPU utilization指标,在Populates host inventory field字段下拉选择对应的Inventory字段,点击Update即可。
绑定之后,如果主机绑定了这个模板,并开启Inventory模式为Automatic,即可添补对应主机的CPU利用率指标到主机的Inventory字段,并且此数值会根据采集指标的变革而变革。此方法可大大简化指标的统一,如做CPU利用率Top指标时可直接比拟即可,不用从详细的Item指标获取,也不用关心详细的Item及Key。
5.原生改造Zabbix自带的Inventory字段名称可能不适用于你的环境,可通过大略的修正达到显示的自定义。如须要将Inventory的Type字段修正为HostType,可编辑Zabbix前真个include/hosts.inc.php文件
vi include/hosts.inc.php
搜索getHostInventories字段
function getHostInventories($orderedByTitle = false) { / WARNING! Before modifying this array, make sure changes are synced with C C analog is located in function DBget_inventory_field() in src/libs/zbxdbhigh/db.c / $inventoryFields = [ 1 => [ 'nr' => 1, 'db_field' => 'type', 'title' => _('Type') ], 2 => [ 'nr' => 2, 'db_field' => 'type_full', 'title' => _('Type (Full details)') ], 3 => [ 'nr' => 3, 'db_field' => 'name', 'title' => _('Name') ], 4 => [ 'nr' => 4, 'db_field' => 'alias', 'title' => _('Alias') ],
将
'title' => _('Type')
修正为
'title' => _('HostType')
保存文件页面创造已经修正成功。
这里只是修正页面显示的标题,并不修正数据库字段,通过此方法修正后,如后期对Zabbix进行升级后要重新修正。
6.API运用在Zabbix API中Inventory对应的操作并没有供应独立的API,而是通过zabibx的Host api供应,字段先容
https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object
同时也供应了Inventory配置的代码Demo
https://www.zabbix.com/documentation/current/en/manual/api/reference/host/update
Request:
{ "jsonrpc": "2.0", "method": "host.update", "params": { "hostid": "10387", "inventory_mode": 0, "inventory": { "location": "Latvia, Riga" } }, "auth": "038e1d7b1735c6a5436ee9eae095879e", "id": 1}
Response:
{ "jsonrpc": "2.0", "result": { "hostids": [ "10387" ] }, "id": 1}
7.建议
1.导出功能:Zabbix资产未供应导出功能,实际利用起来只能进行掩护,不能导出,建议官方增加资产导出功能; 2.资产字段自定义:Zabbix的资产字段目前只能展示特定的字段,不能实现字段的自定义,建议增加自定义显示字段,实现个性化显示.
思徳自研的ZbxTable 2.0将于近期发布,可适配最新的Zabbix 6.0版本,浩瀚功能全新升级,感兴趣的朋友欢迎关注“老张谈监控"。
福利大放送
《Zabbix监控系统之深度解析和实践》
适宜进阶用户
价格优惠截至4月30日,扫码即购!