|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Salvare in una casella e-mail statistiche di funzionamento e backup parziali
Trasformare casella e-mail in scatola nera per un piccolo server domestico.
In questa discussione proverò a condividere l'insieme di script e demoni che utilizzo per tenere sotto controllo un pc acceso 24/7, fornitore di vari servizi nella mia rete domestica. Certamente questo non è l'unico modo, né il più semplice, per realizzare una cosa di questo tipo. Soprattutto riguardo i punti 1 e 3 (i più corposi) so che esistono strumenti che permettono di monitorare sensori e sistema e millemila altre cose. Ma tutto era partito senza un disegno preciso, quindi, ad un certo punto, mi è nata la necessità di avere mail con questi dati e le ho create. Per molto tempo sono stato indeciso sull'utilità di postare tutto questo; diciamo che se non altro saprò dove andare a cercare se mi scorderò qualche dettaglio! Obiettivi
Programmi utilizzati
[1] Monitoraggio hardware. Si potrà realizzare questo punto se l'hardware che si vuole analizzare è ufficialmente supportato: lm-sensors supported devices. Se l'hardware non è esplicitamente elencato si può comunque tentare il primo passo. A. Individuazione e taratura dei sensori. Installazione ed utlizzo di lm-sensors. In alcuni casi i valori ottenuti col comando sensors risulteranno un po' strani o fuoriscala, in tal caso è utile modificare la sezione del file /etc/sensors3.conf relativa al vostro chip dei sensori (man sensors.conf per dettagli, oltre all'ottima introduzione presente nel file stesso). B. Installazione e configurazione sensord. Ora si può installare il pacchetto sensord. Il file di configurazione del demone è /etc/default/sensord. Questo è la configurazione che ho scelto: Codice:
RRD_FILE=/var/log/sensord.rrd RRD_INTERVAL=2m RRD_LOADAVG=yes Effettuata la sostituzione ho disabilitato il logging standard di sensord (che stamperebbe le letture dei sensori nei log ad ogni invocazione), lasciando solo il file round-robin. Se in seguito ad un aggiornamento il file rrd presentasse canali scambiati o mancanti è usualmente sufficiente fermare il servizio sensord, rimuovere il vecchio rrd (magari facendo un backup temporaneo) e riavviare il servizio. Il servizio genererà un nuovo file risistemando la situazione.Per disabilitare il logging è necessario editare il file /etc/syslog-ng/syslog-ng.conf commentando le seguenti sezioni: Codice:
# sensord
#destination sensord { file("/var/log/sensord"); };
# ~-~-~-~
# sensord filter
#filter f_sensord {
# facility(local4);
#};
# ~-~-~-~
# sensord
#log {
# source(s_all);
# filter(f_sensord);
# destination(sensord);
#};
C. Creazione dei grafici. A questo punto abbiamo un file che memorizza circolarmente i dati dei sensori ogni due minuti con uno storico di una settimana. Per ottenere dei grafici dai dati memorizzati possiamo utilizzare i versatili rrdtools: Codice:
# Esempio 2 voltaggi + carico CPU delle ultime 24 ore rrdtool graph daily-voltages.png --imginfo '<IMG SRC=/sensord/%s WIDTH=%lu HEIGHT=%lu>' \ -a PNG -h 800 -w 800 -v 'Voltaggio (V)' \ -t 'Voltaggi Phoenix' -x 'HOUR:1:HOUR:3:HOUR:3:0:%b %d %H:00' \ -s -1d -l 0 -u 13 -r --slope-mode \ DEF:in0=/var/log/sensord.rrd:in0:AVERAGE \ DEF:in1=/var/log/sensord.rrd:in1:AVERAGE \ DEF:loadavg=/var/log/sensord.rrd:loadavg:AVERAGE \ LINE2:in0#1C0674:"+3.3V" \ LINE2:in1#2A961C:"Vtt1.2V" \ LINE2:loadavg#F52F1D:"loadavg" > /dev/null Per avere grafici con leggibilità ottimale è necessario assicurarsi di avere installati i font Dejavu, disponibili pacchettizzati nelle principali distribuzioni.Ciò che riguarda i nostri dati sono i DEF ed i LINE
Torna all'indice. [2] Monitoraggio dei log. Per questa funzione mi sono affidato al semplice logcheck. Una volta installato verrà eseguito automaticamente ogni ora, riportando su di una casella di posta selezionata tutte le linee dei log principali che sono estranee ad un normale funzionamento della macchina. In caso di boot o reboot viene recapitato un messaggio differente, contenente l'intero dmesg/kernel.log, con titolo "Reboot: MACCHINA data ora". Il file di configurazione principale è /etc/logcheck/logcheck.conf; ecco le mie scelte: Codice:
REPORTLEVEL="server" SENDMAILTO="[email protected]" MAILASATTACH=0 Per poter ricevere le mail inviate da exim al nostro account Gmail (quindi tutte le mail citate in questa discussione) sarà necessario seguire questa guida. Personalmente, utilizzando una buona quantità di demoni, ho avuto la necessità di modificare i filtri regexp di logcheck per ridurne la verbosità. Per quanto riguarda il filtraggio "server", si trovano nella cartella /etc/logcheck/ignore.d.server/. Si tratta di espressioni regolari che corrispondono alle linee da ignorare. APPENDICE Trasformare syslog-ng in un server di logging di rete, su cui dirigere anche i log del modem (che naturalmente deve supportare la funzione di logging remoto/remote logging). Aggiunte da fare al file /etc/syslog-ng/syslog-ng.conf (###### evidenzia la sezione modificata): Codice:
######
# sources
# all known message sources
source s_modem {
udp(ip(192.168.1.1) port(514));
};
######
# destinations
# file in cui dirigere i messaggi del modem
destination df_modem { file("/var/log/modem.log"); };
######
# logs
# collegamento tra sorgente e file
log {
source(s_modem);
destination(df_modem);
};
Codice:
/var/log/modem.log {
rotate 7
daily
compress
delaycompress
copytruncate
missingok
notifempty
}
/var/log/modem.log In caso di attivazione di logcheck è consigliabile controllare che il modem, soprattutto in fase di connessione, non spifferi dati sensibili; se accadesse si può pensare di lasciar perdere la cosa, oppure aggiungere opportuni filtri a logcheck (in /etc/logcheck/ignore.d.CLASSE_MONITORAGGIO). Torna all'indice. [3] Quantificazione del traffico di rete. Questa è una buona guida su cui mi sono basato. Questo punto è simile al primo, ma occorre crearlo da zero. Nella guida è stato utilizzato script Perl che ho preferito frammentare nelle unità funzionali e trasformarlo in script bash.
Torna all'indice. [4] Monitoraggio hard disk. Utilizzando il demone smartd si possono tenere sotto osservazione i valori S.M.A.R.T. dei dischi fissi. Solitamente ci si accorge che un disco ha qualche problema quando inizia a bloccare la macchina o "dimenticare" dati: utilizzando smartd si può venire a conoscenza di valori preoccupanti non appena questi compaiono. Il file di configurazione è /etc/smartd.conf; questi sono i valori che ho utilizzato: Codice:
/dev/sda -d sat -n standby -H -I 194 -C 197 -U 198 -W 3,45,49 -m [email protected]
Invio di tutti i grafici. Codice:
#!/bin/sh TEMP_DIR="/tmp" DIR_CREATED=0 MAIL_TO="[email protected]" # Per circa mezz'ora resta in attesa della connessione I=0 while ! ping -c 4 -w 5 -q www.google.it >/dev/null 2>&1 ; do if [ $I -eq 9 ] ; then echo "Connessione non disponibile: creazione grafici terminata." exit 1 fi sleep 120 I=$(($I+1)) done if [ ! -d "$TEMP_DIR" ] ; then if ! mkdir -p -- "$TEMP_DIR" ; then echo "Creazione cartella temporanea fallita!" exit 1 fi DIR_CREATED=1 fi echo -n "Plotting Graphs: voltages, " # Dati voltaggi + carico CPU delle ultime 24 ore rrdtool graph "$TEMP_DIR/daily-voltages.png" --imginfo '<IMG SRC=/sensord/%s WIDTH=%lu HEIGHT=%lu>' \ -a PNG -h 800 -w 800 -v 'Voltaggio (V)' \ -t 'Voltaggi Phoenix' -x 'HOUR:1:HOUR:3:HOUR:3:0:%b %d %H:00' \ -s -1d -l 0 -u 13 -r --slope-mode \ DEF:in0=/var/log/sensord.rrd:in0:AVERAGE \ DEF:in1=/var/log/sensord.rrd:in1:AVERAGE \ DEF:in2=/var/log/sensord.rrd:in2:AVERAGE \ DEF:in3=/var/log/sensord.rrd:in3:AVERAGE \ DEF:in4=/var/log/sensord.rrd:in4:AVERAGE \ DEF:in5=/var/log/sensord.rrd:in5:AVERAGE \ DEF:in6=/var/log/sensord.rrd:in6:AVERAGE \ DEF:in7=/var/log/sensord.rrd:in7:AVERAGE \ DEF:in8=/var/log/sensord.rrd:in8:AVERAGE \ DEF:loadavg=/var/log/sensord.rrd:loadavg:AVERAGE \ LINE2:in0#1C0674:"+3.3V" \ LINE2:in1#2A961C:"Vtt1.2V" \ LINE2:in2#5C93CE:"Vddr2" \ LINE2:in3#59F80F:"Vchip" \ LINE2:in4#424036:"+5V" \ LINE2:in5#B16C63:"+12V" \ LINE2:in6#442F18:"Vcc1.5V" \ LINE2:in7#790654:"Vcore" \ LINE2:in8#FBA71A:"5VSB" \ LINE2:loadavg#F52F1D:"loadavg" > /dev/null FILES="$TEMP_DIR/daily-voltages.png" echo -n "temperatures, " # Dati temperature + carico CPU delle ultime 24 ore rrdtool graph "$TEMP_DIR/daily-temperatures.png" --imginfo '<IMG SRC=/sensord/%s WIDTH=%lu HEIGHT=%lu>' \ -a PNG -h 400 -w 800 -v 'Temperatura (C)' \ -t 'Temperature Phoenix' -x 'HOUR:1:HOUR:3:HOUR:3:0:%b %d %H:00' \ -s -1d -l 10 --slope-mode \ DEF:temp2=/var/log/sensord.rrd:temp2:AVERAGE \ DEF:temp1_0=/var/log/sensord.rrd:temp1_0:AVERAGE \ DEF:temp_sda=/var/log/sda.rrd:temp:AVERAGE \ DEF:loadavg=/var/log/sensord.rrd:loadavg:AVERAGE \ CDEF:10_x_loadAvg=loadavg,10,* \ LINE2:temp2#7b23c6:"system" \ LINE2:temp1_0#D01717:"CPU" \ LINE2:temp_sda#790654:"Hard disk" \ LINE2:10_x_loadAvg#F52F1D:"10_x_loadAvg" > /dev/null FILES="$FILES,$TEMP_DIR/daily-temperatures.png" echo -n "fan speed, " # Velocita' rotazione ventola nelle ultime 24 ore rrdtool graph "$TEMP_DIR/daily-fan.png" --imginfo '<IMG SRC=/sensord/%s WIDTH=%lu HEIGHT=%lu>' \ -a PNG -h 400 -w 800 -v 'RPM' \ -t 'Ventola Phoenix' -x 'HOUR:1:HOUR:3:HOUR:3:0:%b %d %H:00' \ -s -1d -l 700 --slope-mode \ DEF:fan1=/var/log/sensord.rrd:fan1:AVERAGE \ LINE2:fan1#F52F1D:"Sys Fan" > /dev/null FILES="$FILES,$TEMP_DIR/daily-fan.png" echo -n "ethernet interfaces" ETHS=$(/sbin/ifconfig | sed '/^eth\([[:digit:]]\{1,3\}\).*/!d ; s/\(\s\).*/\1/') if [ ! -z "$ETHS" ] ; then echo -n " ( " for ETH in $ETHS; do rrdtool graph "$TEMP_DIR/$ETH.png" --imginfo '<IMG SRC=/sensord/%s WIDTH=%lu HEIGHT=%lu>' \ -a PNG -h 80 -w 800 -v 'bytes/sec' \ -t "Traffico $ETH" -x 'HOUR:1:HOUR:3:HOUR:3:0:%b %d %H:00' \ -s -1d --slope-mode \ DEF:in=/var/log/$ETH.rrd:in:AVERAGE \ DEF:out=/var/log/$ETH.rrd:out:AVERAGE \ CDEF:out_neg=out,-1,* \ VDEF:inmax=in,MAXIMUM \ VDEF:inavg=in,AVERAGE \ VDEF:outmax=out,MAXIMUM \ VDEF:outavg=out,AVERAGE \ AREA:in#32CD32:"Incoming" \ LINE1:in#336600 \ GPRINT:inmax:"Max\: %5.1lf %S" \ GPRINT:inavg:"Avg\: %5.1lf %S\\n" \ AREA:out_neg#4169E1:"Outgoing" \ LINE1:out_neg#0033CC \ GPRINT:outmax:"Max\: %5.1lf %S" \ GPRINT:outavg:"Avg\: %5.1lf %S" > /dev/null FILES="$FILES,$TEMP_DIR/$ETH.png" echo -n "$ETH " done echo -n ")" fi echo "." echo -n "Invio mail a $MAIL_TO..." uptime | biabam $FILES -s "Phoenix sensors statistics `date`" $MAIL_TO echo "Done." echo -n "Rimozione " if [ $DIR_CREATED -eq 1 ] ; then if [ -d "$TEMP_DIR" ] ; then echo -n "$TEMP_DIR" rm -r -- "$TEMP_DIR" echo "." exit 0 else echo "cartella \"$TEMP_DIR\" FALLITA!" echo -n "Rimozione " fi fi echo "file:" FILES_ARR=$(echo "$FILES" | tr "," "\n") for file in $FILES_ARR ; do if [ -f "$file" ] ; then echo "\"$file\"" rm -- "$file" fi done exit 0 Report mensile. Assicurarsi di avere sufficienti dati: Codice:
rrdtool info /var/log/sensord.rrd | grep rows rra[0].rows = 20160 Codice:
rrdtool resize /var/log/sensord.rrd 0 GROW 1440 mv resize.rrd /var/log/sensord.rrd Codice:
# Dati voltaggi + carico CPU
GRAFICO_TITOLO="Voltaggi $HOSTNAME_CAPITAL - $(date +%Y-%m-%d\ %H.%M.%S)"
FILE="$TEMP_DIR/monthly-voltages_$DATE.png"
rrdtool graph "$FILE" --imginfo '<IMG SRC=/sensord/%s WIDTH=%lu HEIGHT=%lu>' \
-a PNG -h 800 -w 800 -v 'Voltaggio (V)' \
-t "$GRAFICO_TITOLO" \
-s -1m -l 0 -u 13 -r --slope-mode -y 0.1:10 -L 1 \
DEF:in0=/var/log/sensord.rrd:in0:AVERAGE \
DEF:in1=/var/log/sensord.rrd:in1:AVERAGE \
DEF:in2=/var/log/sensord.rrd:in2:AVERAGE \
DEF:in3=/var/log/sensord.rrd:in3:AVERAGE \
DEF:in4=/var/log/sensord.rrd:in4:AVERAGE \
DEF:in5=/var/log/sensord.rrd:in5:AVERAGE \
DEF:in6=/var/log/sensord.rrd:in6:AVERAGE \
DEF:cpu0_vid=/var/log/sensord.rrd:cpu0_vid:AVERAGE \
DEF:in8=/var/log/sensord.rrd:in8:AVERAGE \
DEF:loadavg=/var/log/sensord.rrd:loadavg:AVERAGE \
LINE2:in0#1C0674:"+3.3V" \
LINE2:in1#2A961C:"Vtt1.2V" \
LINE2:in2#5C93CE:"Vddr2" \
LINE2:in3#59F80F:"Vchip" \
LINE2:in4#424036:"+5V" \
LINE2:in5#B16C63:"+12V" \
LINE2:in6#442F18:"Vcc1.5V" \
LINE2:cpu0_vid#790654:"CPU_vid" \
LINE2:in8#FBA71A:"5VSB" \
LINE2:loadavg#F52F1D:"loadavg" > /dev/null
Torna all'indice. [5] Backup (protetto) delle porzioni fondamentali del sistema. Obiettivo: salvare la minima quantità di dati sufficiente per ricreare un sistema gemello del "backuppato" in tempi brevi. Mia ipotesi di soluzione: salvare TUTTA /etc, il config del kernel in uso ed un elenco dei pacchetti installati. Svolgimento: Codice:
#!/bin/sh
PASSWORD="Password!"
HOSTNAME=`hostname`
HOSTNAME_CAPITAL=`printf %c $HOSTNAME | tr [:lower:] [:upper:]`${HOSTNAME#`printf %c $HOSTNAME`}
TEMP_DIR="/tmp"
FILES=""
DIR_CREATED=0
RETURN=0
[email protected]
# Per due ore spera che la connessione funzioni...
I=0
while ! ping -c 4 -w 5 -q www.google.it >/dev/null 2>&1 ; do
if [ $I = 20 ] ; then
echo "Connessione non disponibile: backup annullato."
exit 1
fi
sleep 340
I=$(($I+1))
done
if [ ! -d "$TEMP_DIR" ] ; then
if ! mkdir -p -- "$TEMP_DIR" ; then
echo "Creazione cartella temporanea fallita!"
exit 1
fi
DIR_CREATED=1
fi
echo -n "Elenco dei pacchetti installati"
PACKAGES="packages-snapshot-`date +%Y-%m-%d_%H.%M.%S`"
if dpkg --get-selections > "$TEMP_DIR/$PACKAGES" ; then
FILES="$TEMP_DIR/$PACKAGES"
echo "."
else
PACKAGES=""
echo " Errore!"
fi
echo -n "Lista delle partizioni"
PARTITIONS="fdisk_-l"
if /sbin/fdisk -l > "$TEMP_DIR/$PARTITIONS" ; then
FILES="$FILES $TEMP_DIR/$PARTITIONS"
echo "."
else
PARTITIONS=""
echo " Errore!"
fi
# bz2
FILE="$TEMP_DIR/$HOSTNAME.tar.bz2"
if [ -d "$TEMP_DIR" ] ; then
cd "$TEMP_DIR"
fi
tar -cjf "$FILE" \
"$PACKAGES" \
"$PARTITIONS" \
--preserve-permissions /etc \
--preserve-permissions /boot/config-`uname -r` \
--preserve-permissions /boot/grub/menu.lst \
--preserve-permissions /var/spool/cron/crontabs \
>/dev/null 2>&1
if [ $? -eq 0 ] ; then
FILES="$FILES $FILE"
echo "."
else
echo " Errore creando il tar!"
RETURN=1
fi
if [ $RETURN -eq 0 ] ; then
echo -n "gpg"
FILE="$TEMP_DIR/$HOSTNAME.tar.bz2"
if gpg -q --yes -c --passphrase "$PASSWORD" "$FILE" ; then
echo " Done!"
echo -n "Invio mail a $MAIL_TO... "
FILE="$FILE.gpg"
FILES="$FILES $FILE"
date | biabam "$FILE" -s "$HOSTNAME_CAPITAL backup `date`" "$MAIL_TO"
echo "done."
else
echo " Errore creando il gpg!"
RETURN=1
fi
fi
echo -n "Rimozione "
if [ $DIR_CREATED -eq 1 ] ; then
if [ -d "$TEMP_DIR" ] ; then
echo -n "$TEMP_DIR"
rm -r -- "$TEMP_DIR"
echo "."
exit 0
else
echo "cartella \"$TEMP_DIR\" FALLITA!"
echo -n "Rimozione "
fi
fi
echo "file:"
FILES_ARR=$(echo "$FILES" | tr "," "\n")
for file in $FILES_ARR ; do
if [ -f "$file" ] ; then
echo "\"$file\""
rm -- "$file"
fi
done
exit $RETURN
Torna all'indice. [6] Archiviazione in una risorsa internet gratuita e di semplice fruizione. Il passaggio chiave di questo punto riguarda la modifica della configurazione di exim4 come smarthost per Gmail, come già evidenziato precedentemente, seguendo questa guida. Personalmente non ho idea di come sia il rapporto di exim4 con altri servizi e-mail. Naturalmente ci sono alcuni aspetti da tenere in considerazione, principalmente:
Torna all'indice.[7] Sincronizzazione DNS. Prima di tutto: perché FreeDNS? Perché i domini disponibili su DynDNS fanno schifo... resta che altri fornitori di strumenti DNS non necessitano di un piccolo hack come FreeDNS per aggiornare il record. Bene, ricordate la questione del logging centralizzato per la rete (appendice punto [2])? Ho pensato di utilizzarlo per capire quando è necessario contattare i server per aggiornare il record DNS. Una modifica ad /etc/syslog-ng/syslog-ng.conf ed ho creato un log "volatile" Codice:
######
# destinations
# file in cui dirigere i messaggi del modem
destination df_modem_volatile { file("/var/log/modem.volatile"); };
destination df_modem { file("/var/log/modem.log"); };
######
# logs
# collegamento tra sorgente e file
log {
source(s_modem);
destination(df_modem_volatile);
};
log {
source(s_modem);
destination(df_modem);
};
Codice:
#!/bin/sh # il grep dev'essere adattato all'output del modem quando annuncia la connessione if [ -s /var/log/modem.volatile ]; then if grep -q "Connection Successfully Established" /var/log/modem.volatile; then if ping -c 4 -w 5 -q www.google.it >/dev/null 2>&1 ; then # il log esiste, il modem ha registrato una connessione e la connessione è ancora attiva /usr/bin/inadyn --input_file /etc/inadyn.conf # svuota il log > /var/log/modem.volatile fi else > /var/log/modem.volatile fi fi exit 0 Codice:
--iterations 1 --dyndns_system [email protected] -a INDIRIZZO.DA.AGGIORNARE,AXfGt3hydtyXVD57SEg5csWEqwc8ujM4MkOwMg== Si tratta del parametro php visibile nel link Direct URL che si trova in fondo al riquadro centrale a sinistra. Torna all'indice.[*] Conclusioni. Tutto questo a cosa serve?
Bene, se avete critiche, offese, suggerimenti, scrivete pure! Ultima modifica di Gimli[2BV!2B] : 09-07-2013 alle 23:29. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2006
Messaggi: 1525
|
Lavorone Gimli! Complimenti!
Anch'io avevo realizzato una cosa simile, ma mooooolto piu' semplice , per monitorare la mancanza di corrente sull'UPS.Una cosa che mi sono sempre chiesto e sulla quale non ho trovato risposte precise: e' possibile tramite qualche servizio internet trasformare le mail di avviso in sms da spedire su un cellulare? L'inghippo e' trovare qualche operatore che fornisca questo servizio in modo decente, ma per ora non ho trovato nulla (per ovvi motivi commerciali (PS: conoscenza
__________________
-)(- debian -)(- |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Grazie psimem!
Per quanto riguarda gli SMS ci avevo pensato tempo fa. Dopo qualche giorno di ricerca non ho trovato nulla che mi convincesse al 100%. Quelli gratuiti erano difficilmente scriptabili causa captcha o altri impedimenti, poi, basandosi quasi esclusivamente su siti che offrono il servizio, erano moolto soggetti alla modifiche delle pagine web di appoggio... Avevo anche trovato l'esperienza di un tipo che aveva utilizzato direttamente un cellulare, usando una SIM che non usava più ed un vecchio apparecchio (Link sull'argomento). Sono riconoscente per la tua partecipazione! |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jan 2006
Messaggi: 1525
|
E' un piacere partecipare
Ho dato una scorsa al link e mi sembra molto interessante, appena ho piu' tempo approfondiro' senza dubbio.
__________________
-)(- debian -)(- |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Feb 2003
Città: Padova
Messaggi: 5905
|
Ottima guida Gimli!
L'unico consiglio che ti posso dare è quello di backuppare anche la cartella /var/spool/cron/crontabs. E' sempre abbastanza odioso riscrivere i cronjob Io sul mio server ho utilizzato strumenti simili per il monitoraggio, anche se meno affinati dei tuoi Monitoraggio hardware. lm-sensors + semplice script bash che mi avverte via email se la temp di cpu/chipset o hdd superano una soglia limite Più in generale uso Munin per la creazione di grafici (grazie a RRDtool) che riportano varie statistiche (Apache Disk Exim Mysql Network Nfs Uptime Processes Sensors Squid System), consultabili via browser Monitoraggio dei log. Demone di logging: sysklogd Analisi log ed invio e-mail: logwatch con report giornaliero Backup (protetto) delle porzioni fondamentali del sistema. Utilizzo un programma che ho trovato nei rep di debian: ibackup Giornalmente archivia i seguenti file e cartelle: Codice:
|-- boot|
| |-- config-2.6.26
| `-- grub
| `-- menu.lst
|-- etc
|-- tmp
| `-- sysinfo
| |-- deb_installed (dpkg -l)
| |-- deb_installed_gs (dpkg --get-selections)
| |-- dmesg
| |-- fdisk-l
| |-- ifconfig
| |-- netstat-nr
| |-- netstat-plunt (Active Internet connections)
| `-- netstat-s
|-- usr
| `-- src
| `-- linux
`-- var
`-- spool
`-- cron
`-- crontabs
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Grazie Devil!
Soprattutto grazie dello schema del tuo backup! Mi hai ricordato varie cose leggere (i 41 KBs che ho a disposizione sono un discreto limite) e molto utili che trascuravo: il menu.lst, l'fdisk -l, per non parlare dei cron su cui baso varie cose... Adatterò presto lo script (prima di domenica mattina alle 4:30...). Per quanto riguarda Munin ed Apache li avevo presi in considerazione quando avevo deciso di aumentare le informazioni da controllare. Ma il pc originale aveva 128MB di RAM (ben spesi tra bind9, openssh, mldo...., distcc, lirc [+ vlc] + mpd, ecc... ), poi desideravo poter monitorare la situazione da qualsiasi pc senza dover aprire un servizio pericoloso come Apache al mondo: quindi mi sono inventato 'sta roba... |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Perfetto: 932k di backup e modifica in linea largamente in anticipo per il prossimo backup pianificato; script del post aggiornato.
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Migrazione a dash anche sul server-pulce con conseguente revisione degli script per rimuovere i bashismi; tempi di esecuzione ridotti anche del 40%, nei casi migliori.
(vabbé si parla di mezzi decimi di secondo o meno, ma le percentuali danno aria di professionalità, come dice il capo Dopotutto due fustini non sempre son meglio di uno solo... |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Dec 2006
Città: Ex Crema (cr)
Messaggi: 1025
|
Proprio un bel lavoro Gimli. Complimenti.!! |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Grazie gianlucab70, ma son quasi più soddisfatto del lavoro di impaginazione che del contenuto.
In sostanza si tratta di poco più di un accrocchio di demoni e cronjobs che, per carità, fanno il loro sporco mestiere (proprio come lo volevo io) ma, stilisticamente parlando, non son granché da vedere... Esistono strumenti bell'e fatti che fan cose simili. Però è stato interessante fare tutto per conto mio (e queste righe le ho scritte anche per non dimenticare i passaggi che ho fatto al tempo). |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Aggiornamento agli script con alcune correzioni, aggiunta di un po' di sicurezza e sincronizzazione delle parti uguali.
Ormai con lo script dei grafici ho accumulato 700 giorni di storico, mentre i backup protetti hanno superato le 100 settimane.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Saltata la corrente dopo 82 giorni di uptime: nuovo kernel, diverso output sensors.
Ho dovuto revisionare gli script, ne ho approfittato per fare un paio di cose che avevo pensato da tempo. Temperature hard disk. Codice:
#!/bin/bash
for HDD in /dev/sd[[:alpha:]]; do
rrdtool create /var/log/$(basename "$HDD").rrd -s 300 \
DS:temp:GAUGE:600:0:100 \
RRA:AVERAGE:0.5:1:576 \
RRA:AVERAGE:0.5:6:672 \
RRA:AVERAGE:0.5:24:732 \
RRA:AVERAGE:0.5:144:1460
done
Codice:
#!/bin/sh HDDTEMP="/usr/sbin/hddtemp" for DEV in /dev/sd[[:alpha:]]; do HDD=$(basename "$DEV") rrdtool update /var/log/"$HDD".rrd -t temp N:$($HDDTEMP -n "$DEV") done Codice:
# Dati temperature + carico CPU delle ultime 24 ore
rrdtool graph "$TEMP_DIR/daily-temperatures.png" --imginfo '<IMG SRC=/sensord/%s WIDTH=%lu HEIGHT=%lu>' \
-a PNG -h 400 -w 800 -v 'Temperatura (C)' \
-t 'Temperature Phoenix' -x 'HOUR:1:HOUR:3:HOUR:3:0:%b %d %H:00' \
-s -1d -l 10 --slope-mode \
DEF:temp2=/var/log/sensord.rrd:temp2:AVERAGE \
DEF:temp1_0=/var/log/sensord.rrd:temp1_0:AVERAGE \
DEF:temp_sda=/var/log/sda.rrd:temp:AVERAGE \
DEF:loadavg=/var/log/sensord.rrd:loadavg:AVERAGE \
CDEF:10_x_loadAvg=loadavg,10,* \
LINE2:temp2#7b23c6:"system" \
LINE2:temp1_0#D01717:"CPU" \
LINE2:temp_sda#790654:"Hard disk" \
LINE2:10_x_loadAvg#F52F1D:"10_x_loadAvg" > /dev/null
FILES="$FILES,$TEMP_DIR/daily-temperatures.png"
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) Ultima modifica di Gimli[2BV!2B] : 20-08-2012 alle 00:25. |
|
|
|
|
|
#14 | |
|
Senior Member
Iscritto dal: Jul 2003
Città: Civis Romanus Sum
Messaggi: 7538
|
Quote:
p.s. ho trovato una guida che consente di ricevere un sms di notifica quando arrivano email su gmail http://www.navigaweb.net/2012/04/ric...a-sms-sul.html
__________________
Asrock Q1900M , SSD 1TB, Pico Psu 90W, No Fans , No HD, zero meccanica, zero rumore! Ultima modifica di omerook : 20-08-2012 alle 14:33. |
|
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Grazie!
Interessante questa cosa degli SMS, già ora ho smistato le mail del "server" sotto varie etichette. Potrebbe essere utile attivare una funzionalità di questo tipo per mail di priorità altissima, come il disco fisso che si sta cuocendo o sta perdendo settori per strada. Questo mi fa giusto venire in mente che da qualche tempo ho attivato in smartd l'invio delle mail in caso di brutte variazioni di alcuni valori del disco: Codice:
gimli@phoenix:~$ grep -E "^[^#].*$" /etc/smartd.conf /dev/sda -d sat -n standby -H -I 194 -C 197 -U 198 -W 3,45,49 -m [email protected]
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Jul 2003
Città: Civis Romanus Sum
Messaggi: 7538
|
io, per curiosita, ho appena finito di provare la guida della notifica gmail su sms e confermo che funziona!
__________________
Asrock Q1900M , SSD 1TB, Pico Psu 90W, No Fans , No HD, zero meccanica, zero rumore! |
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Bene! Ho appena aggiornato il post principale aggiungendo la notifica SMS tra i pro di GMail.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Han spostato inadyn da /usr/sbin ad /usr/bin
Aggiunte un paio di righe sui grafici mensili.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Sono abbastanza colpito dal fatto che la Debian Sid e l'hardware di 'sta pulce siano in funzione quasi ininterrottamente dal 26/02/2007.
Codice:
root@phoenix:~# ls -la --full-time /lost+found totale 8 drwx------ 2 root root 4096 2007-02-26 20:08:27.000000000 +0100 . drwxr-xr-x 22 root root 4096 2013-06-19 23:57:01.000000000 +0200 .. root@phoenix:~# ls -la --full-time /root/.local/share/Trash/ totale 16 drwx------ 4 root root 4096 2007-02-26 22:02:17.000000000 +0100 . drwx------ 3 root root 4096 2007-02-26 22:02:17.000000000 +0100 .. drwx------ 2 root root 4096 2007-02-26 22:02:17.000000000 +0100 files drwx------ 2 root root 4096 2007-02-26 22:02:17.000000000 +0100 info
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:45.











, per monitorare la mancanza di corrente sull'UPS.








