使用Zabbix进行资产管理
zabbix 作为企业级开源监控平台资产管理也是其内置的功能之一,使用自带的资产管理可自动采集信息,在中小企业中可完全代替人肉 Excel 实现简单的资产管理
1.初试资产
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 的资产字段目前只能展示特定的字段,不能实现字段的自定义,建议增加自定义显示字段,实现个性化显示;
8.ZbxTable 2.0 功能预告
距离 ZbxTable 版本发布已经有 2 年多了,Zabbix 6.0 LTS 也已经发布。ZbxTable 2.0 版本将于近期发布,可适配最新的 Zabbix 6.0 版本,众多功能全新升级。 全新首页更直观,内存、CPU Top 排名,设备归类统计 简单资产树管理,代替人肉 Excel 管理,数据均保存与 zabbix 数据库,不使用独立数据库,对接 zabbix 原生资产管理支持 Excel 导出。 设备总览,设备健康状态一目了然 直观显示设备状态,可导出 Excel 系统详情了解机器实时运行情况 网络设备列表,数据均来自 zabbix 自动采集 网络设备详情页,可查看端口流量及状态 物理服务器列表 简单告警分析及告警 TOP 告警历史查询 拓扑管理,可手动创建拓扑 节点及连线数据绑定 拓扑图效果
- Author: 当代张思德
- Link: https://blog.cactifans.com/2022/04/20/%E4%BD%BF%E7%94%A8Zabbix%E8%BF%9B%E8%A1%8C%E8%B5%84%E4%BA%A7%E7%AE%A1%E7%90%86/
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.