Graylog: Problemas de mapeo de datos
Cómo resolver problemas de mapeo de datos de índice en Graylog
👋 ¡Bienvenido a la documentación de Stackhero!
Stackhero ofrece una solución Graylog cloud lista para usar que proporciona una serie de beneficios, incluyendo:
- Servidor de correo electrónico SMTP ilimitado y dedicado incluido.
- Actualizaciones sin esfuerzo con solo un clic.
- Nombre de dominio personalizable asegurado con HTTPS (por ejemplo, https://logs.tu-empresa.com).
- Rendimiento óptimo y seguridad robusta gracias a una VM privada y dedicada.
Ahorra tiempo y simplifica tu vida: ¡solo toma 5 minutos probar la solución de Graylog cloud hosting de Stackhero!
Un problema común en Graylog son los conflictos de mapeo de datos que pueden llevar a intentos fallidos de indexación. Puede encontrar este problema si ve registros como estos:
ElasticsearchException[Elasticsearch exception [type=mapper_parsing_exception, reason=failed to parse field [level] of type [long] in document with id '34fd4d11-36ed-11f0-afc9-0242ac140002'. Preview of field's value: 'error']]; nested: ElasticsearchException[Elasticsearch exception [type=illegal_argument_exception, reason=For input string: "error"]];
Razón del problema
Este problema surge de la función de mapeo dinámico de OpenSearch. El mapeo dinámico determina automáticamente el tipo de datos de cada campo basado en el primer documento escrito en un índice. Una vez establecido, este tipo de datos queda "bloqueado", y cualquier documento futuro con un tipo de datos diferente para ese campo es rechazado, causando una excepción de análisis del mapeador.
Cuando se crea un nuevo índice, el primer documento define el mapeo del índice. Por ejemplo, si el documento contiene un campo "level" con un valor de 3 (un valor numérico), OpenSearch establece el tipo de datos para "level" como "long" (un tipo numérico). Si un documento posterior enviado a Graylog contiene el campo "level" configurado como "error" (un tipo de cadena), será rechazado porque el tipo de datos no coincide con el tipo inicialmente establecido. Esto desencadena un error mapper_parsing_exception con la razón failed to parse field [level] of type [long] in document with id 'xxx'.
Este problema puede ocurrir con cualquier campo si los tipos de datos son inconsistentes entre documentos.
Cómo resolver el problema
Para resolver este problema, tiene 2 opciones:
1. Asegurar la consistencia de los tipos de datos entre sistemas
La solución ideal es estandarizar los tipos de datos utilizados para los campos en todos los sistemas que envían datos a Graylog. Por ejemplo, asegúrese de que el campo "level" siempre se envíe como una cadena (como "error", "warn", etc.) o siempre como un número (3, 4, etc.). Esta consistencia previene conflictos de mapeo y asegura que todos los documentos se ingieran correctamente.
2. Usar pipelines de Graylog para la conversión de datos
Si no es factible estandarizar los tipos de datos en todos los sistemas, puede usar los pipelines de Graylog para convertir los tipos de datos al recibirlos. Los pipelines le permiten definir reglas que transforman los datos según condiciones específicas.
Para implementar esta solución:
- Navegue a "System" > "Pipelines" en la interfaz web de Graylog.
- Haga clic en "Add new pipeline" para crear un nuevo pipeline.
- Defina reglas para convertir el campo "level" (u otros campos) al tipo de datos deseado. Por ejemplo, puede convertir niveles numéricos a sus representaciones de cadena correspondientes (como 3 a "error", 4 a "warning", etc.).
Este enfoque asegura que todos los datos entrantes se ajusten a los tipos de datos esperados, evitando conflictos de mapeo.
Visualización y cambio de mapeos de índices
Para usuarios avanzados, Graylog ofrece la posibilidad de ver y ajustar manualmente el mapeo de índices:
- Vaya a "System" > "Indices" en la interfaz web de Graylog.
- Seleccione el índice relevante.
- Navegue a "Configuration" > "Configure index field types" para ver o modificar los mapeos de campos.
Sin embargo, los ajustes manuales deben abordarse con precaución, ya que los mapeos incorrectos pueden llevar a más problemas de ingestión.