168 lines
3.9 KiB
Markdown
168 lines
3.9 KiB
Markdown
# EQN - EarthQuakeNetwork
|
|
|
|
Gestione progetti EarthQuakeNetwork, www.earthquakenetwork.it
|
|
|
|
Applicazione di rilevamento terremoti e segnalazione, Android based, sviluppata da Francesco Finazzi e gestita (per infrastruttura server) su cluster steamware in OVH
|
|
|
|
Di seguito indicato come EQN per brevità
|
|
|
|
|
|
## Struttura Logica
|
|
|
|
A livello logico c'è un applicazione android ed un sistema di server centrali ceh effettuano la vera elaborazione
|
|
|
|
## Servers
|
|
|
|
Ci sono 3 livelli di server:
|
|
|
|
`
|
|
---> LB01.eqn -- ---> FE01 --
|
|
Internet (RED) --|--> LB02.eqn --|--> GREEN --|--> FE02 --|--> DB
|
|
---> LB03.eqn -- ---> FE03 --
|
|
`
|
|
|
|
- LB: 3 x Load Balancers (distribuzione carico)
|
|
- FE: 3 x Front End (elaborazione codice PHP)
|
|
- DB: DB principale (ed unico)
|
|
|
|
in aggiunta
|
|
- RED: server REDIS per persistenza "di breve durata" (redis01)
|
|
|
|
### LB01/02/03
|
|
|
|
### FE01/02/03
|
|
|
|
Sono macchine Ubuntu 14.04 LTS (andranno aggiornate a 18.04 LTS, saltiamo la 16.04)
|
|
|
|
Per far funzionare Redis si è scelto un wrapper minimale che non ha dipendenze con le librerie installabili sulla 14.04:
|
|
|
|
- https://github.com/ziogas/PHP-Redis-implementation
|
|
- copiato in locale ed inserito script...
|
|
|
|
### Redis01
|
|
|
|
Installato server redis. poiché con ubuntu LST era vecchio (vers 3.0) abbiamo aggiornato a ultima release con ppa alternativi:
|
|
|
|
|
|
add-apt-repository ppa:chris-lea/redis-server
|
|
apt-get update
|
|
apt-get upgrade
|
|
|
|
### DB
|
|
|
|
|
|
## Comandi utili
|
|
|
|
Per ispezionare il server Redis a partire da LB01 (dove sono installati i `redis-tools`)
|
|
|
|
|
|
redis-cli -h redis01
|
|
|
|
## Link Utili
|
|
|
|
Verifica carico LB:
|
|
- http://lb01.earthquakenetwork.it/nginx_status
|
|
- http://lb02.earthquakenetwork.it/nginx_status
|
|
- http://lb03.earthquakenetwork.it/nginx_status
|
|
|
|
## Update Vari
|
|
|
|
### 2017.09.22
|
|
|
|
Analisi access log:
|
|
|
|
_ 22.09.2017 6:25:05
|
|
_ 22.09.2017 10:25:23
|
|
_ 1'646'359 righe in 4h circa
|
|
_ circa 115/sec per ogni LB (350 in 3 LB)
|
|
|
|
ELIMINATO CONF ACCESS LOG:
|
|
|
|
#### LB01/LB02/LB03
|
|
|
|
**nginx.conf**: eliminato logging (parte saliente)
|
|
<code>
|
|
|
|
...
|
|
|
|
##
|
|
# Logging Settings
|
|
##
|
|
|
|
# 2017-09-22 SAM: tolgo log access x performance
|
|
access_log off;
|
|
access_log /var/log/nginx/access.log upstreamlog;
|
|
error_log /var/log/nginx/error.log;
|
|
|
|
...
|
|
|
|
</code>
|
|
|
|
|
|
**sites-enabled/default**: eliminato logging (parte saliente)
|
|
<code>
|
|
...
|
|
location /srv {
|
|
#location /mysql {
|
|
if ($request_uri ~* "([^/]*$)" ) {
|
|
set $last_uri $1;
|
|
}
|
|
access_log off;
|
|
#return 301 http://srv.earthquakenetwork.it/$last_uri;
|
|
return http://srv.earthquakenetwork.it/$last_uri;
|
|
}
|
|
|
|
location /htiles {
|
|
#location /mysql {
|
|
if ($request_uri ~* "([^/]*$)" ) {
|
|
set $last_uri $1;
|
|
}
|
|
access_log off;
|
|
#return 301 http://srv.earthquakenetwork.it/$last_uri;
|
|
return http://htil.earthquakenetwork.it/$last_uri;
|
|
}
|
|
|
|
location /nginx_status {
|
|
stub_status on;
|
|
access_log off;
|
|
allow 79.7.213.2;
|
|
deny all;
|
|
}
|
|
...
|
|
</code>
|
|
|
|
|
|
####FE01/FE02/FE03
|
|
|
|
**nginx.conf**: eliminato logging (parte saliente)
|
|
<code>
|
|
|
|
...
|
|
|
|
##
|
|
# Logging Settings
|
|
##
|
|
|
|
# 2017-09-22 SAM: tolgo log access x performance
|
|
access_log off;
|
|
access_log /var/log/nginx/access.log upstreamlog;
|
|
error_log /var/log/nginx/error.log;
|
|
|
|
...
|
|
|
|
</code>
|
|
|
|
|
|
**sites-enabled/default**: eliminato logging (parte saliente)
|
|
<code>
|
|
...
|
|
location / {
|
|
access_log off;
|
|
# This is cool because no php is touched for static content.
|
|
# include the "?$args" part so non-default permalinks doesn't break when using query string
|
|
try_files $uri $uri/ =404;
|
|
}
|
|
...
|
|
</code>
|
|
|