# Visualizando los Log’s de Kong, nuestro API Manager, en Graylog.

Hace unos días aprendimos a [crear una API](https://hashnode.com/post/clsbxoxur000508gq2zp3hraw), con Python y Flask, e [implementamos un API Manager](https://hashnode.com/post/clsbxp2wj000108l21h701xro), con Kong, para manejar la seguridad de nuestro servicio. Vamos a enviar los log’s de Kong a nuestro servidor Graylog.

## Instalación de Plugin Syslog en Kong

Vamos al Dashboard, de Kong, e instalamos el Plugin. Para los fines prácticos, vamos a loggear todo. Pero podríamos agregar granularidad, seleccionado la ruta, el servicio o el usuario de consumo.

![](https://i1.wp.com/blog.santiagoagustinfernandez.com/wp-content/uploads/2019/03/2019-03-21-16_06_50-Kong-Dashboard.png?fit=640%2C640&ssl=1 align="center")

Agregamos el plugin.

![](https://i0.wp.com/blog.santiagoagustinfernandez.com/wp-content/uploads/2019/03/2019-03-21-16_08_58-Kong-Dashboard.png?fit=640%2C303&ssl=1 align="center")

Ya tenemos, listo el logeo. Ahora vamos a modificar el rsyslog, para direccionarlo a nuestro servidor Graylog. En este caso, como en el de las entradas anteriores, el mismo tiene la dirección 10.0.2.20. Voy a editar la Regla por defecto, en la ruta **/etc/rsyslog/50-default.conf**, agregando:

*. @10.0.2.20:5014;RSYSLOG\_SyslogProtocol23Format*

Vamos a enviar a Graylog, en el puerto 5014. Es importante el puerto para la creación del INPUT.

![](https://blog.santiagoagustinfernandez.com/wp-content/uploads/2019/03/2019-03-21-16_14_02-santiago@kong_-_etc_rsyslog.d.png align="center")

Reiniciamos el rsyslog, para que tome los cambios.

![](https://blog.santiagoagustinfernandez.com/wp-content/uploads/2019/03/carbon-11.png align="center")

## Creación del Input en Graylog

Creamos el input en System/Inputs &gt; Syslog UDP. Recordemos, que debemos escuchar en el puerto 5014.

![](https://blog.santiagoagustinfernandez.com/wp-content/uploads/2019/03/2019-03-21-16_29_05-Ubuntu-Desktop-Corriendo-Oracle-VM-VirtualBox.png align="center")

Si seleccionamos *Show received messages*:

![](https://blog.santiagoagustinfernandez.com/wp-content/uploads/2019/03/2019-03-21-16_31_44-Ubuntu-Desktop-Corriendo-Oracle-VM-VirtualBox.png align="center")

Vamos al Input, para poder realizar un **Extrator**. El campo message, del log, tiene un **JSON** con toda la información que necesitamos. El extractar, va a segmentar el **JSON**. Acomodando las Key’s con sus valores, de una manera que **Graylog**, pueda trabajar con ellos. Una manera de normalizarlo.

Ejecutamos alguna consulta, para generar trafico.

![](https://blog.santiagoagustinfernandez.com/wp-content/uploads/2019/03/2019-03-21-16_43_33-Postman.png align="center")

Revisamos el log y vemos el JSON, dentro del campo message.

![](https://blog.santiagoagustinfernandez.com/wp-content/uploads/2019/03/2019-03-21-16_46_27-Ubuntu-Desktop-Corriendo-Oracle-VM-VirtualBox.png align="center")

Vamos agregar el **Extractor**.

![](https://blog.santiagoagustinfernandez.com/wp-content/uploads/2019/03/VirtualBox_Ubuntu-Desktop_21_03_2019_16_49_45.png align="center")

Creación del Extractor Configuramos y probamos! Si vemos el JSON, como corresponde, guardamos el extractor.

Extractor

![](https://blog.santiagoagustinfernandez.com/wp-content/uploads/2019/03/2019-03-21-16_55_36-Ubuntu-Desktop-Corriendo-Oracle-VM-VirtualBox.png align="center")

Ahora podemos hacer el filtro, por cada campo. Podemos crear un **Dashboard**, en mi caso cree Kong API Manager que luego les compartire, para enviar las gráficas de datos que me interesan, ejemplo: los códigos de respuesta.

![](https://blog.santiagoagustinfernandez.com/wp-content/uploads/2019/03/2019-03-21-17_01_34-Ubuntu-Desktop-Corriendo-Oracle-VM-VirtualBox.png align="center")

Picamos en **Quick Values** arriba se creara una gráfica donde podemos ver los códigos de respuesta! Esa gráfica, la agregamos a nuestro Dashboard.

![](https://blog.santiagoagustinfernandez.com/wp-content/uploads/2019/03/2019-03-21-17_04_00-Ubuntu-Desktop-Corriendo-Oracle-VM-VirtualBox.png align="center")

Les muestro el mio.

![](https://blog.santiagoagustinfernandez.com/wp-content/uploads/2019/03/Graylog_LOGS.png align="center")

Las opciones son infinitas. En el que les comparto podemos ver:

Metodos Utilizados

Rutas Consultadas

Respuestas de Estado

Usuarios

De esta manera tenemos un Snapshot para ver que esta pasando con nuestra API, en tiempo real.

Espero les guste!
