Engineering

Monitoreo de la infraestructura de Azure con Filebeat y Elastic Observability

La capacidad de acceder al estado interno de tu ecosistema de aplicaciones es fundamental para optimizar tus aplicaciones y la experiencia de tus usuarios. Elastic Cloud en Microsoft Azure te da acceso a Elastic Observability, lo que te permite monitorear tu infraestructura y ver cómo se interrelaciona cada señal usando una amplia variedad de recursos que se pueden desplegar en minutos.

Al usar nuestro servicio gestionado de Elasticsearch en Azure, puedes aprovechar beneficios como actualizaciones con un clic, seguridad habilitada de forma predeterminada y mucho más que simplifica tus operaciones de TI. Además, Elastic Observability te ayuda a unificar tus logs, métricas y rastreos de APM a escala, para que puedas evaluar con facilidad el estado actual de tu sistema. También puedes usar Machine Learning para detectar anomalías y alertas que te informen lo que anda mal, así podrás reaccionar rápidamente a los eventos que ocurran en tu entorno.

En cuanto al monitoreo de Azure, Elastic Observability puede hacer lo siguiente:

En este blog, exploraremos la observabilidad de Azure con el Elastic Stack. Te recomendamos seguir los pasos en tu despliegue. Si no tienes un despliegue existente, visita el blog Getting Started with Elastic Cloud on Microsoft Azure (Primeros pasos con Elastic Cloud en Microsoft Azure). Registrarse para Elastic Cloud (servicio gestionado de Elasticsearch) a través de Azure Marketplace es fácil, ofrece excelente flexibilidad y aprovecha la facturación integrada.

Observabilidad de Azure con Elastic

Elastic Observability ofrece una solución preconfigurada para el monitoreo de Azure. Filebeat incluye un módulo de Azure listo para usar, lo que te permite agregar rápidamente estos agentes ligeros en tu ecosistema. Una vez instalado, podrás recopilar eventos de log y enviarlos ya sea a Elasticsearch o Logstash para indexar. Después, puedes analizar y visualizar tus datos en dashboards y visualizaciones de Kibana prediseñados y poderosos, lo cual reducirá la cantidad de tiempo y esfuerzo para comenzar.

Probémoslo nosotros mismos.

Ingesta de logs de Azure

Para mantenerlo simple, puedes encontrar instrucciones de instalación de Filebeat directamente en Kibana. Usaremos estos pasos para desplegar Filebeat e ingestar los logs de actividad, inicio de sesión o auditoría de Azure que mencionamos antes.

Descargar e instalar Filebeat

A partir de la versión de despliegue 7.10, en la página de inicio de Kibana haz clic en Install Filebeat (Instalar Filebeat).

Si aún no actualizaste tu despliegue a la versión 7.10, tómate el tiempo para visitar nuestra documentación Upgrade versions (Actualización de versiones). Las actualizaciones están diseñadas para ser automatizadas y ayudar a mitigar el tiempo de inactividad no planificado.

Para comenzar, haz clic en el menú de navegación y después en Home (Inicio).

Haz clic en Add data (Agregar datos).

Esto nos lleva al menú Add data (Agregar datos). Selecciona Azure logs (Logs de Azure).

Sigue estos pasos para instalar Filebeat en tu sistema. Puedes hacer clic en los enlaces View exported fields (Ve los campos exportados) y Learn more (Conoce más) para consultar información adicional de Filebeat.

Puedes dejar esta página abierta para cuando hayas completado las configuraciones siguientes, dado que volveremos a ella.

Configurar Filebeat

Una vez que se haya descargado e instalado Filebeat para tu sistema en particular, deberás modificar el archivo filebeat.yml. En un sistema Linux, por lo general puedes encontrarlo en /etc/filebeat.

Lo bueno de pasar por este proceso desde Kibana es que te mostrará cómo agregar las entradas necesarias a ese archivo para comunicarse con tu despliegue de Elastic Cloud. Hay dos variables que debes modificar: cloud.id y cloud.auth.

Quienes tienen el Elastic Stack ejecutándose como autogestionado en su propia cuenta de Azure, consulten la guía de inicio rápido de Filebeat sobre cómo conectarse al Elastic Stack.

