Situaciones para exportar Cloud Logging: Elasticsearch

En este caso, se muestra cómo exportar los registros seleccionados de Logging a un clúster de Elasticsearch. La situación supone que existe un clúster de Elasticsearch establecido en Elastic Cloud (servicio administrado de Elasticsearch) disponible para la transferencia de registros.

Si eres cliente de Google Cloud, puedes comenzar a usar Elasticsearch a través de Elastic Cloud en Google Cloud Marketplace, que tiene una facturación integrada a través de tu cuenta de Google Cloud.

Elasticsearch es un motor distribuido de búsqueda y estadísticas RESTful que proporciona funciones y servicios enriquecidos, optimizados para analizar telemetría, métricas y registros estructurados y no estructurados. Elastic Cloud en Google Cloud proporciona supervisión y asistencia líderes de la industria de Elastic y Google. Obtén copias de seguridad automáticas, actualizaciones y los parches de seguridad más recientes con poco tiempo de inactividad o interrupciones.

Puedes usar un proceso similar para Elastic Stack autoadministrado en su cuenta de Google Cloud.

Este artículo forma parte de la serie Patrones de diseño para exportar datos de Logging.

Introducción

Elastic Stack unifica todos los datos operativos y ofrece una búsqueda rápida, confiable y relevante, así como estadísticas en tiempo real. Beats, los transportadores ligeros de datos de Elastic, se alojan en el perímetro o se ejecutan sin servidores como Cloud Function, y se usan para recopilar y transferir datos. Son la forma más sencilla de transferir datos a Elasticsearch para verlos en Kibana.

Logstash sigue siendo una herramienta útil de transferencia si quieres recopilar datos de varias fuentes y transformar de manera significativa tus datos antes de transferirlos a Elasticsearch o exportarlos a una variedad. de resultados. Beats y Logstash se pueden usar juntos, o de manera individual, para enviar datos de registro relacionados con Google Cloud a Elasticsearch si publicas esos eventos en Pub/Sub.

Beats

Beats se envía con módulos ya preparados que se centran en la supervisión, las alertas, y los informes sobre registros y métricas. Este documento se centra en Filebeat, ya que funciona como un buen punto de partida en una solución de observabilidad general, y agrega otros módulos y otras integraciones posteriormente.

Algunos de los casos de uso más populares para Beats son los siguientes:

  • Revisar y realizar informes sobre los datos de auditoría con Auditbeat
  • Analizar archivos y métricas de registro con Filebeat y Metricbeat
  • Supervisar datos de la nube con un Functionbeat sin servidores (Cloud Function)
  • Mantenerse informado del tráfico de red con Packetbeat

En el siguiente diagrama, se muestra un ejemplo de una arquitectura básica para exportar operaciones de Google Cloud Logging en Elasticsearch mediante Beats. Filebeat para el módulo de Google Cloud recopila registros de auditoría, flujo de VPC y firewall. Con independencia de que el entorno contenga contenedores, funciones sin servidores, VM o apps, los receptores de Cloud Logging se configuran a fin de enviar los datos filtrados correctamente a un tema de Pub/Sub, que Filebeat enviará a Elasticsearch a fin de transferirse y agregarse para búsquedas y realización de informes en Kibana.

Ejemplo de flujo de transferencia de Google Cloud a Elastic Cloud.Ejemplo de flujo de transferencia de Google Cloud a Elastic Cloud.

Configura la exportación de registros en tiempo real

En esta sección, crearás la canalización para la exportación de registros en tiempo real desde Logging hasta Elasticsearch a través de Filebeat, mediante Pub/Sub. Se creará un tema de Pub/Sub para recopilar recursos de registro relevantes con filtrado mejor definido, después de lo cual se establece un servicio de receptor y, por último, se configura Filebeat.

Configura un tema de Pub/Sub

Sigue las instrucciones para configurar un tema de Pub/Sub que recibirá los registros exportados. Asígnale un nombre al tema, como es-auditlogs-export. Los temas también necesitan una suscripción. Por motivos de simplicidad, puedes crear una suscripción con el mismo nombre. Usa la configuración predeterminada cuando configures la suscripción. Puedes configurar los permisos de administración de identidades y accesos más adelante.

