Reporting v Zabbixu 7.0

V tomto návodu si ukážeme, jak si můžete vytvořit grafickou prezentaci dat pomocí nativních částí Zabbixu a pak si v rámci plánovaných reportů nechat tato data zasílat pravidelně na e-mail.

Instalace a konfigurace

Nejprve musíte nainstalovat balíček zabbix-web-service, a to z oficiálního repozitáře Zabbix:

dnf install -y zabbix-web-service

Následně přidáme repozitář pro instalaci Google Chrome. Toto je pro tyto účely Zabbixem doporučovaný prohlížeč, ovšem lze ho zaměnit i např. za Chromium nebo Firefox.

V prvním kroku si vytvoříme soubor s konfigurací repozitáře:

nano /etc/yum.repos.d/google-chrome.repo

Vložíme do něj následující nastavení, soubor uložíme a můžeme ho zavřít.

[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

Nyní již můžeme přejít k samotné instalaci prohlížeče Google Chrome, a to následujícím příkazem.

Pozn.: Součástí instalace prohlížeče není grafické rozhraní a není ani vyžadováno.

dnf install -y google-chrome-stable

V případě, že máme službu zabbix-web-service nainstalovanou na stejném serveru jako samotný Zabbix server, pak nemusíme nijak upravovat nastavení této služby.

V obou případech je však nutná dodatečná konfigurace Zabbix serveru.

Otevřeme si tedy konfigurační soubor Zabbix serveru:

nano /etc/zabbix/zabbix_server.conf

A zde upravíme následující konfigurační direktivy:

...
StartReportWriters=1
...
WebServiceURL=http://localhost:10053/report
...

V případě, že jsme službu zabbix-web-service nainstalovali na jiný server než ten, na kterém běží i Zabbix server, pak vůčihledně tomu upravíme i direktivu WebServiceURL.

Zároveň by pak bylo nutné nastavit tuto IP adresu do povolených právě na úrovni konfigurace Zabbix Web service, a to v cestě /etc/zabbix/zabbix_web_service.conf, příklad tohoto nastavení můžete vidět níže:

### Option: AllowedIP
# List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and
# Zabbix proxies.
# Example: AllowedIP=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
#
# Mandatory: yes
# Default:
# AllowedIP=

AllowedIP=127.0.0.1,::1

Po dokončení konfigurace můžeme službu pro reporting restartovat a povolit její automatické spouštění po startu:

systemctl restart zabbix-server.service
systemctl enable zabbix-web-service.service --now

Posledním krokem instalace je pak nastavení Frontend URL. Toto nastavení najdeme ve webovém rozhraní Zabbixu v menu Administration -> General.

Po uložení tohoto nastavení pomocí tlačítka Update můžeme přejít k samotnému vytváření reportů.

Nastavení reportingu

Dashboard

Plánované reporty jsou založené na konkrétním dashboardu, který se následně na základě předdefinovaného intervalu pravidelně zasílá na e-mail, nastavený v médiích toho konkrétního uživatele nebo skupiny uživatelů.

Pro účely této ukázky použijeme implicitní dashboard „Zabbix server health“, který je jako vzorový dashboard dostupný ihned po čisté instalaci Zabbixu.

Do tohoto dashboardu si ale přidáme widget, který je v Zabbix verze 7.0 novinkou, a to widget s názvem „Top Triggers“.

Tento widget umí reagovat časový filtr a je tudíž velice přínosný právě i pro potřeby reportingu, kde zasíláme data za určité období.

Po uložení nastavení dashboardu si pro tento dashboard vytvoříme i pravidelný reporting.

Plánované reporty

To uděláme tak, že v menu zvolíme nabídku Reports -> Scheduled reports a zde klikneme na tlačítko Create report.

Objeví se nám popup, kde si zvolíme konkrétního uživatele jako vlastníka reportu a zvolíme si jeho název.

V sekci Dashboard nastavení tohoto ukázkového reportu tlačítkem Select vybereme námi dříve upravený dashboard s názvem Zabbix server health.

Následně zvolíme za jaké období a jak často se nám má report zasílat, a zvolíme který den v týdnu, a ve který čas (toto je serverový čas!).

Zároveň si můžeme nastavit i konkrétní datum, od kdy má tento naplánovaný reporting začít a případně i jak dlouho má trvat.

A nakonec zvolíme předmět e-mailu a obsah jeho zprávy. Zde můžeme používat standardní HTML syntaxi, stejně jako globální makra.

V předmětu zprávy jsme pro naši ukázku použili následující text:

Weekly demo report From {{TIME}.fmttime(%d %B,-1w/w)} to {{TIME}.fmttime(%d %B %Y,-1w/w+6d)}

A v těle zprávy pak tento:

<b>Week from {{TIME}.fmttime(%d/%m/%y,-1w/w)} to {{TIME}.fmttime(%d/%m/%y,-1w/w+6d)}</b><br>
Week from {{TIME}.fmttime(%d/%B/%Y,-1w/w)} to {{TIME}.fmttime(%d/%B/%Y,-1w/w+6d)}<br>
Week number {{TIME}.fmttime(%W,-1w/w)}<br>

V konfigurační možnosti Subscriptions určujeme, kterým konkrétním uživatelům (nebo uživatelským skupinám) se má tento pravidelný report zasílat.

Případně můžeme určit i to, komu se naopak zasílat nemá.

Například to tedy může vypadat takto:

Funkčnost nastavení a například i vzhledu našeho reportu můžeme před jeho uložením otestovat pomocí tlačítka Test.

Po úspěšném otestování můžeme tento nový report vytvořit kliknutím na tlačítko Add.

Výsledek našeho nově vytvořeného ukázkového reportu pak bude v e-mailu vypadat takto:

Nejnovější verze Zabbix pak obsahuje i podporu pro více stránkové dashboardy.

Výsledkem toho je v rámci plánovaných reportů pak to, že přílohou e-mailu je PDF dokument, jehož každá stránka koresponduje s každou jednotlivou stránkou tohoto více stránkového dashboardu.

Příklad vícestránkového PDF reportu naleznete ZDE.

A to je vše! Nyní jste se naučili, jak vytvářet plánované reporty generované z dashboardů, které vás budou pravidelně e-mailem informovat o stavu vaší infrastruktury.