LAMP: Linux, Apache, MySQL e PHP: differenze tra le versioni

m
nessun oggetto della modifica
mNessun oggetto della modifica
mNessun oggetto della modifica
Riga 1: Riga 1:
=Introduzione=
=Introduzione=
Munin un sistema di monitoraggio di sistema avanzato, facilmente installabile e configurabile che offre una vasta gamma di monitor e supporta la raccolta di informazioni da pi� macchine.<br/>
Jigdo ([http://atterer.net/jigdo/ Home Page]) uno strumento veramente potente: permette di scaricare i singoli file di una iso e di creare quest'ultima a partire da quanto scaricato.<br/>Anche se pu� sembrare una cosa inutile, in questo caso risulta una delle alternative pi� veloci e ''semplici'' (questo lo vedremo in seguito) per scaricare e mantenere aggiornate le iso di Debian.
(Ringrazio Keltik per avermelo involontariamente mostrato).
 
In questa guida vedremo come installarlo, configurandolo per monitorare due macchine: quella su cui � installato il server ed un desktop (in questo caso i dati verranno raccolti solo quando questa macchina sar� accesa).


=Installazione=
=Installazione=
Il programma composto da:
Jigdo �, ovviamente, disponibile come pacchetto debian:
; munin-node : il Client, che gestisce la raccolta di informazioni su una determinata macchina
; munin : il Server, che si occupa di elaborare i dati, catalogarli, creare i grafici e le pagine html
 
Per installare il Server (necessario solo sulla macchina che raccoglier� i dati):
<pre>
<pre>
# apt-get install munin
# apt-get install jigdo-file
</pre>
</pre>


Per installare il client (su tutte le macchine che vogliamo monitorare):
Per gli utenti di altre distribuzioni � scaricabile presso la [http://atterer.net/jigdo/ Home Page del progetto], dove sono presenti anche le versioni per gli altri sistemi operativi.
<pre>
 
# apt-get install munin-node
=Come Funziona=
</pre>
Il principio � molto semplice: vengono scaricati i singoli file facenti parte dell'immagine del CD/DVD per poi riassemblarli nell'immagine finale. Questo porta a parecchi vantaggi, sia per chi deve scaricare l'immagine, sia per chi rende disponibili i file da scaricare:


Durante l'installazione non � richiesto l'intervento dell'utente.
'''Per chi scarica''':
* dopo il primo download vengono scaricati solo i pacchetti aggiornati
* minor banda richiesta
* possiblit� di interruzione del processo
* in caso di interruzione prolungata, i file non aggiornati verranno riutilizzati
* un mirror dei repository Debian, in questo caso, pu� essere usato sia come un normale mirror, sia con jigdo per creare le immagini


'''Per i mirror''':
* vengono gestiti file piccoli
* quando ci sono degli aggiornamenti questi non comportano il download di tutta l'immagine, ma solo dei file che hanno subito modifiche
* minor carico in caso di utilizzo di jigdo da parte degli utenti
* un mirror dei repository Debian, in questo caso, pu essere usato sia come un normale mirror, sia con jigdo per creare le immagini


=Configurazione=
=Dove trovare i file .jigdo=
==Node==
I file .jigdo sono reperibili direttamente sul sito Debian.Org, esattamente a [http://www.debian.org/CD/jigdo-cd/#which questa pagina].
La configurazione dei Client (o ''nodi'') � estemamente facile ed automatizzata: � presente un comando che controlla la macchina alla ricerca di servizi monitorabili attraverso delle regole predefinite. � d'obbligo evidenziare il numero di monitor presenti, che spaziano dalla statistiche di sistema ''base'' (CPU, Memoria, [[Swap]]) fino a quelle dei servizi (MySql, Postfix, NFS, Apache, ...).


Su ogni ''nodo'' provvediamo a lanciare il configuratore automatico, cos� da rilevare tutti i servizi/parametri di cui � possibile tenere traccia:
Supponiamo di voler scaricare il primo CD di Sarge, i passi da seguire sono i seguenti:
* creare una directory di lavoro:
<pre>
<pre>
# munin-node-configure
$ mkdir /home/maxer/Sarge
$ cd /home/maxer/Sarge
</pre>
</pre>
il processo pu� impiegare un bel po' di tempo (soprattutto se la macchina � lenta); per controllare l'avanzamento del processo, consiglio di abilitare il debug:
* scaricare i file .jigdo
<pre>
<pre>
# munin-node-configure --debug
$ wget http://cdimage.debian.org/debian-cd/3.1_r0a/i386/jigdo-cd/debian-31r0a-i386-binary-1.jigdo
</pre>
</pre>
 
* scaricare i file .template
al termine della procedura di riconoscimento verr� mostrata una tabella riassuntiva, simile alla seguente:
<pre>
<pre>
Plugin                    | Used | Extra information
$ mkdir jigdotemplates
------                     | ---- | -----------------
$ cd jigdotemplates
acpi                      | no  |
$ wget http://cdimage.debian.org/debian-cd/3.1_r0a/i386/jigdo-cd/jigdotemplates/debian-31r0a-i386-binary-1.template
apache_accesses            | no  |
$ cd ..
apache_processes          | no  |
apache_volume              | no  |
apt                        | no  |
apt_all                    | no  |
courier_mta_mailqueue      | no  |
courier_mta_mailstats      | no  |
courier_mta_mailvolume    | no  |
cps_                      | no  |
cpu                        | yes  |
cupsys_pages              | yes  |
df                        | yes  |
df_abs                    | no  |
df_inode                  | yes  |
entropy                    | yes  |
exim_mailqueue            | no  |
exim_mailstats            | no  |
forks                      | yes  |
fw_conntrack              | no  |
fw_forwarded_local        | no  |
fw_packets                | no  |
hddtemp_smartctl          | yes  |
if_                        | yes  | eth0
if_err_                    | yes  | eth0
interrupts                | yes  |
iostat                    | yes  |
ip_                        | no  |
ircu                      | no  |
irqstats                  | yes  |
load                      | yes  |
loggrep                    | no  |
memory                    | yes  |
multips                    | no  |
munin_graph                | no  |
munin_update              | no  |
mysql_bytes                | yes  |
mysql_isam_space_          | no  |
mysql_queries              | yes  |
mysql_slowqueries          | yes  |
mysql_threads              | yes  |
netstat                    | yes  |
nfs_client                | yes  |
nfsd                      | yes  |
ntp_                      | yes  | mathfox_xs4all_nl
ntp_states                | no  |
open_files                | yes  |
open_inodes                | yes  |
ping_                      | no  |
port_                      | no  |
postfix_mailqueue          | yes  |
postfix_mailstats          | no  |
postfix_mailvolume        | no  |
processes                  | yes  |
ps_                        | no  |
psu_                      | no  |
sendmail_mailqueue        | no  |
sendmail_mailstats        | no  |
sendmail_mailtraffic      | no  |
sensors_                  | no  |
smart_                    | yes  | hda
squid_cache                | no  |
squid_icp                  | no  |
squid_requests            | no  |
squid_traffic              | no  |
swap                      | yes  |
sybase_space              | no  |
uptime                    | no  |
vlan_                      | no  |
vlan_inetuse_              | no  |
vlan_linkuse_              | no  |
vmstat                    | yes  |
</pre>
</pre>


Per le macchine diverse da quella che ospita il server, bisogna modificare le impostazioni di accesso per consentire le connessioni da parte di quest'ultimo. Per fare questo apriamo con un editor il file '''/etc/munin/munin-node.conf''', ed aggiungiamo la seguente riga alla fine del file:
=Primo Download di una iso=
Il primo download di una iso � semplicissimo: una volta posizionati nella directory contenente i file .jigdo, � sufficiente lanciare il comando
<pre>
<pre>
allow ^192\.168\.0\.1$
$ jigdo-lite debian-31r0a-i386-binary-1.jigdo
</pre>
</pre>
Il commento poco sopra il punto in cui abbiamo inserito questa stringa ci ricorda che si tratta di espressioni regolari, di conseguenza � necessario anteporre un backslash prima dei punti.
(in questo caso si suppone di voler scaricare il primo CD di Sarge, in linea con l'esempio precedente).


Per applicare le modifica apportate, riavviamo ''munin-node'':
Verranno poste alcune domande, che ci permetteranno di personalizzare il processo di download dei file.
<pre>
<pre>
# /etc/init.d/munin-node restart
If you already have a previous version of the CD you are
downloading, jigdo can re-use files on the old CD that are also
present in the new image, and you do not need to download them
again. Mount the old CD ROM and enter the path it is mounted under
(e.g. `/mnt/cdrom').
Alternatively, just press enter if you want to start downloading
the remaining files.
Files to scan: 
</pre>
</pre>


===Moduli===
Questa opzione ci sar� molto utile in futuro, per ora, a meno che non si dispone di un cd di sarge, non � necessario rispondere. Continuiamo con il processo premendo <nowiki>[invio]</nowiki>.
Munin sfrutta un' architettura a plug-in per monitorare le varie componenti di sistema. Come abbiamo visto nel paragrafo precedente (vedi l' output di ''munin-node-configure'') ce ne sono a disposizione moltissimi.


Munin-node altro non che uno script che si preoccupa di lanciare i vari plug-ins presenti all' interno della cartella '''/etc/munin/plugins'''. Notiamo subito che all' interno di questa directory non troviamo i veri e propri moduli, ma del link simbolici ad essi:
<pre>
<pre>
# ls -l /etc/munin/plugins |more
-----------------------------------------------------------------
totale 0
The jigdo file refers to files stored on Debian mirrors. Please
lrwxrwxrwx  1 root root 28 2005-07-01 01:06 cpu -> /usr/share/munin/plugins/cpu
choose a Debian mirror as follows: Either enter a complete URL
lrwxrwxrwx  1 root root 27 2005-07-01 01:06 df -> /usr/share/munin/plugins/df
pointing to a mirror (in the form
lrwxrwxrwx  1 root root 33 2005-07-01 01:06 df_inode -> /usr/share/munin/plugins/df_inode
`ftp://ftp.debian.org/debian/'), or enter any regular expression
lrwxrwxrwx  1 root root 32 2005-07-01 01:06 entropy -> /usr/share/munin/plugins/entropy
for searching through the list of mirrors: Try a two-letter
[...]
country code such as `de', or a country name like `United
States', or a server name like `sunsite'.
Debian mirror [http://debian.fastweb.it/debian/]
</pre>
</pre>
Quindi, per abilitare e/o disabilitare i moduli, � sufficiente creare/cancellare i links simbolici a /usr/share/munin/plugins presenti in /etc/munin/plugins.
La seconda domanda ci permette di scegliere il mirror da cui scaricare. Consiglio vivamente di scegliere un mirror italiano, cos� da alleggerire il carico di quelli centrali.
In questo caso stato scelto ''http://debian.fastweb.it/debian/'', se non si conoscono gli indirizzi esatti dei mirror, � possibile inserire semplicemente le due lettere del paese (nel nostro caso '''it''').


Se ad esempio voglio abilitare i moduli relativi ad '''apt''', sar sufficiente il comando:
<pre>
<pre>
# ln -s /usr/share/munin/plugins/apt* /etc/munin/plugins
-----------------------------------------------------------------
Merging parts from `file:' URIs, if any...
Found 0 of the 1192 files required by the template
Will not create image or temporary file - try again with different input files
</pre>
</pre>
e, dopo aver creato i links:
La ''configurazione'' pre-download � terminata, jigdo provveder�, ora, a scaricare tutti i file necessari per la creazione dell'immagine. Ogni 10 pacchetti verr� mostrata una scritta come quella riportata sopra, che ci informer� sull'andamento del download. Sempre ogni 10 file scaricati, verr� aggiornata l'immagine (che verr� creata dopo i primi 10 pacchetti correttamente scaricati):
<pre>
<pre>
/etc/init.d/munin-node restart
FINISHED --11:17:54--
Downloaded: 1,602,276 bytes in 10 files
Found 10 of the 1192 files required by the template
57%  374622k/655444k  writing image
</pre>
</pre>
===Apache, un caso particolare===
Parliamo un po' pi dettagliatamente dei moduli relativi ad Apache: per abilitarli, infatti, non sufficiente creare i links simbolici, ma abbiamo bisogno anche di metter mano alla configurazione di Apache.


Per monitorare Apache, Munin ha bisogno che mod_status venga caricato da httpd con la direttiva "ExtendedStatus On". In Debian mod_status per Apache viene caricato di default, per cui dobbiamo solo preoccuparci di fare un piccolo aggiustamento alla sezione che lo riguarda.
Il download continuer� fino a quanto non saranno scaricati tutti i file componenti l'immagine.


Ecco come dobbiamo impostare in httpd.conf la sezione di mod_status:
<pre>
<pre>
<IfModule mod_status.c>
FINISHED --19:51:35--
  ExtendedStatus On
Downloaded: 482,660 bytes in 2 files
  <Location /server-status>
Found 2 of the 2 files required by the template
      SetHandler server-status
Successfully created `debian-31r0a-i386-binary-1.iso'
  </Location>
 
</IfModule>
-----------------------------------------------------------------
Finished!
</pre>
</pre>
In questo modo munin pu interrogare Apache direttamente tramite il protocollo http.


Per verificare che mod_status sia effettivamente in funzione sufficiente puntare il nostro browser all' indirizzo http://localhost/server-status.
Bene, ora i file necessari sono stati scaricati ed stata creata l'immagine ''debian-31r0a-i386-binary-1.iso''.


{{box|Nota sulla sicurezza|E' bene aggiungere alcune istruzioni relative alla sicurezza nella nostra configurazione di mod_status, in modo da renderlo accessibile unicamente attraverso il nostro indirizzo ip locale (127.0.0.1). per fare questo possiamo inserire al' interno dei tags <location> e </location>, subito al di sotto di "SetHandler server-status" queste istruzioni:
Ora viene eseguito un check aggiuntivo, per verificare l'integrit� dell'immagine.
<pre>
<pre>
Order Deny,Allow
The fact that you got this far is a strong indication that `debian-31r0a-i386-binary-1.iso'
    Deny from all
was generated correctly. I will perform an additional, final check,
    Allow from 127.0.0.1
which you can interrupt safely with Ctrl-C if you do not want to wait.
</pre>}}
 
Riavviamo apache:
OK: Checksums match, image is good!
</pre>
 
L'immagine � stata scaricata e costruita senza errori, ora possiamo masterizzarla e utilizzarla normalmente.
 
Degna di nota � la possibilit� di interruzione del processo, che pu� essere ripreso in seguito esattamente dal punto in cui � stato interrotto. Ogni volta che si ricomincer� a scaricare l'immagine, si verr� avvisati dell'esistenza della directory '''debian-31r0a-i386-binary-1.iso.tmpdir''' (il nome � relativo al primo cd di sarge):
<pre>
<pre>
# apachectl graceful
The temporary directory `debian-31r0a-i386-binary-1.iso.tmpdir' already exists. Its contents
ARE GOING TO BE DELETED (possibly after having been copied to the
image, if they are of interest for it). If you do not want this
to happen, press Ctrl-C now. Otherwise, press Return to proceed.
:
</pre>
</pre>
e munin-node:
In questo caso possiamo tranquillamente ignorare il messaggio premendo <nowiki>[invio]</nowiki> e continuare con il download.
 
=Aggiornamento di una iso=
L'aggiornamento di una iso � un processo quasi indentico a quello descritto nel paragrafo precendente.
� necessario scaricare i file .jigdo e .template aggiornati (sostituendoli a quelli vecchi) e seguire una delle seguenti vie per recuperare i file ancora validi presenti nella vecchia iso (cos� da velocizzare al massimo il processo di download).
 
Supponiamo di aver scaricato Sarge, e che sia stata rilasciato un aggiornamento (''3.1r1''). Con jigdo possiamo evitare di scaricare tutte le immagini, scaricando solamente i file che sono stati aggiornati.
 
==Da una .iso==
Se abbiamo conservato l'iso dei cd � possibile montarle in loop ed utilizzarle come se fosse un normale cd. Per montare una immagine in loop dobbiamo essere ''root'' ed avere una directory dove far montare il contenuto (supponiamo '''/mnt/loop/''').
 
<pre>
<pre>
# /etc/init-d/munin-node restart
# mount -o loop debian-31r0a-i386-binary-1.iso /mnt/loop
</pre>
</pre>


==Server==
se tutto andato bene, in '''/mnt/loop''' troveremo il contenuto del primo cd di Sarge:
La configurazione di defalut del server pi� che sufficiente per un utilizzo normale di questo. Utilizza la directory '''/var/www/munin/''', in cui inserisce tutte le pagine relative ai computer da monitorare. Questa directory, quindi, dovr� essere accessibile in scrittura dall'utente '''munin''', ed in lettura dall'utente '''www-data''' (supponendo l'utilizzo di apache come webserver per visualizzare le statistiche). In particolare controlliamo che la directory '''/var/www''' abbia i permessi di esecuzione per l'utente ''nobody''.
<pre>
# ls -l /mnt/loop/
total 315
-r--r--r--  1 root root  11100 Jun  7 13:50 README.html
-r--r--r--  1 root root  83434 Jun  4 20:04 README.mirrors.html
-r--r--r--  1 root root  45512 Jun  4 20:04 README.mirrors.txt
-r--r--r--  1 root root  5926 Jun  7 13:50 README.txt
-r--r--r--  1 root root    60 Jun  7 13:50 autorun.bat
-r--r--r--  1 root root    29 Jun  7 13:50 autorun.inf
lr-xr-xr-x  1 root root      1 Jun  7 13:50 debian -> .
dr-xr-xr-x  3 root root  2048 Jun  7 13:50 dists
dr-xr-xr-x  5 root root  4096 Jun  7 13:50 doc
dr-xr-xr-x  4 root root  2048 Jun  7 13:50 install
dr-xr-xr-x  2 root root  4096 Jun  7 13:50 isolinux
-r--r--r--  1 root root 156641 Jun  7 14:17 md5sum.txt
dr-xr-xr-x  2 root root  2048 Jun  7 13:50 pics
dr-xr-xr-x  4 root root  2048 Jun  7 13:50 pool
dr-xr-xr-x  3 root root  2048 Jun  7 13:50 tools
</pre>


===Aggiunta di Client===
Ora scarichiamo i nuovi file ''.jigdo'' e ''.template'' come se si trattasse di un nuovo download e procediamo come sopra, con l'unico accorgimento di indicare, '''/mnt/loop''' come risposta alla seguente domanda:
La configurazione del server � gestita tramite un file: '''/etc/munin/munin.conf'''.
 
La sezione che a noi interessa � l'ultima, dove vengono raccolti i dati dei ''nodi'' da monitorare. Ogni blocco rappresentate un ''nodo'', nel file di configurazione, ha la seguente struttura:
<pre>
<pre>
[nome_del_nodo]
If you already have a previous version of the CD you are
    address <indirizzo_del_nodo>
downloading, jigdo can re-use files on the old CD that are also
    use_node_name <yes|no>
present in the new image, and you do not need to download them
again. Mount the old CD ROM and enter the path it is mounted under
(e.g. `/mnt/cdrom').
Alternatively, just press enter if you want to start downloading
the remaining files.
Files to scan: /mnt/loop
</pre>
</pre>


I parametri e le opzioni descritte hanno il seguente significato:
Il programma si occuper� di prendere i file ''riutilizzabili'', evitando di riscaricarli. Il resto del processo si svolge come per un download normale.
; nome_del_modulo : indica il nome con cui verr� rappresentato il ''nodo'' (solo se ''use_node_name'' � ''yes''). Munin raccoglie i nodi per domini di secondo livello, in una struttura ad albero.
; address <indirizzo_del_nodo> : indica l'indirizzo (IP o URL) tramite il quale raggiungere il ''nodo''.


Riporto un esempio di configurazione per il monitoraggio di due macchine:
{{Box|Nota:|Se si esegue la procedura nella stessa directory in cui � presente l'immagine ''vecchia'' � necessario spostarla o rinominarla... � possibile spostarla anche se � gi� stata montata (ovviamente sempre all'interno della stessa partizione) in quanto mount prende come riferimento l'inode del file e non il nome...}}
 
==Da un Cd/Dvd==
Se invece si dispone solo dell'immagine masterizzata � sufficiente montarle il cd/dvd ed indicare, alla richiesta di un percorso in cui cercare dei file ''riutilizzabili'' il punto di mount del lettore cd/dvd.
 
=Configurazione=
Jigdo salva alcune impostazioni nel file ~/.jigdo-lite.
 
Eccone un esempio:
<pre>
<pre>
[spirit.knio.it]
jigdo=''
    address 127.0.0.1
debianMirror='http://debian.fastweb.it/debian/'
    use_node_name yes
tmpDir='.'
jigdoOpts='--cache jigdo-file-cache.db'
wgetOpts='--passive-ftp --dot-style=mega --continue --timeout=30 --limit-rate=110K'
scanMenu='/store3/Sarge/loop/    '</pre>
 
La personalizzazione pi� importante � certamente quella relativa a '''wget''': � possibile specificare le opzioni da passare a questo programma tramite la voce '''wgetOpts'''. Nel mio caso ho aggiunto ''--limit-rate=110K'' cos� da limitare la velocit� di download a 110Kbyte, evitando la saturazione della banda.


[maxer.knio.it]
=Bookmark=
    address 192.168.0.2
[http://atterer.net/jigdo/ Home Page di jigdo]
    use_node_name yes
 
</pre>
[http://www.debian.org/CD/jigdo-cd/ Scaricare le immagini dei CD Debian con jigdo]


I dati contenuti in '''/var/www/munin''' sono aggionati tramite il cron '''/etc/cron.d/munin''', esattamente ogni 5 minuti.
[http://atterer.net/jigdo/#download Jigdo per Windows]


=Conclusioni=
Anche se a prima vista jigdo sembra uno strumento complesso e macchinoso, non cos. Jigdo rappresenta uno strumento veloce e utile per il download di immagini .iso e per il loro aggiornamento, permettendo di risparmiare molto tempo dopo il primo download.


==Conclusioni==
A tutti gli scettici consiglio di scaricarlo per provare... diventer� uno strumento fondamentale!
Munin, come visto, � uno strumento veramente utile, sia per la sua facilit� di installazione, sia per il vasto numero di dati che � capace di monitorare. Le sue funzionalit�, inoltre, sono ampliabili tramite plugin, cos� da poter adattare al meglio il servizio alle proprie esigenze.


==Bookmark==
Autore: [[Utente:MaXeR|MaXeR]]
[http://www.linpro.no/projects/munin/ Home Page del progetto]
[[Categoria:Mondo Debian]]
[[Categoria:Networking]][[Categoria:Sicurezza]]
1 760

contributi