Dimensione: 5358
Commento: guida revisionata, CategoryHomepage per la pagina Prove
|
Dimensione: 6694
Commento: sistemate alcune cose
|
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 periferiche. È in grado di intraprendere particolari misure di manutenzione 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. Una volta abilitato tale componente è sufficiente [:InstallareProgrammi:installare] il pacchetto ''monit''. | 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 l'applicazione è 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: |
Prima di tutto è necessario specificare quali [:Server/Mail:server di posta] verranno utilizzati per l'invio dei messaggi di notifica. È possibile aggiungere diversi server di posta con le relative porte. Supponendo di voler utilizzare per l'invio della posta i server `mx1.example.com` con porta standard 25 e `mx2.example.com`, con porta 10025, occorre aggiungere al file di configurazione la seguente direttiva: | ||<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.'' || La seguente direttiva specifica la cartella di destinazione del backup: |
Linea 20: | Linea 22: |
set mailserver mx1.example.com, mx2.example.com port 10025 |
rsnapshot_root /var/cache/rsnapshot/ |
Linea 24: | Linea 25: |
Specificare poi l'indirizzo mittente da cui l'applicazione invierà la posta, ad esempio `monit@example.com`: | 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: |
Linea 26: | Linea 33: |
set mail-format { from: monit@example.com } | interval daily 7 interval weekly 4 interval monthly 6 |
Linea 29: | 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 31: | Linea 40: |
set alert sysadmin@example.com | backup /home/ localhost/ backup /etc/ localhost/ backup /usr/local/ localhost/ |
Linea 34: | Linea 45: |
Abilitare il [:Server/Web:server web] interno per accedere all'interfaccia di amministrazione. È possibile specificare a quali indirizzi consentire l'accesso (es. `localhost`) e quali utenti, con le relative password. Nell'esempio che segue verrà configurato un singolo accesso di amministrazione per l'utente «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 36: | 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 42: | 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 44: | Linea 52: |
set httpd port 2812 and SSL ENABLE PEMFILE /var/certs/monit.pem allow admin:monit |
exclude *.mp3 |
Linea 50: | Linea 55: |
Qualora si vogliano monitorare le risorse utilizzate dal sistema, è possibile aggiungere una regola che avvisi l'amministratore nel caso in cui alcune soglie vengano superate. Quello che segue è un esempio generico: | Infine, è possibile testare il file di configurazione con il seguente comando: |
Linea 52: | 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 61: | Linea 60: |
Se si desidera invece monitare i permessi e il proprietario di una particolare cartella di sistema è utile aggiungere una regola simile alla seguente: | = 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 63: | 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 69: | Linea 71: |
Per monitare un servizio di sismtema è utile aggiungere una direttiva simile alla seguente: | 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 71: | 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 78: | Linea 76: |
Nella configurazione dell'esempio sopra citato, qualora il server '''ldap''' risultasse non disponibile, '''monit''' provvederà a riavviarlo. | '''rsnapshot''' lancerà lo script e sposterà nella cartella `localhost/mysql` tutti i file di output prodotti nella cartella corrente. |
Linea 80: | Linea 78: |
Per monitare un PC remoto su cui gira una istanza di [:Server/MySql:MySql], è utile aggiungere una direttiva simile alla seguente: {{{ 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 |
= 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 |
Linea 87: | Linea 88: |
Le diciture «myserver» e «192.168.1.1» vanno sostituite con gli indirizzi adatti ai propri scopi. = Avvio del servizio = Aprire il file `/etc/defautl/monit` con un [:EditorDiTesto:editor di testo] con i [:Sudo:privilegi di amministrazione], dunque modificare la variabile «startup» come nell'esempio seguente: {{{ startup=1 |
* '''backup settimanale''': {{{ sudo rsnapshot weekly |
Linea 96: | Linea 92: |
Infine avviare il servizio con il seguente comando in una finestra di terminale: {{{ sudo /etc/init.d/monit start |
* '''backup mensile''': {{{ sudo rsnapshot monthly |
Linea 101: | Linea 96: |
L'interfaccia amministrativa di '''monit''' sarà raggiungibile mediante all'indirizzo [http://localhost:2812]. | Aggiungendo l'opzione '''-t''' al comando è possibile verificarne il corretto funzionamento. Quello che segue è un esempio: {{{ sudo rsnapshot -t daily }}} |
Linea 103: | 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 dei backup con cron = Affinchè '''rsnaphost''' venga eseguito ad intervalli regolari, occorre configurare opportunamente [:CronHowTo:Cron]. Una configurazione di esempio che * lanci il backup giornaliero alle 00:00 * lanci il backup settimanale la domenica alle 6:00 * lanci il backup mensile ogni primo del mese alle 12:00 potrebbe essere la seguente: {{{ 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 106: | Linea 146: |
* [http://www.tildeslash.com/monit/ Sito ufficiale del progetto] * [http://www.tildeslash.com/monit/doc/examples.php Esempi di configurazione] * [http://www.howtoforge.com/server_monitoring_with_munin_monit_debian_etch Server Monitoring With munin And monit On Debian Etch] |
* [http://www.rsnapshot.org/ Sito ufficiale del progetto] * [http://www.rsnapshot.org/howto/1.2/rsnapshot-HOWTO.en.html Rsnapshot HOWTO] |
Linea 111: | Linea 149: |
CategoryHomePage | CategoryHomepage |
IndiceBR TableOfContents(1) |
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].
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 dei backup con cron
Affinchè rsnaphost venga eseguito ad intervalli regolari, occorre configurare opportunamente [:CronHowTo:Cron].
Una configurazione di esempio che
- lanci il backup giornaliero alle 00:00
- lanci il backup settimanale la domenica alle 6:00
- lanci il backup mensile ogni primo del mese alle 12:00
potrebbe essere la seguente:
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
[http://www.rsnapshot.org/ Sito ufficiale del progetto]
[http://www.rsnapshot.org/howto/1.2/rsnapshot-HOWTO.en.html Rsnapshot HOWTO]