Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "AlbericoAnobile/Prove0"
Differenze tra le versioni 3 e 82 (in 79 versioni)
Versione 3 del 19/09/2007 22.20.07
Dimensione: 5136
Commento:
Versione 82 del 04/10/2007 12.53.01
Dimensione: 6756
Commento: guida revisionata
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 8: Linea 8:
'''Monit''' è una applicazione utile a monitorare lo stato di file, directory, processi e device. E' in grado di intraprendere particolari misure di manutenzione (es. restart dei servizi, alert via mail) nel caso in cui riscontri particolari anomalie. '''rsnapshot''' è una applicazione in grado di effettuare il backup differenziale di porzioni di file system. Sfruttando [http://samba.anu.edu.au/rsync/ rsync] e gli [http://openskills.info/infobox.php?ID=60 hard link], è in grado di conservare diverse copie di backup, realizzate in diversi istanti di tempo, minimizzando la quantità di dati trasferiti e lo spazio disco occupato. Se utilizzato in concomitanza con [:SSHHowto:ssh] può effettuare il backup anche di sistemi remoti.
Linea 12: Linea 12:
Il programma è presente nel [:Repository/Componenti:componente] '''universe''' dei [:Repository:repository] ufficiali. Può essere quindi installato mediante uno fra i vari strumenti messi a disposizione dal sistema: [:SynapticHowto:Synaptic], [:AdeptHowTo:Adept] e [:Apt:apt-get]. Il programma è presente nel [:Repository/Componenti:componente] '''universe''' dei [:Repository:repository] ufficiali. Per installarlo è sufficiente [:InstallareProgrammi:installare] il pacchetto ''rsnapshot''.
Linea 16: Linea 16:
Per configurare '''monit''' è sufficiente modificare con un [:EditorDiTesto:editor di testo] con i [:Sudo:privilegi di amministrazione] il file di configurazione `/etc/monit/monitrc` Per configurare '''rsnapshot''' è necessario aprire il file `/etc/rsnapshot.conf` con un [:EditorDiTesto:editor di testo] con i [:Sudo:privilegi di amministrazione].
Linea 18: Linea 18:
Innanzitutto è necessario specificare quali mail server dovrà utilizzare per l'invio della mail di notifica. E' possibile aggiungere diversi mail server con le relative porte (se diverse da 25). Supponendo di poter utilizzare i mail server: `mx1.example.com` `mx2.example.com` (porta 10025) occorre aggiungere al file di configurazione la direttiva seguente: ||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Ogni riga del file di configurazione dovrà contenere elementi separati dal carattere'' «'''Tab'''» ''e non dovrà contenere spazi. Non è quindi consigliabile fare il copia ed incolla delle seguenti istruzioni.'' ||
Linea 20: Linea 20:
La seguente direttiva specifica la cartella di destinazione del backup:
Linea 21: Linea 22:
set mailserver mx1.example.com,
               mx2.example.com port 10025
rsnapshot_root /var/cache/rsnapshot/
Linea 25: Linea 25:
Specificare poi l'indirizzo mittente da cui l'applicazione invierà la posta (es. `monit@example.com`) Si supponga di effettuare il backup tutti i giorni e di voler conservare le seguenti copie:
Linea 27: Linea 27:
 * backup giornaliero dei 7 giorni precedenti;
 * backup settimanale delle 4 settimane precedenti;
 * backup mensile dei 6 mesi precedenti.

Le direttive di configurazione specifiche per una tale pianificazione sono le seguenti:
Linea 28: Linea 33:
set mail-format { from: monit@example.com } interval daily 7
interval weekly 4
interval monthly 6
Linea 31: Linea 38:
Specificare l'indirizzo a cui le mail di notifica dovranno essere consegnate (es. `sysadmin@example.com`)
Occorre definire le cartelle delle quali fare il backup. Supponendo di voler consevare i file contenuti nelle cartelle `/home /etc` e `/usr/local`, nella cartella `localhost`, aggiungere le seguenti istruzioni:
Linea 34: Linea 40:
set alert sysadmin@example.com backup /home/ localhost/
backup /etc/ localhost/
backup /usr/local/ localhost/
Linea 37: Linea 45:
Abilitare il web server interno per l'interfaccia di amministrazione. E' possibile specificare a quali indirizzi permettere la visualizzazione (es. `localhost`) e quali utenti, con relative password, poter utilizzare (in questo caso l'utente sarà "admin" con password "monit")
Se invece si intende fare il backup di porzioni di file system di un sistema remoto, è possibile utilizzare il protocollo [:SSHHowto:ssh], come nel seguente esempio:
Linea 40: Linea 47:
set httpd port 2812 and
     use address localhost # accetta connessioni solo da localhost
     allow localhost # permette la visualizzazione solo se la richiesta proviene da localhost
     allow admin:monit # utente admin con password monit
backup root@example.com:/home/ example.com/
Linea 46: Linea 50:
Una configurazione più sicura prevede l'utilizzo di SSL. Per far ciò è necessario generare un certificato x509 valido. Supponendo che questo sia contenuto, insieme alla relativa chiave privata, nel file `/var/certs/monit.pem` occorre aggiungere una direttiva del seguente tipo:
Inoltre è possibile aggiungere direttive per l'inclusione e l'esclusione di file mediante il [http://en.wikipedia.org/wiki/Pattern_matching pattern matching] così come specificato nella pagina di manuale di '''rsync'''. Suppondendo di voler escludere tutti i file `.mp3` dal backup è sufficiente aggiungere la seguente direttiva:
Linea 49: Linea 52:
set httpd port 2812 and
     SSL ENABLE
     PEMFILE /var/certs/monit.pem
     allow admin:monit
exclude *.mp3
Linea 55: Linea 55:
Qualora si vogliano monitorare le risorse utilizzate sul sistema, è possibile aggiungere una regola che avvisi l'amministratore nel caso in cui alcune soglie vengano superate. Per esempio:
Infine, è possibile testare il file di configurazione con il seguente comando:
Linea 58: Linea 57:
check system server.example.com
    if loadavg (1min) > 4 then alert
    if loadavg (5min) > 2 then alert
    if memory usage > 75% then alert
    if cpu usage (user) > 70% then alert
    if cpu usage (system) > 30% then alert
    if cpu usage (wait) > 20% then alert
sudo rsnapshot configtest
Linea 67: Linea 60:
Supponendo di voler monitare permessi e proprietario di una particolare directory (nel nostro caso `/bin`) aggiugere una regole del tipo:
 
= Automatizzare il backup =

È possibile effettuare il backup di vari servizi mediante degli script controllati da '''rsnapshot'''.

Supponendo di voler effetttuare il backup di un database [:Server/MySql:MySql], si realizzi uno script, da inserire in un nuovo file (es. `/root/scripts/backupmysql.sh`), simile al seguente:
Linea 70: Linea 66:
check directory bin with path /bin
    if failed permission 755 then unmonitor
    if failed uid 0 then unmonitor
    if failed gid 0 then unmonitor
#!/bin/bash

mysqldump nomedatabase --user=root --password=passworddiroot > dump.sql
Linea 76: Linea 71:
Per monitare un demone (es. ldap) si potrà aggiungere una direttiva del tipo:
Dopo aver impostato il nome del database in «nomedatabse» e dopo aver impostato le opzioni «user» e «password» con il nome utente desiderato e la relativa password, è possibile richiamare lo script a partire dal file di configurazione sopra citato con un'istruzione simile alla seguente:
Linea 79: Linea 73:
check process slapd with pidfile /var/run/slapd/slapd.pid
   start program = "/etc/init.d/slapd start"
   stop program = "/etc/init.d/slapd stop"
   if failed host 192.168.1.1 port 389 protocol ldap3 then restart
   if 5 restarts within 5 cycles then timeout
backup_script /root/scripts/backupmysql.sh localhost/mysql/
Linea 86: Linea 76:
Qualora il server ldap risultasse non disponibile, '''monit''' provvederebbe a riavviarlo. '''rsnapshot''' lancerà lo script e sposterà nella cartella `localhost/mysql` tutti i file di output prodotti nella cartella corrente.
Linea 88: Linea 78:
Per monitare un host remoto (es. `myserver` con IP `192.168.1.1`), su cui gira una istanza di '''MySql''', occorre aggiungere una direttiva di questo tipo: = Avvio del programma =
Linea 90: Linea 80:
{{{
check host myserver with address 192.168.1.1
    if failed icmp type echo count 3 with timeout 3 seconds then alert
    if failed port 3306 protocol mysql with timeout 15 seconds then alert
'''rsnapshot''' deve essere avviato specificando il tipo di backup che si intende utilizzare. Questo corrisponde ad una delle direttive {{{interval}}} sopra descritte.

Per avviare il tipo di backup desiderato digitare il relativo comando in una finestra di terminale:

 * '''backup giornaliero''': {{{
sudo rsnapshot daily
Linea 96: Linea 88:
Altri esempi sono disponibili all'url: [http://www.tildeslash.com/monit/doc/examples.php]

= Avviare il demone =

Abilitare monit modificando il file `/etc/defautl/monit` con un editor di testo e con i privilegi di amminstrazione. Occorre settare la variabile `startup` a 1:

{{{
startup=1
 * '''backup settimanale''': {{{
sudo rsnapshot weekly
Linea 106: Linea 92:
infine avviare il demone

{{{
sudo /etc/init.d/monit start
 * '''backup mensile''': {{{
sudo rsnapshot monthly
Linea 112: Linea 96:
L'interfaccia di '''Monit''' sarà ora raggiungibile mediante protocollo `http` sulla porta 2812 (es. `http://localhost:2812`) Aggiungendo l'opzione '''-t''' al comando è possibile verificarne il corretto funzionamento. Quello che segue è un esempio:
{{{
sudo rsnapshot -t daily
}}}
Linea 114: Linea 101:
Il risultato del precedente comando sarà simile al seguente:
{{{
echo 29059 > /var/run/rsnapshot.pid
mkdir -m 0755 -p /var/cache/rsnapshot/daily.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    --exclude=*.mp3 /home /var/cache/rsnapshot/daily.0/localhost/
mkdir -m 0755 -p /var/cache/rsnapshot/daily.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    --exclude=*.mp3 /etc /var/cache/rsnapshot/daily.0/localhost/
mkdir -m 0755 -p /var/cache/rsnapshot/daily.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    --exclude=*.mp3 /usr/local /var/cache/rsnapshot/daily.0/localhost/
mkdir -m 0755 -p /var/cache/rsnapshot/daily.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    --exclude=*.mp3 --rsh=/usr/bin/ssh root@example.com:/home \
    /var/cache/rsnapshot/daily.0/example.com
mkdir -m 0755 -p /var/cache/rsnapshot/daily.0/localhost/
mkdir -m 0755 -p /var/cache/rsnapshot/tmp/
cd /var/cache/rsnapshot/tmp/
/root/scripts/backupmysql.sh
cd /home/albe/
sync_if_different("/var/cache/rsnapshot/tmp/", \
    "/var/cache/rsnapshot/daily.0/localhost/mysql/")
touch /var/cache/rsnapshot/daily.0/
}}}

= Pianificazione delle operazioni con cron =

Affinchè '''rsnaphost''' venga eseguito ad intervalli regolari, occorre configurare opportunamente [:CronHowTo:Cron].

Quella che segue è un esempio di configurazione:
 * '''backup giornaliero''' alle ore 00:00;
 * '''backup settimanale''' la domenica alle ore 6:00;
 * '''backup mensile''' ogni primo del mese alle 12:00.

Quella che segue è la pianificazione adatta al precedente esempio:
{{{
m h dom mon dow user command
0 0 * * * root /usr/bin/rsnapshot daily
0 6 * * 0 root /usr/bin/rsnapshot weekly
0 12 1 * * root /usr/bin/rsnapshot monthly
}}}
Linea 117: Linea 146:
 * [http://www.tildeslash.com/monit/ Sito ufficiale del progetto]
 * [http://www.howtoforge.com/server_monitoring_with_munin_monit_debian_etch Server Monitoring With munin And monit On Debian Etch]


## da questo punto in poi non modificare!
 * [http://www.rsnapshot.org/ Sito ufficiale del progetto]
 * [http://www.rsnapshot.org/howto/1.2/rsnapshot-HOWTO.en.html Rsnapshot HOWTO]
Linea 123: Linea 149:
CategoryNuoviDocumenti CategoryHomepage

BR

Introduzione

rsnapshot è una applicazione in grado di effettuare il backup differenziale di porzioni di file system. Sfruttando [http://samba.anu.edu.au/rsync/ rsync] e gli [http://openskills.info/infobox.php?ID=60 hard link], è in grado di conservare diverse copie di backup, realizzate in diversi istanti di tempo, minimizzando la quantità di dati trasferiti e lo spazio disco occupato. Se utilizzato in concomitanza con [:SSHHowto:ssh] può effettuare il backup anche di sistemi remoti.

Installazione

Il programma è presente nel [:Repository/Componenti:componente] universe dei [:Repository:repository] ufficiali. Per installarlo è sufficiente [:InstallareProgrammi:installare] il pacchetto rsnapshot.

Configurazione

Per configurare rsnapshot è necessario aprire il file /etc/rsnapshot.conf con un [:EditorDiTesto:editor di testo] con i [:Sudo:privilegi di amministrazione].

Immagine(Icone/Piccole/note.png,,center)

Ogni riga del file di configurazione dovrà contenere elementi separati dal carattere «Tab» e non dovrà contenere spazi. Non è quindi consigliabile fare il copia ed incolla delle seguenti istruzioni.

La seguente direttiva specifica la cartella di destinazione del backup:

rsnapshot_root  /var/cache/rsnapshot/

Si supponga di effettuare il backup tutti i giorni e di voler conservare le seguenti copie:

  • backup giornaliero dei 7 giorni precedenti;
  • backup settimanale delle 4 settimane precedenti;
  • backup mensile dei 6 mesi precedenti.

Le direttive di configurazione specifiche per una tale pianificazione sono le seguenti:

interval   daily    7
interval   weekly   4
interval   monthly  6

Occorre definire le cartelle delle quali fare il backup. Supponendo di voler consevare i file contenuti nelle cartelle /home /etc e /usr/local, nella cartella localhost, aggiungere le seguenti istruzioni:

backup   /home/      localhost/
backup   /etc/    localhost/
backup   /usr/local/ localhost/

Se invece si intende fare il backup di porzioni di file system di un sistema remoto, è possibile utilizzare il protocollo [:SSHHowto:ssh], come nel seguente esempio:

backup   root@example.com:/home/   example.com/

Inoltre è possibile aggiungere direttive per l'inclusione e l'esclusione di file mediante il [http://en.wikipedia.org/wiki/Pattern_matching pattern matching] così come specificato nella pagina di manuale di rsync. Suppondendo di voler escludere tutti i file .mp3 dal backup è sufficiente aggiungere la seguente direttiva:

exclude *.mp3

Infine, è possibile testare il file di configurazione con il seguente comando:

sudo rsnapshot configtest

Automatizzare il backup

È possibile effettuare il backup di vari servizi mediante degli script controllati da rsnapshot.

Supponendo di voler effetttuare il backup di un database [:Server/MySql:MySql], si realizzi uno script, da inserire in un nuovo file (es. /root/scripts/backupmysql.sh), simile al seguente:

mysqldump nomedatabase --user=root --password=passworddiroot > dump.sql

Dopo aver impostato il nome del database in «nomedatabse» e dopo aver impostato le opzioni «user» e «password» con il nome utente desiderato e la relativa password, è possibile richiamare lo script a partire dal file di configurazione sopra citato con un'istruzione simile alla seguente:

backup_script  /root/scripts/backupmysql.sh localhost/mysql/

rsnapshot lancerà lo script e sposterà nella cartella localhost/mysql tutti i file di output prodotti nella cartella corrente.

Avvio del programma

rsnapshot deve essere avviato specificando il tipo di backup che si intende utilizzare. Questo corrisponde ad una delle direttive interval sopra descritte.

Per avviare il tipo di backup desiderato digitare il relativo comando in una finestra di terminale:

  • backup giornaliero:

    sudo rsnapshot daily
  • backup settimanale:

    sudo rsnapshot weekly
  • backup mensile:

    sudo rsnapshot monthly

Aggiungendo l'opzione -t al comando è possibile verificarne il corretto funzionamento. Quello che segue è un esempio:

sudo rsnapshot -t daily

Il risultato del precedente comando sarà simile al seguente:

echo 29059 > /var/run/rsnapshot.pid
mkdir -m 0755 -p /var/cache/rsnapshot/daily.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    --exclude=*.mp3 /home /var/cache/rsnapshot/daily.0/localhost/
mkdir -m 0755 -p /var/cache/rsnapshot/daily.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    --exclude=*.mp3 /etc /var/cache/rsnapshot/daily.0/localhost/
mkdir -m 0755 -p /var/cache/rsnapshot/daily.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    --exclude=*.mp3 /usr/local /var/cache/rsnapshot/daily.0/localhost/
mkdir -m 0755 -p /var/cache/rsnapshot/daily.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    --exclude=*.mp3 --rsh=/usr/bin/ssh root@example.com:/home \
    /var/cache/rsnapshot/daily.0/example.com
mkdir -m 0755 -p /var/cache/rsnapshot/daily.0/localhost/
mkdir -m 0755 -p /var/cache/rsnapshot/tmp/
cd /var/cache/rsnapshot/tmp/
/root/scripts/backupmysql.sh
cd /home/albe/
sync_if_different("/var/cache/rsnapshot/tmp/", \
    "/var/cache/rsnapshot/daily.0/localhost/mysql/")
touch /var/cache/rsnapshot/daily.0/

Pianificazione delle operazioni con cron

Affinchè rsnaphost venga eseguito ad intervalli regolari, occorre configurare opportunamente [:CronHowTo:Cron].

Quella che segue è un esempio di configurazione:

  • backup giornaliero alle ore 00:00;

  • backup settimanale la domenica alle ore 6:00;

  • backup mensile ogni primo del mese alle 12:00.

Quella che segue è la pianificazione adatta al precedente esempio:

m h dom mon dow user    command
0 0  *   *   *  root    /usr/bin/rsnapshot daily
0 6  *   *   0  root    /usr/bin/rsnapshot weekly
0 12 1   *   *  root    /usr/bin/rsnapshot monthly

Ulteriori risorse


CategoryHomepage