Centreon è una piattaforma di monitoring open source che permette di monitorare infrastrutture di rete, sistemi e applicazioni attraverso un’interfaccia web intuitiva, con notifiche configurabili, gestione delle soglie di allarme e supporto per ambienti complessi con centinaia di host.
In questa guida vedremo come installare Centreon su un singolo server che va bene per piccole / medie installazioni. Nel caso di un numero elevato di hosts da monitorare è necessario separare i vari ruoli su più server in modo da distribuirne il carico. Ad esempio
- un server dedicato per il database
- un server con il ruolo di Central Poller
- uno o più server con il ruolo di Remote Poller per il monitoraggio dei servizi
Aggiornamento del sistema
Il primo passo è aggiornare i pacchetti del sistema operativo
dnf -y updateDurante l’installazione, SELinux deve essere disabilitato per evitare conflitti. Sarà possibile riabilitarlo in modalità permissiva al termine del setup
sed -i s/^SELINUX=.*$/SELINUX=disabled/ /etc/selinux/configDopo il riavvio, verificare lo stato
getenforce
# Output del comando
DisabledNota di sicurezza: Dopo l’installazione, è necessario riabilitare SELinux in modalità enforced.
Centreon 25.10 richiede i repository EPEL e CodeReady Builder (CRB)
dnf install -y dnf-plugins-core
dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
dnf config-manager --set-enabled crbPossiamo ora installare il repository ufficiale di Centreon per AlmaLinux
dnf config-manager --add-repo https://packages.centreon.com/rpm-standard/25.10/el9/centreon-25.10.repo
dnf clean all --enablerepo=*
dnf updateA questo punto dobbiamo abilitare il modulo PHP 8.2, necessario per il funzionamento di Centreon 25.10
dnf module reset php -y
dnf module enable php:8.2 -ySiamo ora pronti per l’installazione.
Installazione di Centreon
Per l’installazione possiamo utilizzare il pacchetto centreon-mariadb e centreon che includono tutto il necessario: Centreon, Apache, PHP 8.2 e MariaDB, in un unico comando
dnf install -y centreon-mariadb centreonCompletata l’installazione, dobbiamo impostare il fuso orario corretto per PHP. Modificare il file /etc/php.d/50-centreon.ini
echo "date.timezone = Europe/Rome" >> /etc/php.d/50-centreon.iniPer una lista completa delle Timezone è possibile consultare la pagina della documentazione di PHP
Se firewalld è attivo, aprire la porta 80 (HTTP) e la 443 (HTTPS)
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --zone=public --add-service=https --permanent
firewall-cmd --reloadOra abilitiamo e avviamo tutti i servizi necessari al funzionamento di Centreon
systemctl daemon-reload
systemctl enable --now mariadb
systemctl enable --now php-fpm
systemctl enable --now httpd
systemctl enable --now cbd
systemctl enable --now centreon
systemctl enable --now centengine
systemctl enable --now gorgoned
systemctl enable --now snmptrapd
systemctl enable --now centreontrapd
systemctl enable --now snmpde verifichiamo che tutti i servizi siano in esecuzione
systemctl status httpd php-fpm mariadb centreonSe i servizi risultano tutto avviati siamo quasi pronti per configurare Centreon dall’interfaccia WEB. Ma prima dobbiamo eseguire lo script di MySQL per mettere in sicurezza l’istanza
mysql_secure_installationVerranno proposte alcune domande e di seguito le opzioni da scegliere
- Enter current password for root (enter for none):
- Switch to unix_socket authentication [Y/n] N
- Change the root password? [Y/n] Y
- Remove anonymous users? [Y/n] Y
- Disallow root login remotely? [Y/n] Y
- Remove test database and access to it? [Y/n] Y
- Reload privilege tables now? [Y/n] Y
Ora apriamo un browser ed inserire la seguente URL
http://<ServerName>/centreonAl primo accesso verrà visualizzato il wizard di installazione
![]() | Alla schermata di Benvenuto, premere “Next“ |
![]() | Il sistema verifica che tutti i moduli PHP siano presenti. Se tutto è verde, cliccare su “Next“ |
![]() | Informazione su path dei vari moduli di Centreon. Lasciare i parametri di default e cliccare su “Next“ |
![]() | Anche in questa schermata lasciare i valori di default e premere “Next“ |
![]() | Impostare la password dell’utente amministratore (admin) ed i relativi dati. Tutti i campi sono obbligatori. Premere “Next“ |
![]() | Informazioni per la connessione al Database. Se l’istanza è sullo stesso server inseriamo “localhost” oppure l’indirizzo IP o il nome FQDN del server e la porta 3306 Inserire la password dell’utente “root” necessaria per la creazione del database e scegliere una password sicura per l’utente “centreon” che utilizzerà il database creato Premere “Next“ |
![]() | Il wizard creerà le tabelle del database e completerà la configurazione. Se tutte le voci saranno completate correttamente premere “Next“ |
![]() | Viene visualizzata la lista dei moduli aggiuntivi. Premere “Next“ |
![]() | Centreon è ora installato, Cliccare su “Finish” per andare alla schermata di login |
![]() | Entrare con le credenziali create al punto 5 del wizard di installazione per accedere alla pagina principale del sistema |
Centreon è ora pronto per essere utilizzato e per monitorare gli hosts.
Configurazione HTTPS
Esporre Centreon su HTTPS è fortemente consigliato, anche in ambienti interni, per proteggere le credenziali di accesso e il traffico API.
Se si dispone di una Certification Authority interna generare il CSR e la chiave privata (qui una guida) per ottenere il certificato. In alternativa possiamo generare un certificato Self-Signed.
Installiamo mod_ssl
dnf install -y mod_ssl opensslGeneriamo il certificato self-signed (nell’esempio valido 365 giorni)
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/pki/tls/private/centreon.key \
-out /etc/pki/tls/certs/centreon.crt \
-subj "/C=IT/ST=Italia/L=Milano/O=MyCompany/CN=centreon.domain.local"Impostiamo i permessi corretti ai file generati
chmod 600 /etc/pki/tls/private/centreon.key
chmod 644 /etc/pki/tls/certs/centreon.crtOra dobbiamo adattare la configurazione di Apache. Per prima cosa rimuoviamo il file /etc/httpd/conf.d/ssl.conf creato di default in quanto andremo a gestire la parte SSL nei nuovi file che creeremo
mv /etc/httpd/conf.d/ssl.conf /rootEditiamo il file /etc/httpd/conf/httpd.conf aggiungendo dopo la riga “Listen 80” la porta 443
Listen 80
Listen 443 httpsCreiamo il file /etc/httpd/conf.d/centreon-ssl.conf con il seguente contenuto
Define base_uri "/centreon"
Define install_dir "/usr/share/centreon"
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/centreon.crt
SSLCertificateKeyFile /etc/pki/tls/private/centreon.key
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder off
SSLSessionTickets off
Header set X-Frame-Options: "sameorigin"
Header always edit Set-Cookie ^(.*)$ $1;HttpOnly;SameSite=Strict
Header always set Strict-Transport-Security "max-age=63072000"
ServerSignature Off
TraceEnable Off
Alias ${base_uri}/api ${install_dir}
Alias ${base_uri} ${install_dir}/www/
<IfModule mod_brotli.c>
AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/javascript application/json
</IfModule>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/json
<LocationMatch ^\${base_uri}/?(?!api/latest/|api/beta/|api/v[0-9]+/|api/v[0-9]+\.[0-9]+/)(.*\.php(/.*)?)$>
ProxyPassMatch "fcgi://127.0.0.1:9042${install_dir}/www/$1"
</LocationMatch>
<LocationMatch ^\${base_uri}/?(authentication|api/(latest|beta|v[0-9]+|v[0-9]+\.[0-9]+))/.*$>
ProxyPassMatch "fcgi://127.0.0.1:9042${install_dir}/api/index.php/$1"
</LocationMatch>
ProxyTimeout 300
ErrorDocument 404 ${base_uri}/index.html
Options -Indexes +FollowSymLinks
<IfModule mod_security2.c>
SecRuleRemoveById 200003
</IfModule>
<Directory "${install_dir}/www">
DirectoryIndex index.php
AllowOverride none
Require all granted
FallbackResource ${base_uri}/index.html
</Directory>
<Directory "${install_dir}/api">
AllowOverride none
Require all granted
</Directory>
<If "'${base_uri}' != '/'">
RedirectMatch ^/$ ${base_uri}
</If>
</VirtualHost>Per forzare tutto il traffico su HTTPS, aggiungere un redirect permanente sulla porta 80. Per farlo creiamo il file /etc/httpd/conf.d/10-centreon-redirect.conf con il seguente contenuto
<VirtualHost *:80>
ServerName centreon.domain.local
Redirect permanent / https://centreon.domain.local/
</VirtualHost>Verifichiamo che la sintassi della configurazione di Apache sia corretta
apachectl configteste se l’output è “Syntax OK” riavviamo il servizio
systemctl restart httpdRiavviare anche i servizi principali di Centreon in modo che riconosca la nuova base_url in https
systemctl restart cbd centreon gorgonedOra, navigando su https://centreon.domain.local/ avremo il lucchetto nella barra degli indirizzi che confermerà la connessione cifrata.
Con un certificato self-signed, il browser mostrerà un avviso di sicurezza che è possibile ignorare per proseguire. Nella barra degli indirizzi avremo “Non sicuro” ma la connessione è cifrata. Per ambienti di produzione è consigliato generare i certificati firmati da una Certification Authority riconosciuta e valida.
Riattivazione di SELinux
All’inizio della guida abbiamo disabilitato SELinux per permettere l’installazione senza conflitti. Ora che Centreon è operativo, è buona pratica riabilitarlo almeno in modalità permissive che registra le violazioni nei log senza bloccarle, utile per identificare eventuali problemi prima di passare alla modalità enforcing.
sed -i s/^SELINUX=.*$/SELINUX=permissive/ /etc/selinux/configSe dopo alcuni giorni di utilizzo i log non mostrano violazioni bloccanti, è possibile passare alla modalità enforcing
# Controlla le violazioni SELinux registrate
ausearch -m avc -ts recent 2>/dev/null | audit2allow 2>/dev/null
# Passa a modalità enforced senza riavviare
setenforce 1
# Rende la modifica permanente
sed -i s/^SELINUX=.*$/SELINUX=enforcing/ /etc/selinux/configIn caso di problemi, tornare temporaneamente alla modalità permissive con setenforce 0 e consultare i log con journalctl -xe per identificare le policy da sistemare.
Conclusione
Nei prossimi articoli vedremo come sfruttare al meglio Centreon, esplorando le funzionalità che lo rendono uno strumento così potente. Tra le cose che affronteremo: aggiungere host e servizi, utilizzare i connectors, configurare le notifiche, creare le dashboard, …
Saranno visibili nella category “centreon“!










