Dimensione: 5171
Commento:
|
Dimensione: 6412
Commento:
|
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.'' || 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`, in una cartella dal nome {{{localhost}}}, aggiungere: |
Linea 21: | Linea 41: |
set mailserver mx1.example.com, mx2.example.com port 10025 |
backup /home/ localhost/ backup /etc/ localhost/ backup /usr/local/ localhost/ |
Linea 25: | Linea 46: |
Specificare poi l'indirizzo mittente da cui l'applicazione invierà la posta (es. `monit@example.com`) | Se invece si intende fare il backup di porzioni di file system di un sistema remoto, è possibile utilizzare [:SSHHowto:ssh]: |
Linea 28: | Linea 49: |
set mail-format { from: monit@example.com } | backup root@example.com:/home/ example.com/ |
Linea 31: | Linea 52: |
Specificare l'indirizzo a cui le mail di notifica dovranno essere consegnate (es. `sysadmin@example.com`) | E' inoltre possibile aggiungere direttive di inclusione ed esclusione di file mediante ''pattern matching'' così come specificato nella pagina di manuale di ''rsync''. Suppondendo di voler escludere tutti i file `mp3` dal backup è sufficiente aggiungere la direttiva: |
Linea 34: | Linea 55: |
set alert sysadmin@example.com | exclude *.mp3 |
Linea 37: | Linea 58: |
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") | == Backup Script == È possibile effettuare il backup di vari servizi, mediante alcuni script controllati da '''rsnapshot'''. [[BR]] 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}}}, del seguente tipo: |
Linea 40: | Linea 64: |
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 |
#!/bin/bash mysqldump nomedatabase --user=root --password=passworddiroot > dump.sql |
Linea 46: | Linea 69: |
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: | Dopo aver personalizzato il nome del database, il nome utente e la relativa password è possibile richiamare lo script a partire dal file di configurazione sopra citato |
Linea 49: | Linea 72: |
set httpd port 2812 and SSL ENABLE PEMFILE /var/certs/monit.pem allow admin:monit |
backup_script /root/scripts/backupmysql.sh localhost/mysql/ |
Linea 55: | Linea 75: |
Qualora si vogliano monitorare le risorse utilizzate sul sistema, è possibile aggiungere una regola che avvisi, tramite mail, l'amministratore nel caso in cui alcune soglie vengano superate. Per esempio: | '''Rsnapshot''' lancerà lo script e sposterà nella cartelle {{{localhost/mysql}}} tutti i file di output prodotti nella directory corrente == Testare il file di configurazione == La sintassi del file di configurazione può essere controllata con il comando: |
Linea 58: | Linea 82: |
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 85: |
Supponendo di voler monitare permessi e proprietario di una particolare directory (nel nostro caso `/bin`) aggiugere una regole del tipo: |
= Eseguire rsnapshot = '''Rsnapshot''' deve essere lanciato specificando il tipo di backup che si intende utilizzare. Questo corrisponde ad una delle direttive {{{interval}}} specificate in precedenza. Per lanciare il backup giornaliero occorre quindi digitare il comando: |
Linea 70: | Linea 92: |
check directory bin with path /bin if failed permission 755 then unmonitor if failed uid 0 then unmonitor if failed gid 0 then unmonitor |
sudo rsnapshot daily |
Linea 76: | Linea 95: |
Per monitare un demone (es. ldap) si potrà aggiungere una direttiva del tipo: | per il backup settimanale: |
Linea 79: | Linea 98: |
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 |
sudo rsnapshot weekly |
Linea 86: | Linea 101: |
In questo caso, qualora il server ldap risultasse non disponibile, '''monit''' provvederebbe a riavviarlo. Per monitare invece 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: |
e per il mensile: |
Linea 91: | Linea 104: |
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 |
sudo rsnapshot monthly |
Linea 96: | Linea 107: |
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: |
Passando il flag {{{-t}}} al comando è possibile testarne il funzionamento. Verranno semplicemente stampate a video tutte le azioni che '''rsnapshot''' eseguirà. |
Linea 104: | Linea 110: |
startup=1 | $ sudo rsnapshot -t daily 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/ |
Linea 107: | Linea 136: |
infine avviare il demone | == 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: |
Linea 110: | Linea 147: |
sudo /etc/init.d/monit start | 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 112: | Linea 152: |
L'interfaccia di '''Monit''' sarà ora raggiungibile mediante protocollo `http` sulla porta 2812 (es. `http://localhost:2812`) |
|
Linea 118: | Linea 155: |
* [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 124: | Linea 158: |
CategoryNuoviDocumenti | 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, in una cartella dal nome localhost, aggiungere:
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 [:SSHHowto:ssh]:
backup root@example.com:/home/ example.com/
E' inoltre possibile aggiungere direttive di inclusione ed esclusione di file mediante pattern matching così come specificato nella pagina di manuale di rsync. Suppondendo di voler escludere tutti i file mp3 dal backup è sufficiente aggiungere la direttiva:
exclude *.mp3
Backup Script
È possibile effettuare il backup di vari servizi, mediante alcuni script controllati da rsnapshot. BR 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, del seguente tipo:
mysqldump nomedatabase --user=root --password=passworddiroot > dump.sql
Dopo aver personalizzato il nome del database, il nome utente e la relativa password è possibile richiamare lo script a partire dal file di configurazione sopra citato
backup_script /root/scripts/backupmysql.sh localhost/mysql/
Rsnapshot lancerà lo script e sposterà nella cartelle localhost/mysql tutti i file di output prodotti nella directory corrente
Testare il file di configurazione
La sintassi del file di configurazione può essere controllata con il comando:
sudo rsnapshot configtest
Eseguire rsnapshot
Rsnapshot deve essere lanciato specificando il tipo di backup che si intende utilizzare. Questo corrisponde ad una delle direttive interval specificate in precedenza.
Per lanciare il backup giornaliero occorre quindi digitare il comando:
sudo rsnapshot daily
per il backup settimanale:
sudo rsnapshot weekly
e per il mensile:
sudo rsnapshot monthly
Passando il flag -t al comando è possibile testarne il funzionamento. Verranno semplicemente stampate a video tutte le azioni che rsnapshot eseguirà.
$ sudo rsnapshot -t daily 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/
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]