Ingesta de datos de Logstash en Azure Data Explorer

Importante

Este conector se puede usar en Análisis en tiempo real en Microsoft Fabric. Siga las instrucciones de este artículo con las siguientes excepciones:

Logstash es una canalización de procesamiento de datos del servidor de código abierto que ingiere datos de varios orígenes al mismo tiempo, los transforma y, después, los envía a su "lugar de almacenamiento provisional" preferido. En este artículo, enviará dichos datos a Azure Data Explorer, que es un servicio de exploración de datos rápido y muy escalable para datos de telemetría y registro. Inicialmente creará una tabla y una asignación de datos en un clúster de prueba y, después, hará que Logstash envíe los datos a la tabla y valide los resultados.

Nota

Este conector actualmente solo admite el formato de datos JSON.

Requisitos previos

Creación de una tabla

Una vez que tenga un clúster y una base de datos, es el momento de crear una tabla.

  1. Ejecute el siguiente comando en la ventana de consulta de la base de datos para crear una tabla:

    .create table logs (timestamp: datetime, message: string)
    
  2. Ejecute el siguiente comando para confirmar que la nueva tabla logs se ha creado y que está vacía:

    logs
    | count
    

Creación de una asignación

Azure Data Explorer utiliza la asignación para transformar los datos entrantes en el esquema de tabla de destino. El siguiente comando crea una nueva asignación denominada basicmsg que extrae las propiedades del archivo JSON entrante que se indican mediante el path y las envía a column.

Ejecute el siguiente comando en la ventana de consulta:

.create table logs ingestion json mapping 'basicmsg' '[{"column":"timestamp","path":"$.@timestamp"},{"column":"message","path":"$.message"}]'

Instalación del complemento de salida de Logstash

El complemento de salida de Logstash se comunica con Azure Data Explorer y envía los datos al servicio. Para más información, consulte Complemento de Logstash.

En un shell de comandos, vaya al directorio raíz logstash y ejecute el siguiente comando para instalar el complemento:

bin/logstash-plugin install logstash-output-kusto

Configuración de Logstash para generar un conjunto de datos de ejemplo

Logstash puede generar eventos de ejemplo que pueden utilizarse para probar una canalización de un extremo a otro. Si ya utiliza Logstash y tiene acceso a su propio flujo de eventos, vaya a la sección siguiente.

Nota

Si usa sus propios datos, cambie la tabla y los objetos de asignación que se han definido en los pasos anteriores.

  1. Edite un nuevo archivo de texto que contendrá la configuración necesaria de la canalización (mediante vi):

    vi test.conf
    
  2. Pegue la siguiente configuración, que indicará a Logstash que genere 1000 eventos de prueba:

    input {
        stdin { }
        generator {
            message => "Test Message 123"
            count => 1000
        }
    }
    

Esta configuración también incluye el complemento de entrada stdin, que le permitirá escribir más mensajes (no olvide usar Entrar para enviarlos a la canalización).

Configuración de Logstash para enviar datos a Azure Data Explorer

Pegue la siguiente configuración en el archivo de configuración que usó en el paso anterior. Reemplace todos los marcadores de posición por los valores pertinente para la configuración. Para obtener más información, consulte Creación de una aplicación de Microsoft Entra.

output {
    kusto {
            path => "/tmp/kusto/%{+YYYY-MM-dd-HH-mm-ss}.txt"
            ingest_url => "https://ingest-<cluster name>.kusto.windows.net/"
            app_id => "<application id>"
            app_key => "<application key/secret>"
            app_tenant => "<tenant id>"
            database => "<database name>"
            table => "<target table>" # logs as defined above
            json_mapping => "<mapping name>" # basicmsg as defined above
    }
}
Nombre de parámetro Descripción
path El complemento de Logstash escribe eventos en archivos temporales antes de enviarlos a Azure Data Explorer. Este parámetro incluye una ruta de acceso en la que se deben escribir los archivos y una expresión de tiempo para la rotación de archivos desencadenará una carga en el servicio Azure Data Explorer.
ingest_url El punto de conexión de Kusto para las comunicaciones relacionadas con la ingesta.
app_id, app_key y app_tenant Credenciales necesarias para conectarse a Azure Data Explorer. Asegúrese de usar una aplicación con privilegios de ingesta.
database Nombre de la base de datos en la que se colocan los eventos.
table Nombre de la tabla de destino en la que se colocan los eventos.
json_mapping La asignación se usa para asignar a una cadena json de eventos entrantes el formato de fila correcto (define la propiedad que va en cada columna).

Ejecución de Logstash

Ahora estamos listos para ejecutar Logstash y probar nuestra configuración.

  1. En un shell de comandos, vaya al directorio raíz logstash y ejecute el siguiente comando:

    bin/logstash -f test.conf
    

    Debería ver la información impresa en la pantalla y, después, los 1000 mensajes que ha generados nuestra configuración de ejemplo. En este momento, también puede escribir más mensajes manualmente.

  2. Después de unos minutos, ejecute la siguiente consulta de Data Explorer para ver los mensajes en la tabla que ha definido:

    logs
    | order by timestamp desc
    
  3. Seleccione Ctrl + C para salir de Logstash

Limpieza de recursos

Ejecute el siguiente comando en la base de datos para limpiar la tabla logs:

.drop table logs