Vraag


Acties:
  • 0 Henk 'm!

  • Accendit
  • Registratie: November 2017
  • Laatst online: 21-01 16:47
Beste tweakers,

Ik ben nou al een aantal weken bezig om data vanuit onze UniFi controller in Zabbix te krijgen maar lijk nu toch echt vast te zitten.

Ik heb de Zabbix Server en Agent draaien op een Ubuntu 16.04 vm en ik gebruik het "UniFi-Proxy" script (github.com/zbx-sadman/unifi_proxy) om via Ubiquity's API data uit de controller te halen. Het script werkt naar behoren (dit heb ik getest) en levert een geldige JSON output.

Echter, als ik in de Zabbix server kijk naar de discovery rules staat hier 'Value should be JSON object', na de log te hebben bekeken lijkt de Zabbix agent de output van het script af te kappen. ik neem aan dat dit dan de maximale buffer grootte is van zabbix. Wij hebben namelijk zeer veel sites en access points, dus zeer veel data.

Wat zou een mogelijke oplossing hiervoor zijn? Ik wil het liefst niet beginnen aan het compilen van aangepaste Zabbix Agents of servers

Elke hulp word gewaardeerd!

[ Voor 7% gewijzigd door Accendit op 26-02-2018 13:07 ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 13:43

Kees

Serveradmin / BOFH / DoC
Na hoeveel bytes kapt hij het dan af?

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • Accendit
  • Registratie: November 2017
  • Laatst online: 21-01 16:47
Kees schreef op maandag 26 februari 2018 @ 13:20:
Na hoeveel bytes kapt hij het dan af?
Hoi Kees, ik vind het moeilijk dit precies vast te stellen. Als ik de JSON data uit de log file haal komt dit neer op 21889 Bytes (maar dit zal dus niet precies zijn). Als ik het hetzelfde commando handmatig uitvoer komt dit neer op 198532 Bytes (Dit is dus de volledige output)

[ Voor 4% gewijzigd door Accendit op 26-02-2018 13:43 ]


Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 13:43

Kees

Serveradmin / BOFH / DoC
De laatste keer dat ik daarmee te maken had was in zabbix sender. De json output werd heel erg random afgebroken en werkte soms wel en soms niet afhankelijk van hoe lang de response exact was (maar onder de 32kb werkte het wel altijd).

Dat heb ik uiteindelijk op kunnen lossen door de juiste header te gebruiken, maar ik heb geen idee of de discovery ook die header kan gebruiken. Eens testen of de normale zabbix client dat doet. blijkbaar niet.

Het 'probleem' met zabbix is dat ze hun eigen json implementatie gebruiken. En die doet soms lastig als hij de juiste grootte niet weet. Je zou kunnen proberen om je json response te voorzien van een header, zien of dat werkt.

In php code:
PHP:
1
2
        $size = strlen($json);
        $request = pack("a4CV2a*", "ZBXD", 1, $size, ($size >> 32), $json);

[ Voor 35% gewijzigd door Kees op 26-02-2018 14:00 ]

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • Spro
  • Registratie: Juli 2014
  • Laatst online: 17-06 14:39
Eerste waar ik aan denk: Timeouts op je server/agent config.

Hoelang loopt je script? By default zal een Zabbix agent een script binnen 3 seconden moeten uitvoeren (en binnen 4 seconden moet de response bij de server zijn).

(Ik moet eerlijk zeggen: ik heb niet naar de templates oid gekeken, dus ik doe even een long shot qua richting waar ik in denk)

[ Voor 22% gewijzigd door Spro op 26-02-2018 15:41 ]


Acties:
  • 0 Henk 'm!

  • Accendit
  • Registratie: November 2017
  • Laatst online: 21-01 16:47
Spro schreef op maandag 26 februari 2018 @ 15:40:
Eerste waar ik aan denk: Timeouts op je server/agent config.

Hoelang loopt je script? By default zal een Zabbix agent een script binnen 3 seconden moeten uitvoeren (en binnen 4 seconden moet de response bij de server zijn).

(Ik moet eerlijk zeggen: ik heb niet naar de templates oid gekeken, dus ik doe even een long shot qua richting waar ik in denk)
Klopt, Ik heb de Zabbix Agent geconfigureerd zodat hij 'Active' is. Dit houd dus in dat hij af en toe bij de Zabbix server checked wat hij moet doen en met welke interval. Hij wacht dus totdat het script klaar is en geeft deze informatie vervolgens door aan de Zabbix server. Dus dit zou niet het probleem moeten zijn

Acties:
  • 0 Henk 'm!

  • Spro
  • Registratie: Juli 2014
  • Laatst online: 17-06 14:39
Accendit schreef op maandag 26 februari 2018 @ 16:01:
[...]


Klopt, Ik heb de Zabbix Agent geconfigureerd zodat hij 'Active' is. Dit houd dus in dat hij af en toe bij de Zabbix server checked wat hij moet doen en met welke interval. Hij wacht dus totdat het script klaar is en geeft deze informatie vervolgens door aan de Zabbix server. Dus dit zou niet het probleem moeten zijn
Als Active item blijft de timeout ook geldig. Het enige verschil is dat de server geen verbinding meer naar de agent op zet en moet wachten tot de data er is.

Timeout van een agent is standaard 3 seconde...
Pagina: 1