středa 4. června 2014

Zabbix Dynamic PDF Report Generation

Hledal jsem nějaký nástroj, jak ze Zabbixu získat grafy do externího webu, případně jak grafy dostat do nějakého PDF reportu. Na fóru je jedno vlákno  věnované tomuto tématu. Tento nástroj existuje již od verze Zabbix 1.8 a tudíž byl několikrát upravován. Jak to funguje?

Pomocí Zabbix PHP API -  ZabbixAPI.class.php se připojíme k Zabbix serveru a získáme seznam hostů nebo seznam skupin. Pak se pomocí PHP funkcí CURL dotážeme na grafy patřičného hosta. Grafy uložíme do tmp_images a pak přijde na řadu class.pdf.php - PHP Pdf creation - R&OS. Tato knihovna vyplivne PDF soubor obsahujici grafy vybraného hosta v uceleném reportu, ukázka zde.

Na fóru je mnoho příspěvků  a po nějaké době autor založil projekt na GitHub.

Pro fungování tohoto nástroje je třeba mít instalovanou podporu php-json a php-curl.

Osobně jsem se zapotil při hledání problému, kdy se mi vytvořené PNG soubory generovaly, ale byl v nich jen html kód s hláškou, že nejsme autentizováni. Problém byl v rozdílnosti verzí Zabbix 1.8 a Zabbix 2.2.

name=Admin&password=zabbix&enter=Enter

zamenen za
 

name=Admin&password=zabbix&enter=Sign in

Tyto proměnné se nastavuji v konfiguračním souboru.

Pokud tento nástroj nainstalujeme na Zabbix server, je nutno si uvědomit, že tím vzniká bezpečnostní riziko, získání informací o monitorovaných systémech. Např. adresář ./report nepodléhá autentizaci a je třeba to ošetřit např. na úrovní webserveru apache direktiv, kde povolime report jen ze zmíněné IP adresy a nebo zahesluje pomoci zase apache.