In questo post vi ho mostrato una possibile configurazione di swatch per ciò che concerne il monitoraggio delle richieste inoltrate ad un server Web.
Ovviamente tale configurazione è molto simile a quella che attualmente gira sui miei server, ragion per cui ho avuto modo di testarla in modo massiccio. Un effetto colletarale che mi è saltato all'occhio quasi immediatamente riguardava i falsi positivi, ovvero pattern del tutto innocui che swatch mi segnalava come errori HTTP.
Mi spiego meglio. Data una entry del file di log simile alla seguente:
192.168.x.x - jumbo [30/Jul/2012:16:03:20 +0200] "GET /prova.php HTTP/1.1" 200 4036 "https://www.pincopallo.it/prova.php" "Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1"
essa mi veniva segnalata come HTTP Forbidden (errore 403) per via del 4036.
Il file di log contenente il giusto codice di errore dovrebbe avere una forma simile alla seguente:
79.55.x.x - jumbo [30/Jul/2012:21:28:53 +0200] "GET /prova.php HTTP/1.1" 403 773 "-" "Mozilla/5.0 (Windows NT 6.1; rv:10.0) Gecko/20100101 Firefox/10.0"
Ovvero il codice di errore è sempre preceduto e seguito da uno spazio vuoto.
Alla luce di tali considerazioni le regex da settare su swatch diventano le seguenti:
#HTTP Forbidden
watchfor / 403 /
echo
mail [email protected],subject=SWATCH HOME: Access Forbidden
#HTTP Not Found
watchfor / 404 /
echo
mail [email protected],subject=SWATCH HOME: Not Found
#HTTP Internal Server Error
watchfor / 500 /
echo
mail [email protected],subject=SWATCH HOME: Internal Server Error
#HTTP OK
watchfor / 200 /
echo
mail [email protected],subject=SWATCH HOME: Hit OK
Quindi, poichè i pattern da matchare devono essere contenuti all'interno dei due slash (/), è bastato aggiungere uno spazio prima e dopo del codice di errore.
Enjoy.