Ingesta de datos de Logstash en Azure Data Explorer
Importante
Este conector se puede usar en Inteligencia en tiempo real en Microsoft Fabric. Use las instrucciones de este artículo con las siguientes excepciones:
- Si es necesario, cree bases de datos con las instrucciones de Crear una base de datos KQL.
- Si es necesario, cree tablas con las instrucciones de Creación de una tabla vacía.
- Obtenga los identificadores URI de consulta o ingesta mediante las instrucciones de Copiar URI.
- Ejecute consultas en un conjunto de consultas KQL .
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
- Una cuenta de Microsoft o una identidad de usuario de Microsoft Entra. No se necesita una suscripción a Azure.
- Un clúster y la base de datos de Azure Data Explorer. Cree un clúster y una base de datos.
- Instrucciones de instalación de la versión 6, o posteriores, de Logstash.
Creación de una tabla
Una vez que tenga un clúster y una base de datos, es el momento de crear una tabla.
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)
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.
Edite un nuevo archivo de texto que contendrá la configuración necesaria de la canalización (mediante vi):
vi test.conf
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 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
Ya estamos preparados para ejecutar Logstash y probar nuestra configuración.
En un shell de comandos, vaya al directorio raíz de Logstash y, a continuación, 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.
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
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