8 formas de mejorar tu vida gracias a los logs

55
8 formas de mejorar tu vida gracias a los Logs MADRID · NOV 18-19 · 2016

Upload: joaquin-diez

Post on 08-Jan-2017

351 views

Category:

Software


0 download

TRANSCRIPT

8 formas de mejorar tu vida

gracias a los Logs

MADRID · NOV 18-19 · 2016

Joaquin DiezIT Architect@joaquindiez

MADRID · NOV 18-19 · 2016

Fran RodriguezSite Reliability Engineer@fjrodriguez2

BIG DATA en Tiempo Real

MADRID · NOV 18-19 · 2016

Log

MADRID · NOV 18-19 · 2016

¿Que es una linea de Log?1. Algo que ha ocurrido en un momento en el tiempo.

2. Información:1. Estadísticas y métricas de máquinas y servicios

2. Información de Actividad de Aplicaciones -> negocio3. Dispositivos de Internet Of Things.

3. Información Estructurada o No Estructurada

MADRID · NOV 18-19 · 2016

MADRID · NOV 18-19 · 2016

Cuando hacíamos uso de los LogsCUANDO ALGO EXCEPCIONAL OCURRIA

- Un fallo en el Sistema ( máquina o aplicación)- Un cliente se quejaba por un error.- Un Ataque informático

MADRID · NOV 18-19 · 2016

1. Menor coste almacenamiento

2. Computación en la nube

3. BIG DATA

4. HADOOP,NOSQL

5. Stream Analytics ( Spark, Storm…)

6. Deep Learning

Las cosas han cambiado…..

LOGS

MADRID · NOV 18-19 · 2016

Logging Best

Practices

Aprender a Escribir Logs

Bien

Democratizar los logs Vitamina

tu BBDD

Ayuda DesarrolloVisualización

Centralización Monitorización Syslog

Aprender a Escribir

MADRID · NOV 18-19 · 2016

Como en toda comunicación- Emisor y receptor han de entender el mensaje.

- Contener información de interés

MADRID · NOV 18-19 · 2016

Errores comunes- Escribíamos Logs pensando en Humanos

- Ausencia de Información importante.

- Mezcla de diferentes tipo de información

- Escribir lineas de logs con saltos de linea.

MADRID · NOV 18-19 · 2016

