zabbix8

La versione 8 di Zabbix introduce una serie di miglioramenti, tra cui i principali ci sono:

  • APM con OpenTelemetry
  • Un nuovo motore di correlazione CEP
  • Server MCP ufficiale, che consente di collegare un assistente AI alle API di Zabbix. Non è un componente che si avvia automaticamente installando il server Zabbix, ma occorre esplicitamente installare il pacchetto separato zabbix-mcp-server dal repository ufficiale. Le configurazioni si trovano nel file /etc/zabbix/zabbix_mcp_server.conf
  • Possibilità di esportare e importare le dashboard

zabbix-apm

Zabbix inizia a monitorare anche le applicazioni

Una delle limitazioni storiche di Zabbix riguarda il monitoraggio delle applicazioni. La piattaforma è sempre stata particolarmente efficace nel raccogliere informazioni sull’infrastruttura: disponibilità dei server, utilizzo della CPU, memoria, spazio disco, traffico di rete, servizi e processi. Tuttavia, sapere che un server funziona correttamente non significa necessariamente che anche l’applicazione ospitata su quel server stia funzionando bene.

Immaginiamo un’applicazione web composta da diversi componenti. Zabbix può monitorare tutti i vari componenti, verificandone la disponibilità e raccogliendo informazioni sulle rispettive risorse. Ma cosa succede quando una richiesta impiega dieci secondi per essere completata? Il monitoraggio tradizionale potrebbe segnalare che il server utilizza poca CPU, che il database è disponibile e che non ci sono problemi evidenti. Rimane però una domanda: dove vengono persi quei dieci secondi?

È proprio questo il problema che cerca di risolvere l’APM (Application performance monitoring), una metodologia di monitoraggio che permette di analizzare il comportamento interno delle applicazioni, seguendo le singole richieste durante la loro elaborazione.

Per implementare questa funzionalità, Zabbix 8.0 introduce il supporto a OpenTelemetry: non si tratta di un sistema di monitoraggio, ma di uno standard aperto che definisce come raccogliere, rappresentare e trasmettere i dati di telemetria prodotti dalle applicazioni.

Correlare gli eventi in modo intelligente

Un’altra novità particolarmente interessante è il nuovo motore di correlazione CEP (Complex Event Processing). Quando si verifica un guasto, spesso vengono generati numerosi eventi che sono soltanto conseguenze dello stesso problema iniziale.

Il risultato è una serie di notifiche che, pur essendo corrette, non aiutano necessariamente a individuare il problema originale.

Il CEP aiuta a identificare una relazione causa-effetto tra gli eventi, consentendo di ridurre il rumore generato dalle notifiche e rendere più semplice l’analisi degli incidenti.

Aggiornamento

Prima di aggiornare, verificare di rispettare i requisiti di Zabbix 8.0. In particolare:

  • PostgreSQL: 15.0-18.X
  • MariaDB: 10.11.00-12.3.X (in alternativa a PostgreSQL)
  • PHP: 8.2.0 - 8.5.X
  • Nginx: 1.20 o successiva

Per maggiori dettagli sull’aggiornamento, leggere la documentazione ufficiale.

  1. Eseguire uno snapshot della VM di Zabbix
  2. Arrestare il server Zabbix per impedire l’inserimento di nuovi dati nel database:
systemctl stop zabbix-server
systemctl stop zabbix-agent2
  1. Prima di procedere con l’aggiornamento, rimuovere il repository Zabbix attualmente configurato:
rm -rf /etc/apt/sources.list.d/zabbix.list
  1. Installare quindi l’ultimo pacchetto di configurazione del repository disponibile:
wget https://repo.zabbix.com/zabbix/8.0/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian13_all.deb
dpkg -i zabbix-release_latest+debian13_all.deb
  1. Eseguire quindi l’aggiornamento: apt update && apt upgrade
  2. Potrebbe comparire una richiesta relativa alla configurazione del server (o del proxy) Zabbix:
Configuration file '/etc/zabbix/zabbix_server.conf'
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ?  Your options are:
Y or I  : install the package maintainer's version
N or O  : keep your currently-installed version
D       : show the differences between the versions
Z       : start a shell to examine the situation
The default action is to keep your current version.
*** zabbix_server.conf (Y/I/N/O/D/Z) [default=N] ?
  1. Scegliere l’opzione più adatta alla situazione. Si consiglia di mantenere la configurazione attuale
  2. Aggiornare quindi il frontend Zabbix e riavviare il server web: systemctl restart nginx
  3. Avviare i componenti Zabbix aggiornati:
systemctl start zabbix-server
systemctl start zabbix-agent2

Riferimenti