Sugerencia de profesionales: ¿no estás seguro de dónde obtener estos valores? Consulta nuestra documentación para obtener más detalles.

Crear un centro de eventos

Esta solución requiere el uso de Azure Event Hubs para los logs de actividad, inicio de sesión o auditoría, además de acceso a un blob de almacenamiento. Si no tienes uno de estos centros de eventos configurado, consulta la documentación Quickstart: Create an event hub using Azure portal (Inicio rápido: Crear un centro de eventos con el portal de Azure) para conocer más detalles. Después tendrás que consultar las instrucciones para enviar logs de actividad al centro de eventos.

Al crear un centro de eventos, puedes agregarlo a un espacio de nombre existente si ya tienes uno o puedes crear uno completamente nuevo, como mostraremos aquí.

Desde el servicio Event Hubs en tu Azure Portal, haz clic en Add (Agregar).

Debes seleccionar un grupo de recursos y después asignarle un nombre. Por ejemplo: elastic-eventhub.

Selecciona la ubicación y nivel de precio, continúa y agrega etiquetas opcionales si lo deseas, después haz clic en Create (Crear).

Haz clic en Shared access policies (Políticas de acceso compartido).

Haz clic en la política predeterminada que aparece, denominada RootManageSharedAccessKey y después haz clic para copiar la cadena de conexión. Pégala en un lugar seguro, ya que se usará para configurar el archivo de configuración del módulo de Azure para Filebeat: azure.yml.

Navega a Activity log (Log de actividad) y después haz clic en Diagnostics settings (Configuración de diagnósticos).

Haz clic en Add diagnostic setting (Agregar configuración de diagnóstico) y asígnale el nombre elastic-diag.

Selecciona los logs que prefieras y asegúrate de seleccionar también Stream to an event hub (Transmitir a un centro de eventos).

Selecciona el espacio de nombre elastic-eventhub, después la opción (Create in selected namespace) (Crear en espacio de nombre seleccionado) para el nombre del centro de eventos, a continuación selecciona la política RootManageShareAccessKey.

Se creará un centro de eventos denominado insights-activity-logs que aparecerá bajo el espacio de nombre elastic-eventhub. Este se usará en el archivo de configuración azure.yml.

Haz clic en Save (Guardar) y después puedes navegar opcionalmente de regreso a elastic-eventhub y ver las métricas de eventos que ingresan.

Habilitar el módulo de Azure

Simplemente ejecuta un comando para habilitar el módulo de Azure. Esto se muestra de la página de Kibana (donde comenzamos) como paso tres.

Esto garantizará que el archivo de configuración azure.yml se active, para comunicarse con tu suscripción de Azure.

El comando para habilitar el módulo en Linux es el siguiente:

sudo filebeat modules enable azure

Para enumerar todos los módulos, y que los habilitados se muestren primero, ejecuta lo siguiente:

sudo filebeat modules list

Para deshabilitar el módulo, simplemente ejecuta lo siguiente:

sudo filebeat modules disable azure

Configurar el módulo de Azure

Debes configurar el archivo azure.yml después de habilitarlo. En Linux por lo general se encuentra en el directorio/etc/filebeat/modules.d. Si un módulo no está habilitado, también habrá una extensión .disabled en ese directorio.

Solo activitylogs está habilitado de forma predeterminada en el módulo de Azure, expresado por enabled: true.

Para configurar auditlogs y signinlogs, debes ser administrador global o administrador de seguridad de tu cuenta de Azure. Puedes consultar las instrucciones sobre cómo exportar logs de auditoría e inicio de sesión al centro de eventos para obtener más detalles. Después puedes habilitarlos cambiando enabled: false a true.

Importante: si no tienes permisos suficientes para configurar los logs de auditoría e inicio de sesión, entonces dichos módulos en el archivo azure.yml deben permanecer deshabilitados.

Es momento de agregar la información al archivo de configuración azure.yml. Todo lo que necesitas agregar son los detalles de las entradas eventhub y connection_string que se guardaron previamente y después los detalles de la cuenta de almacenamiento.

Sugerencia de profesionales: la clave y el nombre de cuenta de almacenamiento necesarios pueden encontrarse en la Storage account (Cuenta de almacenamiento) que deseas usar. Haz clic en Access keys (Claves de acceso). También puedes consultar Manage storage account access keys (Gestionar claves de acceso a cuentas de almacenamiento) de Microsoft Azure para obtener ayudar.