log.info("Usuario ha hecho Login Correctamente”);log.info("Listar Alertas”);log.info("Mostrar Alerta ” + alert.getId());log.info("Editar Alerta ” + alert.getId());log.info("Logout usuario ”);

2016-11-13T20:04:36,040 INFO lt.web.LoginController Usuario ha hecho Login Correctamente2016-11-13T20:06:06,011 INFO lt.web.AlertController Listar Alertas2016-11-13T20:07:01,012 INFO lt.web.AlertController Mostrar Alerta A000012016-11-13T20:10:00,400 INFO lt.web.AlertController Editar Alerta A000012016-11-13T20:12:15,141 INFO lt.web.LogOutController Logout usuario

MADRID · NOV 18-19 · 2016

Normas Básicas- Escribir para ser leídos por máquinas no para humanos- Estructurar la información -> Definir Formatos

MADRID · NOV 18-19 · 2016

log.info("user={} action={} result={}” , user.getEmail(), “login”, “ok”);log.info("user={} action={} result={}” , user.getEmail(), “alert_list”, “ok”);log.info("user={} action={} alert={} result={}” , user.getEmail(), “alert_show”, alert.getId(),“ok”);log.info("user={} action={} alert={} result={}” , user.getEmail(), “alert_edit”, alert.getId(),“ok”);log.info("user={} action={} result={}” , user.getEmail(), “logout”, “ok”);

2016-11-13T20:04:36,040 INFO lt.web.LoginController [email protected] action=login result=ok2016-11-13T20:04:36,040 INFO lt.web.AlertController [email protected] action=alert_list result=ok2016-11-13T20:04:36,040 INFO lt.web.AlertController [email protected] action=alert_show alert=A00001 result=ok2016-11-13T20:04:36,040 INFO lt.web.AlertController [email protected] action=alert_edit alert=A00001 result=ok2016-11-13T20:04:36,040 INFO lt.web.AlertController [email protected] action=logout result=ok

Estructurar la información

MADRID · NOV 18-19 · 2016

log.info("{}|{}|{}” , user.getEmail(), “login”, “ok”);log.info("{}|{}|{}” , user.getEmail(), “alert_list”, “ok”);log.info("{}|{}|{}|{}” , user.getEmail(), “alert_show”,“ok”, alert.getId());log.info("{}|{}|{}|{}” , user.getEmail(), “alert_edit”,“ok”, alert.getId());log.info("{}|{}|{}” , user.getEmail(), “logout”, “ok”);

2016-11-13T20:04:36,040 INFO lt.web.LoginController [email protected]|login|ok2016-11-13T20:04:36,040 INFO lt.web.AlertController [email protected]|alert_list|ok 2016-11-13T20:04:36,040 INFO lt.web.AlertController [email protected]|alert_show|ok|A000012016-11-13T20:04:36,040 INFO lt.web.AlertController [email protected]|alert_edit|ok|A000012016-11-13T20:04:36,040 INFO lt.web.AlertController [email protected]|logout|ok

Estructurar la información

MADRID · NOV 18-19 · 2016

Normas Básicas- Escribir para ser leídos por máquinas no para humanos- Estructurar la información -> Definir Formatos- Separar cada tipo de Evento en ficheros diferentes

Separar Logs por tipo de Información

info.log

actividad.log

acceso.log

MADRID · NOV 18-19 · 2016

Normas Básicas- Escribir para ser leídos por máquinas no para humanos- Estructurar la información -> Definir Formatos- Separar cada tipo de Evento en ficheros diferentes- Evitar escribir Saltos de linea (Excepciones)

Evitar logs Multilineatry { // Code that generates an IOException } catch (IOException e) { logger.fatal("An exception occurred while opening the file.", e); }

Evitar logs MultilineaUsar Appenders modernos que eliminen los saltos de linea y los substituyan por un carácter alternativo - Log4j2 o LogBack en Java (por ejemplo - NLog ( .Net)

MADRID · NOV 18-19 · 2016

Normas Básicas- Escribir para ser leídos por máquinas no para humanos- Estructurar la información -> Definir Formatos- Separar cada tipo de Evento en ficheros diferentes- Evitar escribir Saltos de linea (Excepciones)

MADRID · NOV 18-19 · 2016

Logging Best

Practices

Aprender a Escribir Logs

Bien

Democratizar los logs Vitamina

tu BBDD

Ayuda DesarrolloVisualización

Centralización Monitorización Syslog

MADRID · NOV 18-19 · 2016

LOS DE SISTEMAS

MADRID · NOV 18-19 · 2016

MADRID · NOV 18-19 · 2016

Democratizar los Logs- Son de TODOS y para TODOS

- Pueden(y deben) consultarlos por toda la organización

- Facilitar herramientas para buscar en ellos y extraer información

- Logs no solo cosa de técnicos

MADRID · NOV 18-19 · 2016

MADRID · NOV 18-19 · 2016

Democratizar los Logs: Consecuencias

- Eliminamos dependencias y bloqueos

- Acceso libre a la información ( sobre todo Negocio)

- Más información —> Mejor toma de decisiones.

- Mayor Productividad

MADRID · NOV 18-19 · 2016

Logging Best

Practices

Aprender a Escribir Logs

Bien

Democratizar los logs Vitamina

tu BBDD

Ayuda DesarrolloVisualización

Centralización Monitorización Syslog

Tecnologias de BBDD

Bases de Datos Relacionales (muy estructurados)

Clave/Valor, Columnares y otros (semi-estructurados)

MongoDB

NOSQL

Cassandra

CouchDB

RDBMS

Redis

Bases de Datos

• Mantener un estado consistente de la información(ACID)

• Es una foto estática de tus datos en un momento dato en el tiempo

RDBMS

Dia 1• Entra en la aplicación

• Crea Una alerta A

• Sale de la aplicación

Dia 2• Entra en la aplicación

• Edita la Alerta A y cambia sus parámetros

• Sale de la aplicación

Dia 3• Entra en la aplicación

• Borra la Alerta A

• Sale de la aplicación

id name params creation_date update_date1 A {‘user’:’obama’,

‘role’:’president’}2016-11-01 12:00 2016-11-01 12:00

id name params creation_date update_date1 A {‘user’:’trump’,

‘role’:’president’}2016-11-01 12:00 2016-11-02 15:00

id name params creation_date update_date

Dia 1• Entra en la aplicación

• Crea Una alerta A

• Sale de la aplicación

Dia 2• Entra en la aplicación

• Edita la Alerta A y cambia sus parámetros

• Sale de la aplicación

Dia 3• Entra en la aplicación

• Borra la Alerta A

• Sale de la aplicación

2016-11-01 11:50:00 user=alberto action=login 2016-11-01 12:00:00 user=alberto action=create_alert alert_id=1 alert_name=A params={‘user’:’obama’,’role’:’president’} 2016-11-01 12:02:00 user=alberto action=logout

2016-11-02 14:58:00 user=alberto action=login 2016-11-02 15:00:00 user=alberto action=edit_alert alert_id=1 alert_name=A params={‘user’:’trump’,’role’:’president’} 2016-11-02 15:02:00 user=alberto action=logout

2016-11-03 10:00:00 user=alberto action=login 2016-11-03 10:05:00 user=alberto action=delete_alert alert_id=1 alert_name=A 2016-11-03 10:07:00 user=alberto action=logout

MADRID · NOV 18-19 · 2016

Logging Best

Practices

Aprender a Escribir Logs

Bien

Democratizar los logs Vitamina

tu BBDD

Ayuda DesarrolloVisualización

Centralización Monitorización Syslog

MADRID · NOV 18-19 · 2016

“Escribir logs es un Arte más que una ciencia”

“Es una habilidad que separa a los buenos programadores de los Grandes Programadores”

MADRID · NOV 18-19 · 2016

- ¿Qué información debo “logar”?

- ¿Dónde dejo cada log?

Dudas que Surgen

Norma General para servicios

system_metrics.log

actividad.log

out.log

environment application clon

cid

cid cid

cid

MADRID · NOV 18-19 · 2016

- Se consistente, piensa bien un formato de log que te permita capturar información util.

- Escribe todo lo que necesites tanto para depurar o resolver un problema cuando surja

- NUNCA escribas información sensible, passwords, número tarjetas de crédito….

Recomendaciones

MADRID · NOV 18-19 · 2016

Logging Best

Practices

Aprender a Escribir Logs

Bien

Democratizar los logs Vitamina

tu BBDD

Ayuda DesarrolloVisualización

Centralización Monitorización Syslog

MADRID · NOV 18-19 · 2016

Syslog

MADRID · NOV 18-19 · 2016

SyslogEl nacimiento de los sysadmins.

Formato: <PRI>timestamp hostname tag: message// <34>Oct 11 22:14:15 mymachine su: failed for frodriguez on /dev/pts/8// <0>2016 Oct 22 10:52:01 TZ-6 prueba.logtrust.com 10.1.2.3 sched[0]: That's All Folks!

Distintos RFC’s.

MADRID · NOV 18-19 · 2016

Logging Best

Practices

Aprender a Escribir Logs

Bien

Democratizar los logs Vitamina

tu BBDD

Ayuda DesarrolloVisualización

Centralización Monitorización Syslog

MADRID · NOV 18-19 · 2016

Monitorización

MADRID · NOV 18-19 · 2016

MonitorizaciónTodo en logs.

Alertas. NO a los falsos positivos.

Estado de los servicios.

Seguridad. El chivato.

MADRID · NOV 18-19 · 2016

Logging Best

Practices

Aprender a Escribir Logs

Bien

Democratizar los logs Vitamina

tu BBDD

Ayuda Desarrollo

Visualización

Centralización Monitorización Syslog

MADRID · NOV 18-19 · 2016

Centralización

MADRID · NOV 18-19 · 2016

CentralizaciónMás servicios más logs.

Optimización de los servicios.

Análisis global y a futuro.

MADRID · NOV 18-19 · 2016

Logging Best

Practices

Aprender a Escribir Logs

Bien

Democratizar los logs Vitamina

tu BBDD

Ayuda DesarrolloVisualización

Centralización Monitorización Syslog

MADRID · NOV 18-19 · 2016

Visualización

MADRID · NOV 18-19 · 2016

VisualizaciónEl histórico es como tu padre.

Agregados. Todos para uno y uno para todos.

Dashboards. Compartir es vivir.

MADRID · NOV 18-19 · 2016

Preguntas

Gracias!!

MADRID · NOV 18-19 · 2016