# Zabbix

## Introducció

Zabbix és una plataforma de monitoratge de codi obert que permet supervisar l'estat de servidors, dispositius de xarxa, serveis i aplicacions. Ofereix recollida de mètriques, generació d'alertes, dashboards gràfics i gestió centralitzada d'inventari d'infraestructura.

![Zabbix logo](https://proferamon.com/tic/imatges/zabbix/zabbix01.png)

L'arquitectura de Zabbix es compon de:

- **Zabbix Server**: el nucli del sistema, processa les dades recollides i genera alertes.
- **Zabbix Frontend**: interfície web (PHP) per gestionar i visualitzar el sistema.
- **Zabbix Database**: emmagatzema la configuració i l'històric de dades (MySQL/MariaDB, PostgreSQL...).
- **Zabbix Agent**: s'instal·la als equips monitorats per recollir mètriques locals.

En aquest document instal·larem Zabbix Server, Frontend i Agent en un servidor Ubuntu 26.04, amb MariaDB com a base de dades i Apache com a servidor web. El nom d'equip utilitzat és `zabbix.thos.local`.

## Requisits previs

- Servidor Ubuntu 26.04 LTS amb accés `sudo`.
- Connexió a Internet per descarregar paquets.
- Resolució DNS o entrada a `/etc/hosts` per al nom del servidor.
- Mínim 2 GB de RAM i 2 CPU recomanats per a entorns petits.

**Escenari**

| Rol | Hostname | IP |
|---|-----|---|
| Server | `zabbix.thos.local` | 10.0.2.10 |
| Client | `client.thos.local` | 10.0.2.14 |

## 1. Instal·la el dipòsit oficial de Zabbix

Zabbix recomana utilitzar el seu dipòsit oficial en lloc dels paquets d'Ubuntu, ja que sol oferir versions més actualitzades.

Des de [Zabbix Download](https://www.zabbix.com/download) pots configurar el dipòsit per a la teva plataforma:

![Configurador del dipòsit](https://proferamon.com/tic/imatges/zabbix/zabbix02.png)

> [!TIP]
> Comprova a la web oficial de Zabbix quina és la versió més recent i l'enllaç exacte per a la teva versió d'Ubuntu abans de descarregar el paquet.

Descarrega Zabbix:

```bash
wget -c https://repo.zabbix.com/zabbix/7.4/release/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.4+ubuntu26.04_all.deb
```

Instal·la el paquet descarregat:

```bash
sudo apt install ./zabbix-release_latest_7.4+ubuntu26.04_all.deb
```

## 2. Instal·la els components

Actualitza la llista de paquets:

```bash
sudo apt update
```

Actualitza els paquets:

```bash
sudo apt upgrade
```

Instal·la el servidor, el frontend (amb Apache) i l'agent:

```bash
sudo apt install zabbix-server-mysql zabbix-frontend-php \
  zabbix-apache-conf zabbix-sql-scripts zabbix-agent php-fpm
```

## 3. Instal·la i configura MariaDB

Instal·la MariaDB;

```bash
sudo apt install mariadb-server
```

Habilitat l’engegada del servei ara i a l’arrencada:

```bash
sudo systemctl enable --now mariadb
```

Assegura MariaDB:

```bash
sudo mariadb-secure-installation
```

Durant l'assistent `mariadb-secure-installation`, respon afirmativament a les preguntes de seguretat habituals (eliminar usuaris anònims, deshabilitar accés root remot, eliminar base de dades de prova, etc.).

### 3.1. Crea la base de dades

Accedeix a MariaDB com a root:

```bash
sudo mysql -u root -p
```

Executa les sentències següents:

```sql
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'contrasenya';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
SET GLOBAL log_bin_trust_function_creators = 1;
FLUSH PRIVILEGES;
QUIT;
```

> [!WARNING]
> Substitueix `contrasenya` per una contrasenya robusta pròpia i no la deixis mai en text pla en documentació pública.

### 3.2. Importa l'esquema inicial

```bash
zcat /usr/share/zabbix/sql-scripts/mysql/server.sql.gz | sudo mysql --default-character-set=utf8mb4 -u zabbix -p zabbix
```

> [!NOTE]
> Has de posar la contrasenya de l'usuari `zabbix` amb privilegis a la base de dades. En aquest cas: 'contrasenya'.

Un cop importat, desactiva el paràmetre temporal que has activat abans:

```bash
sudo mysql -uroot -p -e "SET GLOBAL log_bin_trust_function_creators = 0;"
```

## 4. Configura Zabbix Server

Edita el fitxer de configuració del servidor:

```bash
sudo nano /etc/zabbix/zabbix_server.conf
```

Localitza i ajusta els paràmetres de connexió a la base de dades:

```nano
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=contrasenya
```

## 5. Configura proxy i PHP

Habilita els mòduls del proxy:

```bash
sudo a2enmod proxy proxy_http proxy_fcgi setenvif
```

Activa la configuració de PHP-FPM:

```bash
sudo a2enconf php8.5-fpm
```

Habilita ara PHP-FPM i en l'engegada:

```bash
sudo systemctl enable --now php8.5-fpm
```

## 6. Arrencada dels serveis

Reinicia el servei Apache:

```bash
sudo systemctl restart apache2
```

Reinicia els serveis de Zabix:

```bash
sudo systemctl restart zabbix-server zabbix-agent
```

Habilita l’engegada del servei a l’arrencada:

```bash
sudo systemctl enable zabbix-server zabbix-agent apache2
```

Comprova l'estat dels serveis:

```bash
sudo systemctl status zabbix-server --no-pager
```

Sortida esperada:

```ini
● zabbix-server.service - Zabbix Server
     Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; enabled; preset: enabled)
     Active: active (running) since Wed 2026-08-12 10:13:57 UTC; 18s ago
 Invocation: 5511d14fdb8e4b5ebfb592285ce12ef4
   Main PID: 15324 (zabbix_server)
      Tasks: 77 (limit: 1718)
     Memory: 58.2M (peak: 58.3M)
        CPU: 272ms
     CGroup: /system.slice/zabbix-server.service
             ├─15324 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
             ├─15326 "/usr/sbin/zabbix_server: ha manager"
             ├─15328 "/usr/sbin/zabbix_server: service manager #1 [processed 0 events, updated 0 event tags, deleted 0 problems, synced 0 service updates, idle 5.03440…
             ├─15329 "/usr/sbin/zabbix_server: configuration syncer [synced configuration in 0.020385 sec, idle 10 sec]"
             ├─15349 "/usr/sbin/zabbix_server: alert manager #1 [sent 0, failed 0 alerts, idle 5.033420 sec during 5.033570 sec]"
             ├─15350 "/usr/sbin/zabbix_server: alerter #1 started"
             ├─15351 "/usr/sbin/zabbix_server: alerter #2 started"
             ├─15352 "/usr/sbin/zabbix_server: alerter #3 started"
             ├─15353 "/usr/sbin/zabbix_server: preprocessing manager #1 [queued 0, processed 0 values, idle 5.243349 sec during 5.243545 sec]"
             ├─15354 "/usr/sbin/zabbix_server: lld manager #1 [processed 0 LLD rules, idle 5.027859sec during 5.027999 sec]"
             ├─15355 "/usr/sbin/zabbix_server: lld worker #1 [processed 0 LLD rules, idle 7.048790 sec during 7.050201 sec]"
             ├─15356 "/usr/sbin/zabbix_server: lld worker #2 [processed 0 LLD rules, idle 18.107309 sec during 18.108282 sec]"
             ├─15359 "/usr/sbin/zabbix_server: housekeeper [startup idle for 30 minutes]"
             ├─15362 "/usr/sbin/zabbix_server: timer #1 [updated 0 hosts, suppressed 0 events in 0.001623 sec, idle 59 sec]"
             ├─15363 "/usr/sbin/zabbix_server: http poller #1 [got 0 values in 0.000029 sec, idle 5 sec]"
             ├─15365 "/usr/sbin/zabbix_server: browser poller #1 [got 0 values in 0.000108 sec, idle 5 sec]"
             ├─15366 "/usr/sbin/zabbix_server: discovery manager #1 [processing 0 rules, 0 unsaved checks]"
             ├─15367 "/usr/sbin/zabbix_server: history syncer #1 [processed 1 values, 0+0 triggers in 0.000295 (0.000,0.000,0.000,0.000,0.000) sec, idle 1 sec]"
             ├─15368 "/usr/sbin/zabbix_server: history syncer #2 [processed 0 values, 0+0 triggers in 0.000013 (0.000,0.000,0.000,0.000,0.000) sec, idle 1 sec]"
             ├─15369 "/usr/sbin/zabbix_server: history syncer #3 [processed 0 values, 0+0 triggers in 0.000038 (0.000,0.000,0.000,0.000,0.000) sec, idle 1 sec]"
             ├─15370 "/usr/sbin/zabbix_server: history syncer #4 [processed 0 values, 0+0 triggers in 0.000034 (0.000,0.000,0.000,0.000,0.000) sec, idle 1 sec]"
             ├─15372 "/usr/sbin/zabbix_server: escalator #1 [processed 0 escalations in 0.001500 sec, idle 3 sec]"
             ├─15373 "/usr/sbin/zabbix_server: proxy poller #1 [exchanged data with 0 proxies in 0.000319 sec, idle 5 sec]"
             ├─15374 "/usr/sbin/zabbix_server: self-monitoring [processed data in 0.000040 sec, idle 1 sec]"
             ├─15375 "/usr/sbin/zabbix_server: task manager [processed 0 task(s) in 0.000595 sec, idle 5 sec]"
             ├─15376 "/usr/sbin/zabbix_server: poller #1 [got 0 values in 0.000019 sec, idle 5 sec]"
             ├─15378 "/usr/sbin/zabbix_server: poller #2 [got 0 values in 0.000010 sec, idle 5 sec]"
             ├─15382 "/usr/sbin/zabbix_server: poller #3 [got 0 values in 0.000010 sec, idle 5 sec]"
             ├─15383 "/usr/sbin/zabbix_server: poller #4 [got 0 values in 0.000012 sec, idle 5 sec]"
             ├─15384 "/usr/sbin/zabbix_server: poller #5 [got 0 values in 0.000011 sec, idle 5 sec]"
             ├─15385 "/usr/sbin/zabbix_server: unreachable poller #1 [got 0 values in 0.000245 sec, idle 5 sec]"
             ├─15387 "/usr/sbin/zabbix_server: trapper #1 [processed data in 0.000387 sec, waiting for connection]"
             ├─15389 "/usr/sbin/zabbix_server: trapper #2 [processed data in 0.000000 sec, waiting for connection]"
             ├─15390 "/usr/sbin/zabbix_server: trapper #3 [processed data in 0.000395 sec, waiting for connection]"
             ├─15391 "/usr/sbin/zabbix_server: trapper #4 [processed data in 0.000243 sec, waiting for connection]"
             ├─15392 "/usr/sbin/zabbix_server: trapper #5 [processed data in 0.000374 sec, waiting for connection]"
             ├─15393 "/usr/sbin/zabbix_server: icmp pinger #1 [got 0 values in 0.000014 sec, idle 5 sec]"
             ├─15394 "/usr/sbin/zabbix_server: alert syncer [queued 0 alerts(s), flushed 0 result(s) in 0.000001 sec, idle 1 sec]"
             ├─15400 "/usr/sbin/zabbix_server: history poller #1 [got 0 values in 0.000010 sec, idle 5 sec]"
             ├─15401 "/usr/sbin/zabbix_server: history poller #2 [got 0 values in 0.000010 sec, idle 5 sec]"
             ├─15402 "/usr/sbin/zabbix_server: history poller #3 [got 0 values in 0.000011 sec, idle 5 sec]"
             ├─15403 "/usr/sbin/zabbix_server: history poller #4 [got 0 values in 0.000213 sec, idle 5 sec]"
             ├─15404 "/usr/sbin/zabbix_server: history poller #5 [got 0 values in 0.000021 sec, idle 5 sec]"
             ├─15405 "/usr/sbin/zabbix_server: availability manager #1 [queued 0, processed 0 values, idle 5.027777 sec during 5.027868 sec]"
             ├─15429 "/usr/sbin/zabbix_server: trigger housekeeper [startup idle for 60 second(s)]"
             ├─15431 "/usr/sbin/zabbix_server: odbc poller #1 [got 0 values in 0.000028 sec, idle 5 sec]"
             ├─15432 "/usr/sbin/zabbix_server: http agent poller #1 [got 0 values, queued 0 in 5 sec, awaiting 0]"
             ├─15433 "/usr/sbin/zabbix_server: agent poller #1 [got 3 values, queued 3 in 5 sec, awaiting 0]"
             ├─15436 "/usr/sbin/zabbix_server: snmp poller #1 [got 0 values, queued 0 in 5 sec, awaiting 0]"
             ├─15438 "/usr/sbin/zabbix_server: configuration syncer worker [synced 0, updated 0 item names in 0.002852 sec, idle]"
             ├─15440 "/usr/sbin/zabbix_server: internal poller #1 [got 1 values in 0.002534 sec, idle 1 sec]"
             └─15441 "/usr/sbin/zabbix_server: proxy group manager #1 started"

d’ag. 12 10:13:57 zabbix systemd[1]: Starting zabbix-server.service - Zabbix Server...
d’ag. 12 10:13:57 zabbix systemd[1]: Started zabbix-server.service - Zabbix Server.
```

## 7. Assistent de configuració web

Obre un navegador i accedeix a:

```ini
http://zabbix.thos.local/zabbix
```

L'assistent d'instal·lació et guiarà pels passos següents:

1. **Benvinguda**: pantalla inicial, fes clic a *Next step*.

   ![Benvinguda](https://proferamon.com/tic/imatges/zabbix/zabbix03.png)

2. **Comprovació de requisits previs**: verifica que tots els mòduls PHP necessaris estan instal·lats i en verd.

   ![Comprovació de requisits](https://proferamon.com/tic/imatges/zabbix/zabbix04.png)

3. **Configuració de la base de dades**: introdueix les dades de connexió (`zabbix` / usuari / contrasenya).

   ![Configuració de la connexió de base de dades](https://proferamon.com/tic/imatges/zabbix/zabbix05.png)

4. **Detalls del servidor Zabbix**: nom del servidor i port (per defecte 10051).

   ![Nom del servidor](https://proferamon.com/tic/imatges/zabbix/zabbix06.png)

5. **Resum**: revisa la configuració abans de confirmar.

   ![Resum de preinstal·lació](https://proferamon.com/tic/imatges/zabbix/zabbix07.png)

6. **Finalització**: es genera el fitxer `/etc/zabbix/web/zabbix.conf.php`.

   ![Finalització](https://proferamon.com/tic/imatges/zabbix/zabbix08.png)

Les credencials per defecte del frontend són:

> - Usuari: `Admin`
> - Contrasenya: `zabbix`

![Inici de sessió](https://proferamon.com/tic/imatges/zabbix/zabbix09.png)

---

![Tauler de control](https://proferamon.com/tic/imatges/zabbix/zabbix10.png)

> [!WARNING]
> Canvia la contrasenya de l'usuari `Admin` immediatament després del primer accés, des d'*Usuaris → Usuaris → Admin → Canvia la paraula de pas*.

![Canvia la contrasenya](https://proferamon.com/tic/imatges/zabbix/zabbix11.png)

## 8. Configuració de l'agent Zabbix en un host monitorat

A cada equip que vulguis monitorar, instal·la l'agent:

```bash
sudo apt install zabbix-agent
```

Edita el fitxer de configuració de l'agent:

```bash
sudo nano /etc/zabbix/zabbix_agentd.conf
```

Ajusta els paràmetres principals:

```ini
Server=10.0.2.10
ServerActive=10.0.2.10
Hostname=client.thos.local
```

> [!NOTE]
> `Server` defineix des d'on s'accepten connexions de comprovacions passives. `ServerActive` indica cap a on l'agent envia dades de comprovacions actives.

Reinicia el servei:

```bash
sudo systemctl restart zabbix-agent
```

Habilita l’engegada del servei a l’arrencada:

```bash
sudo systemctl enable zabbix-agent
```

Comprova l'estat del servei:

```bash
sudo systemctl status zabbix-agent
```

Sortida esperada:

```ini
● zabbix-agent.service - Zabbix Agent
     Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; enabled; preset: enabled)
     Active: active (running) since Wed 2026-08-12 12:24:56 CEST; 20s ago
 Invocation: ec1456c9bc14475f801cc7614f31e79d
       Docs: man:zabbix_agentd
   Main PID: 4619 (zabbix_agentd)
      Tasks: 13 (limit: 4024)
     Memory: 6M (peak: 6.5M)
        CPU: 29ms
     CGroup: /system.slice/zabbix-agent.service
             ├─4619 /usr/sbin/zabbix_agentd --foreground
             ├─4621 "/usr/sbin/zabbix_agentd: collector [idle 1 sec]"
             ├─4622 "/usr/sbin/zabbix_agentd: listener #1 [waiting for connection]"
             ├─4623 "/usr/sbin/zabbix_agentd: listener #2 [waiting for connection]"
             ├─4624 "/usr/sbin/zabbix_agentd: listener #3 [waiting for connection]"
             ├─4625 "/usr/sbin/zabbix_agentd: listener #4 [waiting for connection]"
             ├─4626 "/usr/sbin/zabbix_agentd: listener #5 [waiting for connection]"
             ├─4627 "/usr/sbin/zabbix_agentd: listener #6 [waiting for connection]"
             ├─4628 "/usr/sbin/zabbix_agentd: listener #7 [waiting for connection]"
             ├─4629 "/usr/sbin/zabbix_agentd: listener #8 [waiting for connection]"
             ├─4630 "/usr/sbin/zabbix_agentd: listener #9 [waiting for connection]"
             ├─4631 "/usr/sbin/zabbix_agentd: listener #10 [waiting for connection]"
             └─4632 "/usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]"

d’ag. 12 12:24:56 client systemd[1]: Started zabbix-agent.service - Zabbix Agent.
d’ag. 12 12:24:56 client zabbix_agentd[4619]: Starting Zabbix Agent [client.thos.local]. Zabbix 7.0.22 (revision 70c23564978).
d’ag. 12 12:24:56 client zabbix_agentd[4619]: Press Ctrl+C to exit.
```

## 9. Alta d'un host des del frontend

1. Ves a **Monitorant → Equips → Creeu un equip**.

   ![Afegeix un equip](https://proferamon.com/tic/imatges/zabbix/zabbix12.png)

2. Introdueix el nom del host (ha de coincidir amb `Hostname` de l'agent).
3. Assigna un grup de hosts (p. ex. *Linux servers*).
4. A la pestanya **Interfaces**, afegeix una interfície tipus *Agent* amb la IP del host i el port 10050.
5. A la pestanya **Templates**, vincula una plantilla oficial, per exemple *Linux by Zabbix agent*.

   ![Configuració del nou equip](https://proferamon.com/tic/imatges/zabbix/zabbix13.png)

6. Desa els canvis.

Al cap d'uns minuts, el host hauria d'aparèixer amb l'estat **Zabbix agent: available** (icona verda) a la llista d'hosts.

![Disponible](https://proferamon.com/tic/imatges/zabbix/zabbix14.png)

## 10. Crea accions i notificacions

Per rebre alertes per correu electrònic:

1. **Configuració del mitjà de notificació**: *Alerts → Media types → Email*, configura el servidor SMTP.
2. **Assignació a l'usuari**: *Users → Users → Admin → Media*, afegeix un mitjà de tipus *Email* amb l'adreça de destí.
3. **Creació d'una acció**: *Alerts → Actions → Trigger actions → Create action*, defineix les condicions (per exemple, severitat ≥ *High*) i l'operació d'enviar missatge a l'usuari corresponent.

## 11. Comprova el funcionament

Pots forçar una comprovació ràpida des del servidor per confirmar que l'agent respon correctament:

```bash
sudo apt install zabbix-get
```

```bash
zabbix_get -s 10.0.2.14 -k agent.ping
```

Una resposta `1` confirma que l'agent està actiu i accessible.

## 12. Resol problemes habituals

| Problema | Possible causa | Solució |
|---|---|---|
| L'assistent web no arrenca | Apache no reconeix la configuració de Zabbix | Comprova que `/etc/zabbix/apache.conf` estigui inclòs i reinicia Apache |
| Host en vermell (*not available*) | Firewall bloquejant el port 10050/10051 | Obre els ports amb `ufw allow 10050/tcp` i `ufw allow 10051/tcp` |
| Error de connexió a la base de dades | Credencials incorrectes a `zabbix_server.conf` | Revisa `DBUser`/`DBPassword` i permisos a MariaDB |
| El servei no arrenca | Esquema de BD no importat correctament | Revisa `/var/log/zabbix/zabbix_server.log` per a errors detallats |

## 13. Referències

- [Zabbix 7.4 – Manual complet](https://www.zabbix.com/documentation/7.4/es/manual)
- [Instal·lació i primers passos](https://www.zabbix.com/documentation/7.4/es/manual/installation)
- [Zabbix Download – configurador de dipòsit](https://www.zabbix.com/download)
- [Requisits de programari (Required software)](https://www.zabbix.com/documentation/7.0/es/manual/installation/requirements)
- [Dipòsit de plantilles oficials](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates)

#### Versions d'aquest document

> + [HTML](https://proferamon.com/tic/zabbix.html)
> + [PDF](https://proferamon.com/tic/pdf/zabbix.pdf)
> + [ODT](https://proferamon.com/tic/odt/zabbix.odt)
> + [MD](https://proferamon.com/tic/md/zabbix.md)

[Domini Públic (CC0)](https://creativecommons.org/publicdomain/zero/1.0/deed.ca)
