Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
DENTRO DE UN
BACKEND
¿Esta mi aplicación funcionando?
Sandino Núñez / @sandinosaso
OBJETIVOS
 ¿Esta mi aplicación funcionando?
 Si no lo está, ¿que parte esta fallando?
 ¿Que áreas necesitan mejorar el ...
Agenda
 Introducción
 Logging
 Logstash
 Elasticsearch
 Kibana
 Arquitectura
 Demo
Introducción a Logging
Porque cada log nos cuenta una historia
Porque necesitamos logs
Desde el punto de vista de los desarrolladores
1. Para detectar problemas
2. Seguridad
3. Monitore...
Anatomía de un log
[Thu Aug 06 07:49:38.953108 2015] [notice] [pid 3343] AH00163: Apache/2.4.12 Resuming normal operations...
Porque los logs no son tan divertidos?
Puedes chequear que errores tuvimos
ayer entre las 22:17 y las 22:22 hs?
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-...
Ninja de Expresiones Regulares
(Superhéroe)
Porque es complejo analizar logs?
• Distintas formas de logging
• Muchos formatos de timestamp
• No hay contexto
• Mensaje...
Logstash
Recolecta, Transmite, Interpreta y Almacena logs
Logstash
• Corre en JVM (JRuby)
• Open Source
• Altamente Configurable
• Centraliza Logs
• Recolecta y Parsea Logs
• Persi...
Cómo funciona logstash?
Ejemplo Configuración Básica
Ejemplo Output Condicional
Estructurando la información
Reusando Patrones
%{SINTAXIS:SEMANTICA}
Creando nuestros propios patrones
https://grokdebug.herokuapp.com/
Inferencia de Patrones
https://grokdebug.herokuapp.com/
Elasticsearch
Almacenamiento y Motor de búsqueda escalable
Características
• Herramienta para indexar documentos y búsquedas
• La información esta disponible a través de REST
• Inde...
Elasticsearch Cluster
Kibana
Interfaz Web para búsquedas sobre elasticsearch
Características
• Open Source
• Código en Node.js
• Acceso a los datos de elasticsearch a través de REST
• Permite extensi...
Arquitectura
Como unir todas las partes
Centralizando la información
Arquitectura Distribuida
Moraleja?
• Que loguear? TODO !!!
• Guardar logs por mucho tiempo
• Big Data
• Movimiento DevOps
• Estadísticas de Uso de ...
Demo
Estadísticas de Apache
sandinosaso@gmail.com
Twitter: @sandinosaso
Dentro de un Backend
Dentro de un Backend
Dentro de un Backend
Dentro de un Backend
Dentro de un Backend
Dentro de un Backend
Dentro de un Backend
Dentro de un Backend
Upcoming SlideShare
Loading in …5
×

Dentro de un Backend

958 views

Published on

Esta mi aplicación funcionando? PHP Day Uruguay 2015

Published in: Software

Dentro de un Backend

  1. 1. DENTRO DE UN BACKEND ¿Esta mi aplicación funcionando? Sandino Núñez / @sandinosaso
  2. 2. 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?  ...
  3. 3. Agenda  Introducción  Logging  Logstash  Elasticsearch  Kibana  Arquitectura  Demo
  4. 4. Introducción a Logging Porque cada log nos cuenta una historia
  5. 5. 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!!!!
  6. 6. 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
  7. 7. Porque los logs no son tan divertidos?
  8. 8. Puedes chequear que errores tuvimos ayer entre las 22:17 y las 22:22 hs?
  9. 9. 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)
  10. 10. Ninja de Expresiones Regulares (Superhéroe)
  11. 11. Porque es complejo analizar logs? • Distintas formas de logging • Muchos formatos de timestamp • No hay contexto • Mensajes poco útiles • No escalan
  12. 12. Logstash Recolecta, Transmite, Interpreta y Almacena logs
  13. 13. Logstash • Corre en JVM (JRuby) • Open Source • Altamente Configurable • Centraliza Logs • Recolecta y Parsea Logs • Persiste y hace forward
  14. 14. Cómo funciona logstash?
  15. 15. Ejemplo Configuración Básica
  16. 16. Ejemplo Output Condicional
  17. 17. Estructurando la información
  18. 18. Reusando Patrones %{SINTAXIS:SEMANTICA}
  19. 19. Creando nuestros propios patrones https://grokdebug.herokuapp.com/
  20. 20. Inferencia de Patrones https://grokdebug.herokuapp.com/
  21. 21. Elasticsearch Almacenamiento y Motor de búsqueda escalable
  22. 22. 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
  23. 23. Elasticsearch Cluster
  24. 24. Kibana Interfaz Web para búsquedas sobre elasticsearch
  25. 25. 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
  26. 26. Arquitectura Como unir todas las partes
  27. 27. Centralizando la información
  28. 28. Arquitectura Distribuida
  29. 29. Moraleja? • Que loguear? TODO !!! • Guardar logs por mucho tiempo • Big Data • Movimiento DevOps • Estadísticas de Uso de Aplicación
  30. 30. Demo Estadísticas de Apache
  31. 31. sandinosaso@gmail.com Twitter: @sandinosaso

×