如何configurationZabbix项目从端口读取数据并创buildgraphics?

我是Zabbix的新手。 我从stream利的客户端发送数据到zabbix服务器端口10050.我的问题是我应该如何configurationZabbix项目从端口读取这些数据并生成图表。

我的数据就像

.{"request":"agent.data","clock":1501499361,"data": [ {"key":"Type" ,"value":"INFIO" ,"host":"flunet1","time":1501499361}, {"key":"Action" ,"value":"RESET" ,"host":"flunet1","time":1501499361}, {"key":"RandNumber","value":"47820" ,"host":"flunet1","time":1501499361}, {"key":"Message" ,"value":"aavwafkfxwa","host":"flunet1","time":1501499361}, {"key":"Indexer" ,"value":"10891" ,"host":"flunet1","time":1501499361} ]} 

看来你想传递自定义数据到Zabbix。 您不能将任何随机数据推送到Zabbix服务器端口(也请注意,服务器端口是10051,而不是10050),您必须使用适当的格式。

请注意,捕捉器项目必须存在以上任何方法的工作。

有两种基本的方法来达到你想要的,我相信。

一个是configuration(通过模板或显式 – 模板首选),你将发送回哪些项目,具体和明确(即你确切知道多less,以及他们的名字将是)。 这是最简单的,但并不总是可能的。

另一种是通过“低级别发现”即LLDdynamicconfiguration项目。 这可以让你使用一个原型项目,并在运行时控制有多less,他们关心的是什么(在一些限制内)。 这对交换机接口是非常有用的,在那里你不一定知道会有多less(甚至可以改变它的虚拟端口)。

从你需要的信息中不清楚,但一旦你确定了,就有很多例子。 人们经常感到困惑的地方就是同样对待这两个步骤。 如果您需要LLD,则只需创build项目定义; 那么您仍然需要通过拉(查询数据的某个代理)或push(zabbix捕获器,可能是snmp捕获器)来获取数据。

正常的(但不是必须的)过程是LLD不经常(通常更多的处理器密集),并且轮询更频繁地填充数据。 在这种情况下,使用单独的例程。 也可以使用一个返回两组数据的例程–JSON数据通过LLD创build项目(返回到STDOUT),通过Zabbix Sender(到zabbix服务器端口)将项目数据填充到创build的项目。 请注意,如果您这样做,第一次(或两次)不会用数据填充项目,因为项目需要一点时间才能完全定义和准备完毕,但随后发送的两个调用都将起作用,如创buildLLD一个已经存在的项目基本上是一个没有操作(我说“基本上是因为如果你在LLD期间没有创build一个项目就有资格自动删除,所以你每次做LLD都需要为所有项目发送JSON)。

再次,不完全清楚你需要LLD你的问题; 如果不是只为每一个创build项目,并将它们作为单独的项目从轮询返回给代理,或者再次作为zabbix发件人(zabbix发件人填充的“zabbix捕捉器”项目的优点是你可以用一个远程操作计算和一次发送大量项目的数据,而不是每个项目进行单独的调查)。