Activa registros de auditoría para todos los servicios

Los registros de auditoría de acceso a los datos se encuentran inhabilitados de forma predeterminada, excepto para BigQuery. Para habilitar todos los registros de auditoría.

Puedes configurar registros de auditoría en Google Cloud Console.

  1. En Cloud Console, ve al menú IAM y administración.

    Ir a IAM y administración

  2. Haz clic en Registros de auditoría y, luego, en Configuración de auditoría predeterminada.

  3. Asegúrate de que se seleccionen los tipos de registro correctos; en este caso, Lectura de administrador, Lectura de datos y Escritura de datos.

  4. Haz clic en Guardar.

Habilita los registros de auditoría de Google Cloud.Habilita los registros de auditoría de Google Cloud.

De manera opcional, habilita los registros de VPC de Google Cloud y los registros del firewall.De manera opcional, habilita los registros de VPC de Google Cloud y los registros del firewall

Define mejor la exportación de registros con filtros

Una vez que configures las exportaciones agregadas o la exportación de registros, debes definir mejor los filtros de registro para exportar registros de auditoría, registros relacionados con máquinas virtuales, registros de almacenamiento y registros de base de datos.

El siguiente filtro de registros incluye los registros de auditoría de actividad del administrador, de acceso a datos y de eventos del sistema, y los registros para tipos de recursos específicos, en este caso, los buckets de Compute Engine y Cloud Storage, y los recursos de BigQuery.

logName:"projects/PROJECT-ID/logs/cloudaudit.googleapis.com%2Factivity" OR
"projects/PROJECT-ID/logs/cloudaudit.googleapis.com%2Fdata_access" OR
"projects/PROJECT-ID/logs/cloudaudit.googleapis.com%2Fsystem_event" OR
resource.type:gce OR
resource.type=gcs_bucket OR
resource.type=bigquery_resource

Reemplaza PROJECT-ID por el ID del proyecto de Google Cloud. Para ver el ID del proyecto, ejecuta el comando gcloud config get-value project. Reemplaza SERVICE por el nombre de tu servicio de Cloud Run.

Crea un servicio receptor

Crear el receptor de enrutador de registros envía los registros correctos al tema de Pub/Sub que transferirá Elasticsearch. La clave es garantizar que se seleccionen los filtros correctos en el objeto. Si deseas obtener más información, consulta Prácticas recomendadas para trabajar con registros de auditoría de Google Cloud.

Para crear el receptor, sigue estos pasos:

  1. En Cloud Console, ve al menú Registro de operaciones y, luego, haz clic en Enrutador de registros.
  2. Asegúrate de que el proyecto de Google Cloud correcto esté seleccionado y, luego, haz clic en Crear receptor.
  3. Selecciona el tema Cloud Pub/Sub y haz clic en Siguiente. Crea el servicio de receptor

  4. Crea un filtro avanzado.

    Crea filtro avanzado.

  5. Ingresa el siguiente texto en la casilla de filtro y borra todo lo que el sistema pueda haber agregado, como resource.type="global" y reemplaza PROJECT-ID por el nombre de tu proyecto.

    logName="projects/PROJECT-ID/logs/cloudaudit.googleapis.com%2Factivity" OR
    "projects/PROJECT-ID/logs/cloudaudit.googleapis.com%2Fdata_access" OR
    "projects/PROJECT-ID/logs/cloudaudit.googleapis.com%2Fsystem_event" OR
    resource.type:"gce" OR resource.type="gcs_bucket" OR resource.type="bigquery_resource"
    

    Este filtro sirve como un procedimiento inicial para el cual los registros se pueden transferir a Elasticsearch. Existen otros filtros que puedes configurar con este proceso.

  6. Haz clic en Enviar filtro.

    Visor de registros.

  7. Ingresa el Nombre del receptor gcp_logging_sink_pubsub y establece el Destino del receptor en el es-auditlogs-export que se creó antes.

    Crea un receptor de registros.

    Después de hacer clic en Crear receptor, se crea una cuenta de servicio única que tiene el derecho de escribir registros en el destino seleccionado. Toma nota de esta información porque la necesitarás para el próximo paso.

