[ZBXNEXT-5453] Zabbix Agent2 (Golang PoC for 4.4) Created: 2019 Jun 04  Updated: 2024 Apr 10  Resolved: 2020 Mar 16

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Agent (G)
Affects Version/s: None
Fix Version/s: 4.4.0rc1, 4.4 (plan)

Type: Epic Priority: Major
Reporter: Rostislav Palivoda Assignee: Andris Zeila
Resolution: Fixed Votes: 4
Labels: golang
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Issue Links:
Causes
causes ZBXNEXT-5484 Zabbix Agent2 (Golang for 5.0) Open
Sub-Tasks:
Key
Summary
Type
Status
Assignee
ZBXNEXT-5454 SourceIP, ListenIP and Server suppor... Change Request (Sub-task) Closed Michael Veksler  
ZBXNEXT-5455 Add aliases support Change Request (Sub-task) Closed Viktors Tjarve  
ZBXNEXT-5456 Add log rotation support Change Request (Sub-task) Closed Andrejs Kozlovs  
ZBXNEXT-5457 Allow custom intervals for Zabbix age... Change Request (Sub-task) Closed Mārtiņš Tālbergs  
Epic Name: Zabbix Agent golang PoC
Team: Team A
Sprint: Sprint 56 (Sep 2019), Sprint 55 (Aug 2019), Sprint 53 (Jun 2019), Sprint 54 (Jul 2019), Sprint 57 (Oct 2019), Sprint 58 (Nov 2019), Sprint 59 (Dec 2019), Sprint 60 (Jan 2020), Sprint 61 (Feb 2020), Sprint 62 (Mar 2020)
Story Points: 0

 Description   

Agent written in Go with the following minimal requirements:

  • easily extendable with custom plugins for simple passive checks and collected checks (like CPU util)
  • retrieves configuration from Zabbix Server
  • pushes collected data to Zabbix Server
  • new item type "Zabbix Agent Plus” (feel free to come up with a better name)

It can be extended further if we get a positive outcome from the experiment.
 



 Comments   
Comment by Adrian Lopez [ 2019 Sep 27 ]

Instead of writing a new agent, maybe it is possible to adapt [Telegraf|https://github.com/influxdata/telegraf/].

We hace added a Zabbix [output|https://github.com/influxdata/telegraf/pull/3966], still not finished.

Currently Telegraf does not have a way to retrieve configuration from an external entity, but here is a POC of one of the maintainers of Telegraf to address that: https://github.com/danielnelson/tgconfig/tree/master/plugins/loaders/toml

Telgraf have more than 150 plugins to collect metrics from different software.

We will be glad to help.

Comment by Alexei Vladishev [ 2019 Oct 01 ]

Adrian, the idea behind the new Zabbix agent is to have much more advanced functionality not necessarily limited to data collection only.

Comment by Denis Kot [ 2019 Oct 29 ]

I'm not a Go programmer, maybe it's not possible to do it in Go, but why not to use a real modular system? When you don't have to recompile a whole agent (and then distribute it across all your instances, or even worse, have tens of different agents compiled) but simply compile your module (i.e. module.so), put it in, i.e. /etc/zabbix/agent2.modules/, add this path to zabbix.cond (include /etc/zabbix/agent2.modules/*.so) and restart agent.

Comment by Alexei Vladishev [ 2019 Oct 29 ]

Denis, I am sure it will be implemented at some point in the future. This way we will give everyone a choice: compile it in or use a plugin as a standalone module.

Generated at Fri Apr 26 21:22:22 EEST 2024 using Jira 9.12.4#9120004-sha1:625303b708afdb767e17cb2838290c41888e9ff0.