//
you're reading...
Networking, System Administration, Ubuntu

Zabbix Server con Ubuntu Server 12.04LTS

Nel lavoro di network administrator e system administrator mi capita spesso di dover rispondere a domande sulle performance e/o sullo stato di salute dei server.

Per riuscire a tenere sotto controllo i server, mi sono affidato a un software di Network Monitoring che si chiama Zabbix. Installando l’agente su ciascuno dei server, riuscirete ad avere costantemente la situazione sotto controllo.

In questo articolo vedremo come configurarlo su un sistema Linux Ubuntu Server 12.04LTS, impostando la scrittura dei dati su un dispositivo esterno montato sul filesystem del server: sta a voi decidere come.

Ulteriori informazioni su Zabbix le trovate nel sito del progetto: http://www.zabbix.com

Note

Diamo per scontato che abbiate installato il sistema operativo e che lo abbiate configurato correttamente. Nel presente articolo, farò riferimento a un server che ho chiamato ubuntu e che si trova nel dominio example.com. Adattate i nomi al vostro caso.

Ricordo che per configurare un IP statico su un server Ubuntu 12.04LTS, è necessario editare il file di configurazione /etc/network/interfaces, tramite il comando

administrator@ubuntu:~$ sudo vi /etc/network/interfaces

come descritto nella sezione Network Configuration della guida ufficiale.

Mi raccomando… prestate attenzione anche alla parte di configurazione dei server DNS!

MySQL

Cominciamo dapprima a configurare il database dove memorizzeremo i dati relativi al monitoring provenienti dai vari sistemi. Verifichiamo quindi che il server MySQL sia installato sul server Ubuntu tramite il comando:

administrator@ubuntu:~$ sudo mysql -V

altrimenti procediamo alla sua installazione con il comando:

administrator@ubuntu:~$ sudo apt-get install mysql-server

Apache

Verifichiamo poi la presenza del Web Server Apache nel sistema, tramite il comando:

administrator@ubuntu:~$ apache2 -v

Se Apache non è installato, è necessario procedere all’installazione tramite il seguente comando:

administrator@ubuntu:~$ sudo apt-get install apache2

A questo punto, siamo pronti per installare il software di Network Monitoring Zabbix.

Zabbix

Installato il servizio MySQL e il servizio Apache, possiamo procedere all’installazione del package Zabbix. Eseguiamo quindi i seguenti comandi:

administrator@ubuntu:~$ sudo apt-get install zabbix-server-mysql zabbix-agent

Durante l’installazione vi verrà chiesto di inserire la password dell’utenza amministrativa del server MySQL installato. Inseritela.

Poi vi verrà chiesto di inserire la password dell’utenza per il servizio Zabbix: createne una nuova, possibilmente differente da quella dell’utenza amministrativa, in quanto sarà visibile in chiaro nei file di configurazione.

Installiamo poi il Frontend PHP che ci permette di amministrare Zabbix e verificare lo stato di salute della rete e dei relativi host presenti

administrator@ubuntu:~$ sudo apt-get install zabbix-frontend-php

A questo punto il server è installato, ma si rendono necessari alcuni aggiustamenti. Dapprima eseguiamo il login, che si troverà all’URL http://ubuntu.example.com/zabbix/ (ovviamente se avete utilizzato hostname e dominio suggerito nella nota iniziale, altrimenti adattatelo al vostro caso). Login e password di default saranno rispettivamente admin e zabbix. Il consiglio è quello di modificarle il prima possibile!

La schermata iniziale, appena installato il package, vi apparirà come questa:

Potete notare che vi vengono segnalati 4 errori. La configurazione di Zabbix prevede una serie di modifiche al file php.ini che non vengono fatte in automatico. Provvediamo quindi noi. Editiamo il file /etc/php5/apache2/php.ini, ad esempio tramite il comando:

administrator@ubuntu:~$ sudo vi /etc/php5/apache2/php.ini

modificando le seguenti righe:


memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 16M
max_execution_time = 600
max_input_time = 600
date.timezone = "Europe/Rome"

Per rendere operative le modifiche dobbiamo ricaricare il servizio Apache, tramite il comando:

administrator@ubuntu:~$ sudo service apache2 reload

che ci consente di leggere le nuove modifiche senza però necessariamente riavviare il servizio.

A questo punto, l’intera installazione è conclusa. Ulteriore obiettivo nostro è fare in modo che il server MySQL scriva i dati non nella directory predefinita, bensì su un filesystem separato. Questo passo è opzionale, dipende solo da dove volete che vengano scritti i dati!

MySQL: spostamento del DB su nuovo filesystem (opzionale)