El siguiente comando de ejemplo gcloud crea un receptor llamado gcp_logging_sink_pubsub para enviar los registros de auditoría filtrados correctamente al tema de Pub/Sub es-auditlogs-export. El receptor incluye todos los proyectos secundarios y especifica los filtros para seleccionar registros de auditoría específicos.

gcloud logging sinks create gcp_logging_sink_pubsub \
    pubsub.googleapis.com/projects/PROJECT-ID/topics/es-auditlogs-export \
    --log-filter='logName="projects/PROJECT-ID/logs/cloudaudit.googleapis.com%2Factivity" OR "projects/PROJECT-ID/logs/cloudaudit.googleapis.com%2Fdata_access" OR "projects/PROJECT-ID/logs/cloudaudit.googleapis.com%2Fsystem_event" OR resource.type:"gce" OR resource.type="gcs_bucket" OR resource.type="bigquery_resource"'

El resultado del comando es similar al siguiente:

Created [https://logging.googleapis.com/v2/projects/project-id/sinks/gcp_logging_sink_pubsub].
Please remember to grant `serviceAccount:p15060-5219@service-account-id.iam.gserviceaccount.com` the Pub/Sub Publisher role on the topic.
More information about sinks can be found at https://cloud.google.com/logging/docs/export/configure_export

La entrada serviceAccount que muestra la llamada a la API indica qué identidad se debe agregar al tema específico de Pub/Sub como publicador. Esta identidad representa una cuenta de servicio de Google Cloud que se creó para la exportación. Hasta que no otorgues a este publicador de identidad permisos para el tema de destino, las exportaciones de entradas de registro desde este receptor fallarán. Para obtener más información, consulta la siguiente sección o la documentación Otorga acceso a un recurso.

Establece permisos de políticas de IAM para el tema de Pub/Sub

Si agregas la cuenta de servicio al tema es-auditlogs-export de Pub/Sub con los permisos de Publicador de Pub/Sub, otorgas permiso a la cuenta de servicio para publicar en el tema.

Para agregar permisos a la cuenta de servicio, sigue estos pasos:

  1. En Cloud Console, abre la página Temas de Cloud Pub/Sub:

    IR A LA PÁGINA TEMAS

  2. Haz clic en el nombre del tema es-auditlogs-export.

  3. Haz clic en Mostrar panel de información y, luego, en Agregar miembro para configurar los permisos.

  4. Asegúrate de que el permiso del publicador de Pub/Sub esté seleccionado.

    Selecciona el permiso del publicador de Pub/Sub.

Después de crear la exportación de registros mediante este filtro, los archivos de registro comienzan a propagarse en el tema de Pub/Sub del proyecto configurado. Puedes confirmar que el tema recibe mensajes mediante el Explorador de métricas en Cloud Monitoring. Mediante el uso del siguiente tipo de recurso y métrica, observa la cantidad de operaciones de envío de mensajes realizadas durante un período breve. Si configuraste la exportación de forma correcta, verás la actividad por encima de 0 en el gráfico, como en la siguiente captura de pantalla.

  • Tipo de recurso: Cloud Pub/Sub Topic - pubsub_topic
  • Métrica: Publish message operations - pubsub.googleapis.com/topic/send_message_operation_count
  • Filtro: topic_id="es-auditlogs-export"

Explorador de métricas

Configuración de Filebeat

Ahora que Google Cloud supervisa los registros de auditoría y algunas otras métricas, es hora de instalar y configurar Filebeat, el servidor de envío de datos liviano de Elastic. Debes instalar Filebeat en un host, por ejemplo, una VM que se aloja dentro del mismo proyecto de Google Cloud.

Filebeat está configurado para recopilar y, luego, enviar los registros publicados a Elasticsearch, pero puedes configurarlo con facilidad para que realice mucho más, como supervisar aplicaciones, contenedores y métricas del sistema mediante módulos empaquetados previamente, muchos con visualizaciones y paneles precompilados.

Crea una cuenta de servicio

A medida que te preparas para configurar Filebeat, debes generar una cuenta de servicio de Google Cloud y un archivo de claves correspondiente. Si no estás familiarizado con este proceso, consulta Crea y administra claves de cuentas de servicio. Exporta el archivo en formato JSON y asígnale un nombre como gcp-es-service-account.json.

Usa este archivo con Filebeat para autenticarte en el tema de Pub/Sub adecuado. Guarda el archivo en el host que ejecuta Filebeat. Lo moverás y lo colocarás en la ubicación correcta en otro paso.

Proporciona a la cuenta la función Editor de Pub/Sub. Para obtener más información, consulta Control de acceso de Pub/Sub.

Función de editor de cuenta de servicio de Pub/Sub.

Instala Filebeat

En este artículo, se da por sentado que tienes un host que puede ejecutar Filebeat y una implementación existente de Elastic Cloud. Sin embargo, la creación de uno solo toma unos minutos. Por lo tanto, si no tienes uno, y necesitas un poco de orientación, consulta la guía de introducción de Elasticsearch.

Puedes seguir la guía de instalación y configuración de Inicio rápido de Filebeat, o en un sistema yum/RPM puedas ejecutar lo siguiente:

sudo yum install filebeat

Aún mejor, sigue las instrucciones que encontrarás directamente en Kibana.

  1. Primero, haz clic en Agregar datos de registro en la página principal de Kibana.

    Agrega datos de registro en Kibana.

  2. Desplázate hacia abajo y haz clic en Registros del sistema o en otro módulo para obtener instrucciones sobre cómo descargar y configurar Filebeat. No es necesario que habilites ese módulo.

    Filebeat incluye muchos módulos ya preparados. Si quieres usarlos, solo debes habilitarlos y configurarlos. En este procedimiento, no necesitas habilitar el módulo Registros del sistema. En su lugar, habilita el módulo de Google Cloud.

  3. Elige tu sistema operativo.

    Si el sistema operativo no aparece en la lista, deberás seguir la guía de la Guía de inicio rápido, aunque esta página también proporciona información que necesitarás más adelante.

  4. Descarga y, luego, instala Filebeat según las instrucciones, por lo general, con un comando curl.

    Las implementaciones de Windows deberán descargarse.

Configura Filebeat

En el siguiente procedimiento, se usa el usuario elastic compilado previamente y la contraseña generada. Se recomienda crear una función o usuario único que se use para entornos de producción.

A fin de obtener detalles sobre cómo configurar la función y el usuario, consulta Otorga los privilegios y funciones necesarios para la configuración{: target="external" class="external" track-type="tutorial" track-name="externalLink" track-metadata-position="body" }.

El usuario elastic es un superusuario y la cuenta debe reservarse solo con fines administrativos o de prueba. Si es necesario restablecer la contraseña del usuario, se deberá restablecer desde cualquier lugar donde se use. Por este motivo, en entornos de producción, es mejor configurar un usuario único para cada propósito previsto.

Básicamente, hay dos opciones para establecer la autenticación entre Filebeat y Elasticsearch: configurar un almacén de claves o codificar las credenciales en el archivo de configuración filebeat.yml.

Para cualquiera de las siguientes opciones, deberás configurar cloud.id y cloud.auth.

Puedes obtener el cloud.id{: target="external" class="external" track-type="tutorial" track-name="externalLink" track-metadata-position="body" } en los pasos anteriores a Instalar Filebeat en Kibana, o de las implementaciones de la página de administración de implementaciones de Elasticsearch Service{: target="external" class="external" track-type="tutorial" track-name="externalLink" track-metadata-position="body" }.

Si aún no guardaste la contraseña de autorización durante el proceso de implementación, puedes restablecer la contraseña del usuario elastic. Restablece las instrucciones de contraseña del usuario elástico.

Opción 1: Usa el almacén de claves

Una manera más segura de autenticar Filebeat con Elastic Cloud es usar el almacén de claves de Filebeat, para almacenar valores secretos de forma segura.

Ejecuta el comando filebeat keystore en el host que ejecuta Filebeat. Este almacén de claves encripta el ID de Cloud y la contraseña de usuario, y ofrece la posibilidad de usarlos como variables en Filebeat o cualquier otro Beat.

Los siguientes pasos se aplican a una máquina Linux. Si necesitas ayuda con tu sistema operativo, consulta la Guía de inicio rápido, ya que los comandos difieren ligeramente.

  1. Crea el almacén de claves:

    sudo filebeat keystore add ES_PWD

    Cuando se te solicite, pega la contraseña que se te proporcionó para el usuario elástico durante la implementación o cuando la restaures. De lo contrario, si creaste un usuario, ingresa la contraseña de este.

  2. Agrega la implementación cloud.id:

    sudo filebeat keystore add CLOUD_ID

    Cuando se te solicite, pega el ID de Cloud Identity. (No incluyas comillas si haces referencia a los pasos de instalación de Filebeat).

  3. Actualiza el archivo filebeat.yml para usar estas variables nuevas y asegúrate de que estás en el directorio en el que está el archivo filebeat.yml, o cerciórate de ingresar la ruta completa del directorio al archivo existente.

    echo cloud.id: \"\$\{CLOUD_ID\}\" >> filebeat.yml
    echo cloud.auth: \"elastic:\$\{ES_PWD\}\" >> filebeat.yml
    
  4. Otros comandos útiles del almacén de claves:

    sudo filebeat keystore list: Muestra todos los almacenes de claves.

    sudo filebeat keystore --help: Obtén ayuda del comando

  5. Consulta Configura el módulo de Google Cloud.

Para obtener más información, consulta la documentación del almacén de claves{: target="external" class="external" track-type="tutorial" track-name="externalLink" track-metadata-position="body" }.

Opción 2: Modifica el archivo directamente

También puedes seguir las instrucciones de la página de instalación en Instala Filebeat o la Guía de inicio rápido, que describe la configuración del archivo filebeat.yml (el diseño del directorio depende de tu entorno) agregando directamente la información de la credencial a ese archivo.

  1. Para que Filebeat envíe datos a Elasticsearch, debes establecer dos variables, cloud.id y cloud.auth, que se encuentran en el archivo filebeat.yml.

    Ejemplo:

    # ====== Elastic Cloud =================
    cloud.id: "gcp_filebeat:dXMtY2VudHJhjQZjJkODdkOGJjNmJi" cloud.auth: "elastic:<password>"
    

    Donde gcp_filebeat es el nombre de la implementación y <password> debe reemplazarse con la contraseña que asignaste.

Configura el módulo de Google Cloud

Una vez que el archivo filebeat.yml esté configurado para conectarse a tu servicio Elasticsearch, debes habilitar y, luego, configurar el módulo Google Cloud.

  1. Habilita el módulo googlecloud. Por ejemplo, en el tipo de Linux:

    sudo filebeat modules enable googlecloud

    Sugerencia: Puedes saber qué módulos están habilitados; para ello, ejecuta el siguiente comando:

    sudo filebeat modules list

  2. Después de habilitar el módulo googlecloud, debes configurar el archivo de configuración YAML específico que se encuentra en el directorio modules.d. Puede ser /usr/share/filebeat o el lugar donde se extrajeron los archivos.

Ejemplo de configuración googlecloud.yml, que habilita los registros de auditoría:

# open {path}/modules.d/googlecloud.yml, add the following

- module: googlecloud
  audit:
    enabled: true
    var.project_id: project-id
    var.topic: es-auditlogs-export
    var.subscription_name: es-auditlogs-export
    var.credentials_file: ${path.config}/gcp-es-service-account.json

La ubicación del archivo var.credentials_file depende del sistema. Puedes ejecutar el siguiente comando test config para mostrar dónde apunta la Ruta de configuración y dónde debe estar publicado ese archivo de credenciales. También consulta la página de diseño de directorios en Elastic.

  1. Asegúrate de que la configuración de recopilación vpcflow y firewall no estén habilitadas.

    - module: googlecloud
      vpcflow:
        enabled: false
      firewall:
        enabled: false
    
  2. Prueba la configuración mediante la ejecución de un comando similar:

    sudo filebeat test config -e

  3. Coloca el archivo JSON exportado, desde el paso Crea una cuenta de servicio, en la ubicación determinada por el comando anterior para Config path.

    En Linux CentOS, con Filebeat versión 7.9.2, la ubicación es la ubicación extraída:

    Ruta de configuración: [/home/UserName/filebeat-7.9.2-linux-x86_64]

    Si se instala con un sistema de empaquetado, la ubicación será /etc/filebeat.

  4. Ejecuta el comando de configuración, que garantiza que los registros importados se puedan analizar y, luego, indexar correctamente, y proporciona visualizaciones predefinidas, incluidos los paneles.

    sudo filebeat setup

  5. Inicia filebeat:

    sudo filebeat -e

Si se produce algún error cuando inicias el servicio, los registros deben proporcionar información útil. Un problema común es dónde se coloca el archivo de configuración. El error indicará dónde se debe ubicar el archivo de configuración en este caso. Otros problemas comunes están relacionados con la autenticación con la cuenta de servicio que creaste.

Si tienes un problema con la configuración, puedes publicar preguntas y buscar situaciones similares en el foro de debate de Elastic.

Usa los registros exportados

Una vez que Elasticsearch transfire los registros exportados, puedes acceder a Kibana y revisar el panel Filebeat GoogleCloud Audition, donde obtienes estadísticas sobre lo siguiente:

  • Ubicaciones de fuentes de auditoría (representadas por un mapa de coordenadas)
  • Resultado de eventos de auditoría a lo largo del tiempo (representado por un gráfico de barras vertical)
  • Acción de evento de auditoría (representado por un gráfico circular)
  • Correo electrónico del usuario superior de auditoría (representado por la nube de etiquetas)
  • Usuario-agente de auditoría (representado por un gráfico circular)
  • Nombre del recurso de auditoría (representado por un gráfico circular)
  • Eventos de auditoría (enumerados en una tabla de datos o en un formato JSON)

Panel de registro de auditoría.

Logstash

Si deseas instalar y usar Logstash, transformar tus datos y, luego, enviarlos a Elasticsearch, puedes seguir estos pasos. Para comenzar, o si estás probando una situación de prueba, puedes usar la misma VM que ejecuta Beats. Sin embargo, en un entorno de producción, es mejor tener un servidor dedicado.

Configura Logstash

  1. Descarga e instala Logstash siguiendo la guía Comienza a usar Logstash. Esta guía proporciona varias opciones de implementación según el entorno, además de indicar los requisitos y requisitos previos más recientes, como la versión de Java, y la configuración de su variable de entorno de inicio..

  2. Puedes usar Logstash para transferir registros desde Filebeat (opción 1) o directamente desde Pub/Sub (opción 2). En cualquier caso, debes conocer el extremo Elasticsearch y la contraseña de usuario elastic, que puedes encontrar en la consola de Elastic Cloud.

    Probablemente guardaste la contraseña de elastic durante la implementación, pero, si necesitas hacerlo, puedes hacer clic en el vínculo Seguridad en la misma consola.

    Extremo de Logstash.

Opción 1

Dado que Filebeat ya se configuró para extraer datos desde Pub/Sub, puedes transferir esos datos desde Filebeat a una canalización de Logstash, transformarlos y, luego, enviarlos a Elasticsearch.

  1. Modifica el archivo /etc/filebeat/filebeat.yml comentando cloud.id y cloud.auth configurados anteriormente.

    # ====== Elastic Cloud =================
    #cloud.id: "xxx"
    #cloud.auth: "xxx"
    
  2. Comenta las líneas output.elasticsearch y hosts en Resultado de Elasticsearch.

    # ------ Elasticsearch Output -------------------
    #output.elasticsearch:
    # Array of hosts to connect to.
    #hosts: ["localhost:9200"]
    
  3. Quita el signo de hash (#) delante de hosts en Resultado de Logstash.

    # ------ Logstash Output -------------------
    #output.logstash:
    # The Logstash hosts
    hosts: ["localhost:5044"]
    

    Esto enviará la salida de Filebeat al host local, que ejecuta Logstash en esta situación, a través del puerto 5044. Logstash, de forma predeterminada, escucha en este puerto por lo que no debe modificarse.

  4. Crea un archivo de configuración de canalización de Logstash.

    sudo vim /etc/logstash/conf.d.beats.conf

    Este archivo contendrá lo siguiente:

    input {
      beats {
        port => 5044
      }
    }
    
    output {
      stdout { codec => rubydebug } #Used to validate/troubleshoot
      elasticsearch {
        hosts => ["https://f3041.us-central1.gcp.cloud.es.io:9243"]
        user => "elastic"
        password => "glnvy8k27gwQE8pVPaxW35a"
        index => "logstash-%{+YYYY.MM.dd}"
      }
    }
    

Opción 2

Si prefieres usar Logstash directamente, en lugar de usar Filebeat, sigue estos pasos para configurar el complemento de entrada de Pub/Sub para Logstash.

  1. Según la instrucción, primero debes instalar el complemento ejecutando el siguiente comando, o similar a su entorno. El directorio para un entorno Linux es /usr/share/logstash, pero puede variar según el sistema.

    bin/logstash-plugin install logstash-input-google_pubsub

  2. La autenticación de Google Cloud es la misma para la instalación de Filebeat. Puedes consultar los pasos anteriores de Crea una cuenta de servicio en este documento. Se mostrará una entrada a continuación para el archivo JSON de la clave.

  3. Crea un archivo de configuración de Pub/Sub para guardarlo en el directorio de logstash, generalmente /etc/logstash/conf.d, con el nombre pub_sub.conf.

    El archivo de configuración debería ser similar al siguiente: El hosts es el extremo de Elasticsearch.

    entrada { google_pubsub { project_id => "project-id" topic => "es-auditlogs-export" subscription => "es-auditlogs-export" json_key_file => "gcp-es-service-account.json" } }

    resultado { stdout { codec => rubydebug } #Used to validate/troubleshoot elasticsearch { hosts => ["https://f3041.us-central1.gcp.cloud.es.io:9243"] user => "elastic" password => "glnvy8k27gwQE8pVPaxW35a" index => "logstash-%{+YYYY.MM.dd}" } }

Si continúas con ambas opciones, inicia Logstash y, luego, usa Kibana para obtener estadísticas.

  1. Debes ejecutar Logstash como un servicio en sistemas como Linux; cuando se use el administrador de paquetes para instalar Logstash, debes ejecutarlo como un servicio, es decir, sudo service logstash start. Consulta Ejecuta Logstash como servicio en Debian o RPM para obtener más detalles sobre otros sistemas.
  2. A fin de validar el servicio, ejecuta un comando similar a este para Linux:

    sudo journalctl -u logstash -f
    

Visualiza la colección de Logstash en Kibana

Ahora que los registros de Pub/Sub se envían a Elasticsearch mediante Logstash, es necesario realizar algunas acciones en Kibana para ver los datos.

  1. Abre Kibana y ve a Administración de pila.

    Administración de pila de Kibana

  2. Haga clic en Kibana > Patrones de índice.

    Patrón de índice de Kibana

  3. Haz clic en Crear patrón de índice.

    Kibana crea un patrón de índice.

  4. Ingresa logstash-* en el campo Nombre del patrón del índice. Deberías ver la coincidencia del patrón de índice, debido a los pasos anteriores que ejecutan Logstash.

    Kibana define el patrón del índice.

  5. Haz clic en Siguiente paso.

  6. Selecciona @timestamp para el filtro de campo Hora y, luego, haz clic en Crear patrón de índice.

    Marca de tiempo de selección de Kibana.

  7. Haz clic en Descubrir.

    Kibana descubre.

  8. Asegúrate de que el patrón de índice logstash-* esté seleccionado.

    Índice de selección de Kibana

  9. Ahora puedes visualizar los datos transferidos. Obtén más información sobre lo que puedes hacer con Kibana, como usar Registros, que pueden correlacionar registros y métricas.

    Por ejemplo, agrega el índice logstash-* a la lista de patrones, separados por una coma, como en la siguiente captura de pantalla.

    Datos de visualización de Kibana.

Próximos pasos con Logstash

Regístrate para mirar el video de seminario en línea Comenzar con Logstash. En este video, se explica la información general de Logstash, su arquitectura, su diseño de archivos importantes, cómo configurar canalizaciones con filtros, y cómo usar las técnicas de transformación de datos y enriquecimiento.

¿Qué sigue?