WordPress è la più popolare piattaforma di blog al mondo, utilizzabile anche on premise, installandolo dove si vuole.
Nel caso di una installazione on premise il problema principale è far si che il software sia sempre aggiornato.
Nella fattispecie le parti di WordPress che devono essere sempre aggiornate sono il core, i plugin e i temi.
Il controllo qua riportato, preso da GitHub e corretto e modificato, permette di tenere sotto controllo tramite Zabbix la presenza di aggiornamenti, in modo da poter provvedere ai necessari aggiornamenti.
Per il funzionamento è necessario che i siti siano tutti sotto la stessa sottodirectory, nel nostro caso /var/www/html
Attenzione: lo script discover_files.py richiede Python 2.7 per andare. Con Python 3 non funziona.
Il controllo è composto di quattro parti:
Un template per Zabbix
Uno script che effettua la discovery delle istanze WordPress
Uno script che controlla la presenza di aggiornamenti usando un programma denominato wp-cli
Un file di configurazione che istruisce Zabbix su dove trovare i necessari files
Passi necessari:
Installare sudo e curl:
apt install sudo curl
oppure
yum install sudo curl
Creare la cartella /etc/zabbix/scripts:
mkdir /etc/zabbix/scripts
Modificare /etc/passwd impostando l’utente zabbix con la HOME su /etc/zabbix/scripts e a la shell su /bin/bash
Installare wp-cli, sistemare i permessi e metterla nella directory corretta:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar chmod +x wp-cli.phar mv wp-cli.phar /usr/local/bin/wp-cli
Scaricare i due script e metterli in /etc/zabbix scripts:
cp wp_find_updates.sh /etc/zabbix/scripts/ cp dicover_file.py /etc/zabbix/scripts/
Renderli eseguibili:
chmod 755 /etc/zabbix/scripts/*
Scaricare il file di configurazione e metterlo in /etc/zabbix/zabbix_agentd.d/:
cp userparameter_wp.conf /etc/zabbix/zabbix_agentd.d/
Testare il file della discovery:
sudo -u zabbix -i /etc/zabbix/scripts/discover_files.py /var/www/html/ XndwLWNvbmZpZy5waHAk
(la stringa alla fine sta nel template ed è la traformazione in base64 della regexp che cerca i files wp-config.php
Testare il file che controlla la presenza di aggiornamento:
sudo -u zabbix -i /etc/zabbix/scripts/wp_find_updates.sh /var/www/html/hexgroup.it/
Installare il template su Zabbix