Etikettarkiv: webbserver

Arkivera webbserver-loggar

loggfilerWebbserverloggar är något som jag älskar att hata. De ligger och fyller hårddisken men kan vara otroligt bra att använda för felsökning eller uppföljning. Därför har jag klurat ett tag nu hur jag kan arkivera stora mängder loggar utan att det tar allt för mycket resurser.

Den lösning som jag tycker är mest smakfull är att använda det inbyggda Linux-kommandot logrotate tillsammans med s3cmd för att skicka loggarna till Amazon S3. Efter detta så sätter jag en regel som skickar vidare loggarna till Amazon Glacier som är snorbilligt men tar 3-5h för att återställa filer.

Denna guide förutsätter att du har ett konto hos Amazon och har satt upp en bucket i S3 (i detta fall med namnet triopab-logfiles).

Steg 1 – Installera och konfigurera s3cmd

Under ubuntu/Debian etc installerar du enbart paketet med apt:

$ sudo apt-get install s3cmd
Sen är det bara att konfigurera upp s3cmd så med Access key + Secret key:
$ s3cmd --configure

Steg 2 – Konfigurera logrotate

Logrotate följer med de flesta Linux-dialekter och det vi gör är att vi skapar en egen konfigurationsfil som logrotate ska använda sig av.

Konfigurationsfilen kallar jag utvbloggen.conf och den ser ut enligt följande:

compress
compresscmd /bin/bzip2
compressoptions -9
compressext .bz2

dateext
dateformat -%Y-%m-%d-%s

rotate 3
nomail
missingok
daily
size 5k
create 640 ubuntu ubuntu

/var/www/utvbloggen.se/logs/*.log {
sharedscripts
postrotate
service nginx reload

/usr/bin/s3cmd sync /var/www/utvbloggen.se/logs/*.bz2 s3://triopab-logfiles/utvbloggen/
endscript
}

Sen är det bara att lägga in ett cron-jobb som kör logrotate med ovan conf varje natt:

0 0 * * * /usr/sbin/logrotate --state /home/ubuntu/log_rotate.state /home/ubuntu/utvbloggen.conf

Steg 3 – Från S3 till Glacieramazon glacier

Detta steg är tämligen trivialt då denna funktion finns inbyggd i S3. Det enda du behöver göra är att gå in på Properties för din bucket och sedan under fliken Lifecycle kan du välja ”Move to glacier” så här:

move to glacierDu kan även ange hur många dagar det ska gå innan loggarna flyttas under rubriken ”Time Period”:

lifecycle ruleVill du göra mer fräsiga saker med loggarna? Kolla då på logstash eller fluentd.

Uppdatering: Kan vara bra att påpeka att det är gratis att skicka data mellan Amazon EC2 och S3 inom samma region.

Supersäker webbserver

Du kanske undrar hur eller om det är möjligt att göra en webbserver supersäker? Och svaret är: nja. Att göra själva webbservern säker går men det finns mycket annat som spelar in också, låt mig redogöra hur du kan skapa en säker webbserver:

  • Installera senaste versionen av OpenBSD och stäng ner alla tjänster och slå igång brandväggen samt annan uppsäkring av operativsystemet. Administrera enbart via konsol (överkurs: gör ditt eget operativsystem).
  • Skriv din egen webbserver i exempelvis C och låt någon granska koden. Se till att enbart servera statiska webbsidor
  • Gör så att filsystemet ej är skrivbart (bootbar cd-rom exempelvis)
  • Använd DNSSEC (går ej .COM ännu, men funkar bra på .SE)
  • Se till att närliggande system i din miljö inte kan ta över ditt IP-nummer (via arp)
  • Se till att routrar etc på vägen också är uppsäkrade
  • Tänk även på din fysiska miljö

Det blir förvisso mycket knöligt att administrera men supersäkert. Finns så klart mycket mer som kan läggas till denna lista men bygger du en webbserver/lösning enligt ovan lista så bör du hålla illasinnade borta.