使用Zabbix 4.2和4.4的Prometheus exporter的值,如何通过全自动方式进行协调和监控
按照标题所述,介绍在Zabbix 4.2或4.4中如何发现Promehteus的exporter数值,并进行全自动监控协作的方法。
公式文件
Prometheus的导出器非常广泛地支持各种产品,非常方便。
如果是只使用Prometheus来完成运营工作的情况下,就不需要做这样的事情了。但是,当希望与Zabbix进行集成管理时,使用这种方法可能会更加轻松一些。
合作的步骤
只需按照以下3个步骤进行执行即可。
-
- ① exporterから情報取得するHTTPエージェントアイテムを登録
-
- ② ①のアイテムを親にした依存アイテムのディスカバリルールを作成
(Prometheus→JSON変換、LLDマクロ化を実施)
③ ②のアイテムプロトタイプとして依存アイテムをLLDマクロを使って登録
注册一个从exporter获取信息的HTTP代理项,步骤1。
将类型设置为HTTP代理,并在URL处指定exporter的终端URL。(如http://主机名/metrics)
如果要将设置模板化,我认为这个URL部分最好使用模板宏化。
获取结果将以Prometheus的文本格式返回,因此将其设置为”文本”。
取得的结果是在访问/metrics时获得的原始数据,类似于上述描述的情况。
创建依赖项发现规则的步骤2。
可以将Discovery规则本身作为HTTP代理使用,但是这样做的话,我们还需要将在步骤3中设置的项目原型也转变为HTTP代理,并且会增加对exporter的调用机会,因此我们选择在依赖项中使用步骤1中一次性获取和利用该值的方式来解决。
在前处理阶段,从Promehteus的格式中提取特定指标的信息,并将其转换成JSON格式。关于参数的指定方式有多种可能,但我认为最好的方式是指定一个过滤器,使得每个指标的名称与后续的项目原型和对应的配对。上述示例中,我们从KONG API的exporter中发现了名为kong_http_status的指标部分。
LLD宏将转换为JSON的宏名称和注册值的位置进行了指定。
根据手续3,创建依存项目的项目原型。
最終通过使用LLD宏创建项目原型。这里需要使用在步骤1中创建的项目作为依赖项的父级项目。
使用前处理进行第2步设定的LLD宏,将多个项目的发现结果展开并自动创建定义。
在这种情况下,我们使用exporter从不同的http状态代码和服务中获取指标,所以我们指定了{#CODE}和{#SERVICE}这些标签名称来进行获取。
总结
只需要一个选项,以下是对这段话的中文本地化改写:
只需按照以下步骤操作即可。考虑到每个出口商的度量标准可能已经确定好了,只需根据规范制作模板,就可以实现各种监控,而不需要Zabbix Agent。