Avendo utilizzato un hardware tipo VIA per costruire il server Linux Ubuntu 12.04LTS, mi ritrovo con un problema: ho relativamente poco spazio per gestire il database MySQL. Ho quindi pensato (come soluzione temporanea per capire se Zabbix fa al caso mio) di scrivere tali dati su un disco USB esterno. Vediamo quindi come installare il disco, formattarlo e spostare i DB dal percorso standard di MySQL.

Formattazione Hard Disk esterno con filesystem EXT4

Tramite il tool dmesg, si determina il device che riferisce all’Hard Disk esterno; dopodiché si esegue il comando di formattazione:

administrator@ubuntu:~$ sudo mkfs.ext4 /dev/sdb1

ottenendo così un device pronto per essere montato.

Definiamo poi già il mount point, creando la cartella corretta tramite il comando seguente:

administrator@ubuntu:~$ sudo mkdir /mnt/external

Mount Hard Disk esterno

Dovendo il server MySQL scrivere i dati sempre nello stesso mount point, ho dovuto cercare un metodo tramite il quale effettuare il mount di un disco USB sempre nello stesso punto del filesystem. Per farlo, ho utilizzato la tecnica del mount tramite UUID (modificando quindi il file /etc/fstab).

Eseguiamo quindi il comando blkid che ci consente di verificare quali siano gli UUID dei device riconosciuti dal sistema:

administrator@ubuntu:~$ sudo blkid

che produrrà un output simile al seguente:


/dev/sda1: UUID="b131c0c7-7f05-4b0e-be07-3a5ad7b990b9" TYPE="ext4"
/dev/sda5: UUID="1e1e9283-244b-4118-8461-85e2f5653536" TYPE="swap"
/dev/sdb1: UUID="f258c773-77cd-453b-911c-77b2c1744dc4" TYPE="ext4"

A questo punto, possiamo editare il file /etc/fstab tramite il comando:

administrator@ubuntu:~$ sudo vi /etc/fstab

e introducendo una nuova riga alla fine del file come la seguente:


# External USB
UUID=f258c773-77cd-453b-911c-77b2c1744dc4  /mnt/external   ext4    defaults,users            0       0

Per rendere operative le modifiche (e testare contemporaneamente la modifica al file /etc/fstab), diamo il comando di mount:

administrator@ubuntu:~$ mount /mnt/external

Possiamo poi verificare che il disco sia stato effettivamente montato tramite il comando df:

administrator@ubuntu:~$ df

che produrrà un output simile a questo:


Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda1        3497260 1310244   2011708  40% /
udev              238436       8    238428   1% /dev
tmpfs              98284     256     98028   1% /run
none                5120       0      5120   0% /run/lock
none              245704       0    245704   0% /run/shm
/dev/sdb1       40120292  723684  37386204   2% /mnt/external

Spostamento dati MySQL

Per spostare la cartella dei dati di MySQL, possiamo eseguire i seguenti passi. Dapprima fermiamo il servizio con il comando:

administrator@ubuntu:~$ sudo service mysql stop

Muoviamo l’intera cartella che contiene il DB MySQL sul nuovo percorso, con il comando:

administrator@ubuntu:~$ sudo mv /var/lib/mysql /mnt/external/

e linkiamo il vecchio percorso al nuovo, tramite un link simbolico, realizzabile con il comando:

administrator@ubuntu:~$ sudo ln -s /mnt/external/mysql/ /var/lib/mysql

A questo punto, non modifichiamo il file /etc/mysql/my.cnf, bensì aggiorniamo AppArmor alle nuove directory. Eseguiamo il comando seguente:

administrator@ubuntu:~$ sudo vi /etc/apparmor.d/usr.sbin.mysqld

e modifichiamo opportunamente le seguenti righe:


  /var/lib/mysql/ r,
  /var/lib/mysql/** rwk,
  /var/log/mysql/ r,
  /var/log/mysql/* rw,
  # DB su disco esterno
  /mnt/external/mysql/ r,
  /mnt/external/mysql/** rwk,
  /mnt/external/mysql/ r,
  /mnt/external/mysql/* rw,
  #

A questo punto riavviamo il servizio AppArmor con il comando:

administrator@ubuntu:~$ sudo /etc/init.d/apparmor restart

e riavviamo il server MySQL:

administrator@ubuntu:~$ sudo service mysql start

Annunci

Discussione

Trackback/Pingback

  1. Pingback: Zabbix Proxy Server 2.2 con CentOS 6.5 | GiEffe1971's Blog - 21/01/2014

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Archivio

Annunci
%d blogger hanno fatto clic su Mi Piace per questo: