Comment configurer l'élément Zabbix pour lire datatables du port et créer des charts?

Je suis nouveau sur Zabbix. J'envoie des données du client fluentd au port de server zabbix 10050. Ma question est Comment puis-je configurer l'élément Zabbix pour lire ces données à partir du port et générer un graphique pour cela.

Mes données sont comme

.{"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} ]} 

Il semble que vous souhaitez transmettre des données personnalisées à Zabbix. Vous ne pouvez pas envoyer des données randoms au port du server Zabbix (notez également que le port du server est 10051, et non 10050), vous devez utiliser le format approprié.

Veuillez noter que les éléments du trappeur doivent exister pour que l'une des methods ci-dessus fonctionne.

Il existe deux approches fondamentales pour ce que vous voulez, je crois.

L'un consiste à configurer (par model ou explicite – model préféré) les éléments que vous renverrez, spécifiquement et explicitement (c.-à-d., Vous savez exactement combien et quel sera leur nom). C'est le plus simple, mais pas toujours possible.

L'autre est de configurer l'élément dynamicment par "Détection de niveau bas", c'est-à-dire LLD. Cela vous permet d'utiliser un prototype d'élément (s) et de contrôler au moment de l'exécution, combien y a-t-il, et ce qu'ils préconisent (dans certaines limites). Ceci est utile pour des interfaces telles que les interfaces de commutation, où vous ne savez pas nécessairement combien (et même avec les ports virtuels, cela peut changer).

Il n'est pas clair de votre publication dont vous avez besoin, mais une fois que vous l'avez déterminé, il existe de nombreux exemples. Lorsque les gens se confondent souvent, ils traitent les deux étapes de manière similaire. Si vous avez besoin de LLD, tout ce qu'il fait, c'est créer les définitions d'élément; vous devez alors get des données en les tirant (pseudonyme d'un agent pour datatables) ou appuyez sur (zabbix trapper, éventuellement snmp trapper).

Le process normal (mais pas nécessaire) est que le LLD est peu fréquent (et habituellement plus exigeant du processeur) et le sondage pour remplir datatables plus fréquemment. Dans ce cas, des routines distinctes sont utilisées. Il est également possible d'utiliser une routine qui renvoie deux sets de données – datatables JSON pour créer les éléments via LLD (cela revient dans STDOUT) et datatables d'élément via Zabbix Sender (vers le port du server zabbix) pour remplir datatables créées articles. Notez que si vous faites cela, la première fois (ou deux) ne peuplera pas les éléments avec des données car il faut un peu de time pour que les éléments soient complètement définis et prêts, mais les appels subséquents à envoyer les deux fonctionneront, comme la création de LLD de un élément qui existe déjà est fondamentalement un non-op (je dis "essentiellement parce que si vous NE PAYEZ PAS de créer un élément pendant LLD, il devient éligible pour la suppression automatique, donc vous devez envoyer JSON pour tous les éléments chaque fois que vous faites LLD).

Encore une fois, pas complètement clair, vous avez besoin de LLD de votre question; sinon créer des éléments pour chacun d'eux, et les renvoyer en tant qu'éléments distincts soit d'un sondage à l'agent, soit encore en tant qu'exemplificateur zabbix (l'avantage des éléments "zabbix trapper" remplis par l'expéditeur zabbix est que vous pouvez, avec une opération à distance, calculer et envoyer des données pour beaucoup d'articles à la fois, par opposition à chaque élément faisant son propre sondage séparé).