La gestión de logs en el CDN es un componente fundamental para garantizar la observabilidad, el análisis del tráfico y la resolución de incidencias en los servicios distribuidos. A través de estos registros es posible obtener información detallada sobre las solicitudes procesadas, el rendimiento de la red de distribución y el comportamiento de los usuarios finales.
En esta sección se describe el proceso de configuración de la generación de logs, así como los mecanismos disponibles para su transmisión y almacenamiento. Se abordarán los diferentes formatos, destinos soportados y buenas prácticas recomendadas para asegurar una correcta integración con sistemas de monitorización, auditoría y análisis.
El objetivo es proporcionar una guía clara que permita habilitar, personalizar y gestionar los logs del CDN de forma eficiente, asegurando tanto la trazabilidad de la actividad como el cumplimiento de los requisitos operativos y de seguridad.
Actualmente, existen dos formas principales de consultar los logs del CDN:
Para activar el servicio de streaming de logs en tiempo real, simplemente acceda al panel de Streaming Logs.

Una vez ahí, podrá descargar un archivo comprimido (.zip) que contiene los certificados digitales necesarios para el envío de los logs, así como un conjunto de plantillas preconfiguradas con sus datos para consumir logs utilizando Filebeat, Logstash y Python.
Además, puede añadir fácilmente las direcciones IP donde se instalarán los consumidores, de modo que las reglas necesarias del firewall se ajusten automáticamente en nuestros brokers.
Las plantillas están preconfiguradas con todos los datos necesarios, pero a continuación se detallan los contenidos del archivo zip y algunos requisitos y parámetros importantes a tener en cuenta. Uno de los parámetros más relevantes es el Consumer Group.

c<ID>.crt.pemc<ID>.key.pemc<ID>.keystore.p12password.txttransparentcdnCA.pemtruststore.p12filebeat.ymlkafka-logstash.confconsumer.pyExisten varios topics a los que suscribirse. El topic por defecto para los logs de entrega será c
El prefijo del Consumer Group para agrupar sus consumidores. Por ejemplo, si su ID es 83, se suscribirá al topic c83 y podrá agrupar sus consumidores en cualquier Consumer Group que comience por c83_, como c83_group1, c83_test, c83_pre, etc.
Será necesario proporcionar:
Las direcciones IP desde las que se conectarán sus consumidores. Estas pueden añadirse desde el panel de control (tenga en cuenta un margen de hasta 5 minutos para que estén activas).

Como bien se ha comentado antes, en el archivo .zip que se ha descargado previamente hay una serie de arhchivos de configuración que facilitan la misma para varias tecnologías de consumo de logs. Para el uso de cualquiera de éstas, primero se deberá haber descargado el archivo .zip en el servidor donde se vayan a visualizar los logs y posteriormente, descomprimir el archivo.
Es importante recordar la ubicación donde se ha descomprimido el archivo para más adelante.
Para utilizar Filebeat se deberá instalar el programa en el servidor donde se deseen visualizar los logs.
Para ello se utilizarán las siguientes intrucciones:
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.9.0-amd64.deb
sudo dpkg -i filebeat-7.9.0-amd64.deb
Seguidamente habilitaremos el modulo de kafka:
filebeat modules enable kafka
filebeat setup -e
A continuación copiaremos el archivo filebeat.yml que se encuentraba en el archivo descargado y lo pegaremos en la ruta /etc/filebeat.
Tendremos que modificar los siguientes campos para que funcione adecuadamente:
c<ID>.crt.pemc<ID>.key.pemtransparentcdnCA.pemLa ruta debe existir previamente para que el servicio funcione.
Habiendo finalizado este paso solo quedará iniciar el servicio de filebeat mediante la siguiente instrucción:
systemctl start filebeat
Con esto ya se podrán visualizar los logs desde el directorio indicado en la configuración del filebeat.
Para utilizar Logstash lo primero será instalarlo desde el repositorio oficial de paquetes. Ejecuta los siguientes comandos para añadir el repositorio e instalar Logstash. Alternativamente, puedes seguir la guía oficial en: https://www.elastic.co/guide/en/logstash/current/installing-logstash.html.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
apt install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
apt update
apt install logstash
Ahora configuraremos un pipeline que consumirá logs de los servidores Kafka y los volcará en un fichero JSON, categorizando cada campo del log. Para ello, puedes copiar el archivo kafka-logstash.conf y pegarlo en la ruta /etc/logstash/conf.d. Deberás editar los siguientes parámetros si copias los certificados en ubicaciones diferentes o modificas la ruta de salida del fichero:
c<ID>.keystore.p12truststore.p12Dado que el servicio se ejecutará con el usuario logstash, debemos asegurarnos de que tenga los permisos adecuados sobre los certificados, la configuración y el directorio final donde Logstash escribirá:
chown logstash:logstash -R /etc/logstash/
mkdir /var/log/tcdn_streaming
chown logstash:logstash /var/log/tcdn_streaming
Este paso tambien hay que realizarlo en la ruta donde estén los certificados ya que logstash debe acceder a ellos para funcionar.
Ahora solo queda arrancar Logstash. Podemos hacerlo desde la línea de comandos para verificar que todo funciona correctamente:
sudo -u logstash /usr/share/logstash/bin/logstash "--path.settings" "/etc/logstash"
Si todo ha ido bien podrás cancelar ese comando y inciar el servicio mediante la siguiente instrucción:
systemctl start logstash.service
Con esto ya se mostrarán logs en la ruta definida en la configuración como en la imagen.

