Come personalizzare il logo del frontend di Zabbix

Cerca

In questo scenario abbiamo la necessità di personalizzare logo e vari link presenti sull’interfaccia di frontend di Zabbix. Vediamo come fare sia in ambiente tradizionale, sia in ambiente dockerizzato.

Rebranding di Zabbix in ambiente tradizionale

Nel caso di installazione tradizionale di Zabbix, l’operazione di rebranding è alquanto semplice in quanto Zabbix offre nativamente questa funzionalità. Questo GitHub repo contiene tutto quello che è necessario per l’operazione di rebranding.

Creare la struttura delle directory

Il primo passo è quello di creare la struttura delle directory. In base alla nostra versione, usiamo uno dei seguenti comandi.

Per versioni 7.0 e inferiori

				
					sudo mkdir -p /usr/share/zabbix/local/conf
sudo mkdir -p /usr/share/zabbix/rebranding
				
			

Per versioni 7.2 e superiori

				
					sudo mkdir -p /usr/share/zabbix/ui/local/conf
sudo mkdir -p /usr/share/zabbix/ui/rebranding
				
			
Copiare le nuove immagini

Copiamo le immagini con il nostro logo nella directory appena creata.

Per versioni 7.0 e inferiori

				
					sudo cp /path/to/your/images/*.svg /usr/share/zabbix/rebranding/
				
			

Per versioni 7.2 e superiori

				
					sudo cp /path/to/your/images/*.svg /usr/share/zabbix/ui/rebranding/
				
			

Impostiamo ora i permessi sui nuovi file di immagine. In genere la ownership da attribuire è www-data o apache, ma questo dipende dalla propria configurazione del web server.

Per versioni 7.0 e inferiori

				
					sudo chown -R www-data:www-data /usr/share/zabbix/local/conf
sudo chmod 755 /usr/share/zabbix/local/conf
sudo chmod 644 /usr/share/zabbix/local/conf/brand.conf.php
sudo chown -R www-data:www-data /usr/share/zabbix/rebranding
sudo chmod 755 /usr/share/zabbix/rebranding
sudo chmod 644 /usr/share/zabbix/rebranding/*
				
			

Per versioni 7.2 e superiori

				
					sudo chown -R www-data:www-data /usr/share/zabbix/ui/local/conf
sudo chmod 755 /usr/share/zabbix/ui/local/conf
sudo chmod 644 /usr/share/zabbix/ui/local/conf/brand.conf.php
sudo chown -R www-data:www-data /usr/share/zabbix/ui/rebranding
sudo chmod 755 /usr/share/zabbix/ui/rebranding
sudo chmod 644 /usr/share/zabbix/ui/rebranding/*
				
			
Creare il file di configurazione brand.conf.php

Ora non resta che creare il file di configurazione brand.conf.php

Per versioni 7.0 e inferiori

				
					vi /usr/share/zabbix/local/conf/brand.conf.php
				
			

Per versioni 7.2 e superiori

				
					vi /usr/share/zabbix/ui/local/conf/brand.conf.php
				
			

Nel file di configurazione inseriamo il seguente codice, personalizzandolo a piacimento

				
					<?php
return [
    'BRAND_LOGO' => './rebranding/my-logo-114x30.svg',
    'BRAND_LOGO_SIDEBAR' => './rebranding/my-logo-91x24.svg',
    'BRAND_LOGO_SIDEBAR_COMPACT' => './rebranding/my-logo-24x24.svg',
    'BRAND_FOOTER' => 'Alessandro Masciadri',
    'BRAND_HELP_URL' => 'https://www.alessandromasciadri.com/'
];
				
			

Rebranding di Zabbix in ambiente Docker

Nel caso in cui il nostro server Zabbix gira in ambiente Docker, le cose sono diverse. Anzitutto dobbiamo tenere in considerazione che possiamo procedere in due modi distinti:

  1. Bind Mount del file di configurazione e dei loghi.
  2. Build personalizzata dell’immagine Zabbix Frontend

1. Soluzione veloce: Bind Mount

La soluzione più veloce ed indolore (sicuramente adatta in fasi di test) è di creare i file sulla macchina host e di eseguire un bind mount dei file nel docker container. L’input a questa cosa l’ho ricevuto da questa Feature request aperta su GitHub. Creiamo quindi le cartelle e il file di configurazione sulla macchina host con questi comandi:

				
					mkdir -p ~/zabbix/local/conf
mkdir -p ~/zabbix/rebranding
				
			

Copiamo le immagini del nostro logo nella cartella ~/zabbix/rebranding

				
					cp /path/to/your/images/*.svg /usr/share/zabbix/rebranding/
				
			

Creiamo il file di configurazione

				
					vi zabbix/local/conf/brand.conf.php
				
			

Inseriamo il seguente codice personalizzandolo a piacimento

				
					<?php
return [
    'BRAND_LOGO' => './rebranding/my-logo-114x30.svg',
    'BRAND_LOGO_SIDEBAR' => './rebranding/my-logo-91x24.svg',
    'BRAND_LOGO_SIDEBAR_COMPACT' => './rebranding/my-logo-24x24.svg',
    'BRAND_FOOTER' => 'Alessandro Masciadri',
    'BRAND_HELP_URL' => 'https://www.alessandromasciadri.com/'
];
				
			

Apriamo il docker-compose.yaml utilizzato per la build dei container e aggiungiamo le righe di bind mount dei file

				
					volumes:
  - /root/zabbix/local/conf/brand.conf.php:/usr/share/zabbix/local/conf/brand.conf.php
  - /root/zabbix/rebranding/:/usr/share/zabbix/rebranding/
				
			

Nel mio caso uso il la versione con nginx e PostgreSQL, quindi il file da modificare è docker-compose_v3_alpine_pgsql_latest.yaml. La sezione completa si presenta pertanto in questo modo:

				
					zabbix-web-nginx-pgsql:
  extends:                                                                                  
   file: compose_zabbix_components.yaml
   service: web-nginx-pgsql        
  image: "${ZABBIX_WEB_NGINX_PGSQL_IMAGE}:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_IMAGE_TAG_POSTFIX}"
  volumes:       
   - /etc/timezone:/etc/timezone:ro          
   - /root/zabbix/local/conf/brand.conf.php:/usr/share/zabbix/local/conf/brand.conf.php
   - /root/zabbix/rebranding/:/usr/share/zabbix/rebranding/
				
			

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

Most Recent

Come eseguire unban di un IP su fail2ban

Se per disgrazia il nostro indirizzo IP da cui ci colleghiamo al nostro server è stato bannato da fail2ban, seguiamo questa guida per ripristinarlo in

Partners