Tu archivo de configuración, suponiendo que solo estás configurando los logs de actividad, sería similar al siguiente.

- module: azure 
  # All logs 
  activitylogs: 
    enabled: true 
    var: 
      # eventhub name containing the activity logs 
      eventhub: "insights-activity-logs" 
      # consumer group name that has access to the event hub 
      consumer_group: "$Default" 
      # connection string required to communicate with Event Hubs       
      connection_string: "" 
      # the storage account  
      storage_account: "" 
      # the storage account key 
      storage_account_key: ""

Para obtener más información sobre esta configuración, consulta la documentación sobre configuración del módulo. La cuenta de almacenamiento/clave es necesaria para mantener la secuencia de logs en caso de que se detenga el servicio de Filebeat.

Sugerencia de profesionales: eventhub es el nombre de instancia, más que el espacio de nombre de Event Hub. Los espacios de nombre de Event Hub son el contenedor de agrupamiento de varios centros de eventos, y se te factura a nivel del espacio de nombre. Consulta Event Hubs FAQ (Preguntas frecuentes sobre Event Hubs) en el sitio de documentos de Microsoft para obtener más detalles al respecto.

Configurar e iniciar Filebeat

Ahora que Filebeat, un centro de eventos y la cuenta de almacenamiento están configurados, es hora de comenzar ejecutando la configuración e iniciando Filebeat. De regreso en la página de Kibana donde comenzamos a descargar y configurar Filebeat, el paso cuatro detalla los comandos siguientes necesarios en este punto.

Como usamos RPM para instalar Filebeat como servicio, también se debe usar para ejecutarlo como servicio. Según el tipo de sistema que uses, podría variar ligeramente. Consulta Filebeat and systemd (Filebeat y systemd) para obtener más detalles sobre la ejecución de Filebeat como servicio para paquetes DEB y RPM, o consulta Filebeat quick start (Inicio rápido de Filebeat) si ejecutas en una plataforma diferente.

Primero, debemos ejecutar el paso setup, que cargará cosas como activos, índices y visualizaciones predefinidos usados por los dashboards cloud de Azure prediseñados. El comando setup aprovecha todas las integraciones listas para usar de Elastic con Azure, lo que alivia la necesidad de desarrollar propias; sin embargo, todo es completamente personalizable y hay muchas integraciones desarrolladas por la comunidad.

Ejecuta la configuración:

sudo filebeat setup

También puedes ejecutar el comando setup con -e, lo cual enviará los datos de logging a la pantalla, en lugar de a syslog, que resulta útil para ver los pasos que se están realizando.

sudo filebeat setup -e

Después inicia el servicio:

sudo service filebeat start

Para comprobar el estado:

sudo service filebeat status

Para detener Filebeat:

sudo service filebeat stop

Para comprobar y validar, con un cuadro de diálogo en ejecución, que el servicio se ejecuta en buen estado:

sudo journalctl -u filebeat -f

Visualización en Kibana

Ahora que el centro de eventos está recopilando los logs de actividad y, a su vez, Filebeat los envía a Elasticsearch, podemos visualizarlos en Kibana.

Suponiendo que aún tienes la página abierta donde iniciamos la configuración de Filebeat, deberías poder usar Check data (Comprobar datos) y por último hacer clic en Azure logs dashboard (Dashboard de logs de Azure), que te llevará directamente al dashboard.

blog-azure-log-mon-11.jpg

Y ahí está. Ingesta, análisis y visualización en solo unos pasos.

Conclusión

Esperamos que este recurso te haya resultado útil para dar los primeros pasos con Filebeat, ingestar logs de actividad de Azure con un centro de eventos y monitorear tu despliegue de Azure con dashboards listos para usar.

El paso siguiente es recopilar tus métricas de procesamiento, contenedores, almacenamiento de bases de datos, facturación e información de aplicaciones de Azure con el módulo de Azure para Metricbeat.

¿Tienes preguntas o quieres contribuir en un debate beneficioso? Asegúrate de visitar el grupo de debate de Elastic Observability. También hay varios videos de primeros pasos y recursos de capacitación que puedes aprovechar visitando nuestro centro de aprendizaje de Elastic.