我有一个 Windows 应用程序(通过 WCF 服务公开),需要监视一些统计数据(例如在线用户图表、待处理文档图表等)。
我是 Zabbix 的新手,文档中没有详细的教程,所以我不确定如何实现这一点。据我所知,Zabbix 不提供任何从 SOAP XML 中提取数值的方法(如果我错了,请纠正我),因此我必须开发一个简单的应用程序来读取所需的值并以某种方式传递给 Zabbix。应用程序没有问题,我可以创建它,但问题是 - 我如何将值传递给 Zabbix 然后将它们显示为图表?
根据我找到的信息,我似乎有两个选择:
将所需值写入文件并使用 Zabbix Windows Agent 定期读取文件并将值发送到 Zabbix。我可以完全避免使用中间文件并配置代理以直接从我的自定义应用程序的返回值中检索值吗?
定期触发我的应用程序并使用 zabbix_sender(我希望包含在 Zabbix Windows Agents 包中的那个可以工作)将值直接输入到 Zabbix
有人能解释一下在企业环境中应该优先选择上述哪种选择吗?也许还有其他更简单的方法?我真的很感激一些简单的分步说明或一些教程的链接。
答案1
我假设你正在阅读或已经阅读过Zabbix 文档。如果你还没有,你应该把它放在手边并参考它。
首先,Zabbix 被动检查一次只能读取一个值,因此出于性能原因,如果您要发送大量数据,我会使用自定义编写的主动检查和 zabbix_sender。zabbix_sender 一次可以发送与您拥有的任意数量的值。
因此,正如你所看到的zabbix_sender 文档,它只接受带有空格分隔值的纯文本文件。听起来你可以管理那部分。
您传递多个键值对(例如myservice.onlineusers
,myservice.pendingdocuments
)及其值。
在 Zabbix 方面,您将为您的应用程序创建一个模板,向其中添加与您正在监控的每个统计数据相对应的项目,然后定义图表和触发器(如果您想要对其中任何一个发出警报)。Zabbix 文档确实对每个方面都进行了足够深入的介绍,但如果这是您第一次阅读,您可能需要放慢速度并更仔细地搜索。2.0 文档经过重新组织,使内容更容易找到,因此即使您使用的是以前版本的 Zabbix,您可能也希望使用它;大多数内容仍然相同。