Puedes escribir un consumidor en muchos lenguajes de programación diferentes. Veamos un ejemplo utilizando Python, empleando el cliente o librería confluent-kafka-python:
https://github.com/confluentinc/confluent-kafka-python
Otra opción popular es:
https://github.com/dpkp/kafka-python
Instalamos los paquetes necesarios:
sudo apt install python3-pip
pip3 install confluent-kafka --user
Creamos el fichero Python con el contenido que recibiste en la plantilla consumer.py. A continuación se muestran algunos datos de ejemplo. La parte importante es la sección de configuración. Deberás editar los siguientes parámetros si copias los certificados en ubicaciones diferentes:
transparentcdnCA.pemc<ID>.keystore.p12Si todo es correcto, al iniciar el consumidor recibirás el siguiente mensaje y comenzarás a consumir del topic:
root@server1:~# ./consumer.py
[2020.08.21 09:57:21][INFO] Assigned consumer: <cimpl.Consumer object at 0x7fada8213f28> on partition [TopicPartition{topic=c83,partition=0,offset=-1001,error=None}, TopicPartition{topic=c83,partition=1,offset=-1001,error=None}]
Para activar el envío de logs estáticos hay que habilitarlo en la pestaña Basic Logs.

Hay 3 formas de envío de estos logs:
Para utilizar este tipo de envío hay que cumplimentar los siguientes campos:
Para utilizar este tipo de envío será necesario utilizar un programa que gestione este protocolo como por ejemplo vsftpd(Very Secure File Transfer Protocol Daemon).
Ya con esto instalado y funcionando solo hará falta cumplimentar los siguientes campos:
21.Para utilizar el protocolo SFTP solo se tendrá que tener habilitado el protocolo SSH en el servidor de destino y cumplimentar los campos en el formulario.

Hostname: Nombre de dominio/IP del servidor destino de los logs.
Path: La ruta donde se van a enviar los logs (No tiene que existir en el servidor ya que al realizarse la primera conexión, se creará automáticamente).
Username: nombre de usuario que usará el CDN para acceder por SSH.
Password: Contraseña del usuario que usará el CDN para enviar los logs.
Access Port: Puerto por el que envíar los logs. El protocolo SSH usa por defecto el puerto 22.
Con esto configurado, en el servidor destino ya aparecerá la ruta configurada y empezará a recibir logs.
Independientemente de la opción escogida, si se configura de forma incorrecta algún campo y da error, es posible que haya falta borrar caché de la página para volver a configurar el servicio.