OBJETIVOS
¿Esta mi aplicación funcionando?Si no lo está, ¿que parte esta fallando?¿Que áreas necesitan mejorar el rendimiento?¿Necesito escalar?¿Cual fue el impacto del último código
deployado? ¿Ha repercutido sobre los usuarios? ¿Negativamente?
¿Deberíamos hacer rollback? ...
Porque necesitamos logs
Desde el punto de vista de los desarrolladores
1. Para detectar problemas
2. Seguridad
3. Monitoreo
4. Métricas
5. Analizar tendencias
• Ayudar a debuggear el código• Nunca en producción!!!!
Anatomía de un log[Thu Aug 06 07:49:38.953108 2015] [notice] [pid 3343] AH00163: Apache/2.4.12 Resuming
normal operations
TIMESTAMP DATA
Manejo de Logs (Como buscamos información)
netstat -an | awk '{print $5}' | grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" | egrep -v "(`for i in \`ip addr | grep inet |grep
eth0 | cut -d/ -f1 | awk '{print $2}'\`;do echo -n "$i|"| sed 's/\./\\\./g;';done`127\.|0\.0\.0)" | sort -n | uniq -c | sort -n
sandino@envy:~$ awk -F\" '{print $6}' /var/log/apache2/access.log | sed 's/(\([^;]\+; [^;]\+\)[^)]*)/(\1)/' | sort | uniq -c | sort -fr
8 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36 1 Apache/2.4.12 (Ubuntu) PHP/5.5.9-1ubuntu4.9 (internal dummy connection)
Porque es complejo analizar logs?
• Distintas formas de logging• Muchos formatos de timestamp• No hay contexto• Mensajes poco útiles• No escalan
Logstash
• Corre en JVM (JRuby)
• Open Source
• Altamente Configurable
• Centraliza Logs
• Recolecta y Parsea Logs
• Persiste y hace forward
Características
• Herramienta para indexar documentos y búsquedas
• La información esta disponible a través de REST
• Indexación para búsqueda de texto (basado en Apache Lucene)
• Puede estar distribuido en múltiples "shards"
• 2 Tipos de shard: Primaria, Réplica
• Escrito en JAVA
Características
• Open Source
• Código en Node.js
• Acceso a los datos de elasticsearch a través de REST
• Permite extensión mediantes Plugines
• Creación de distintas gráficas
• Creación de Dashboards
Moraleja?
• Que loguear? TODO !!!• Guardar logs por mucho tiempo• Big Data• Movimiento DevOps• Estadísticas de Uso de Aplicación