Registros injustos como JSON en Container Optimized OS
Puedo dañar los registros de Google Log Viewer con la ayuda del agente de registro stackdriver de Container Optimized OS como JSON.
Inserta registros como un valor en el mensaje, pero no como carga útil json con la configuración predeterminada
¿Qué he probado?
He cambiado la configuración de fluentd en /etc/stackdriver/logging.config.d/fluentd-lakitu.conf a lo siguiente:
<source>
@type tail
format json
path /var/lib/docker/containers/*/*.log
<parse>
@type json
</parse>
pos_file /var/log/google-fluentd/containers.log.pos
tag reform_contain
read_from_head true
</source>
Pero no puede enviar registros al visor de registros
SO: SO optimizado para contenedores cos-81-12871-1196-0
Respuestas
Encontré este problema en el Rastreador de problemas públicos de Google, que analiza el mismo problema que mencionó en su caso de uso. Se ha notificado al equipo de productos de Google sobre esta limitación y están trabajando en ello. Solo tiene que ir allí y hacer clic en la estrella junto al título para obtener actualizaciones sobre el problema y darle más visibilidad al problema.
Como @Kamelia Y mencionó sobre elhttps://issuetracker.google.com/issues/137517429
Hay una mención sobre la solución alternativa utilizada.
<filter cos_containers.**>
@type parser
format json
key_name message
reserve_data false
emit_invalid_record_to_error false
</filter>
El fragmento anterior analiza los registros en JSON y daña a Cloud Logging.
En esta discusión en Grupos de Google en Stackdriver, hemos discutido cómo usarlo con el script de inicio.
Aquí está el fragmento de la secuencia de comandos de inicio.
cp /etc/stackdriver/logging.config.d/fluentd-lakitu.conf /etc/stackdriver/logging.config.d/fluentd-lakitu.conf-save
# Shorter version of the above: cp /etc/stackdriver/logging.config.d/fluentd-lakitu.conf{,-save}
(
head -n -2 /etc/stackdriver/logging.config.d/fluentd-lakitu.conf-save; cat <<EOF
<filter cos_containers.**>
@type parser
format json
key_name message
reserve_data false
emit_invalid_record_to_error false
</filter>
EOF
) > /etc/stackdriver/logging.config.d/fluentd-lakitu.conf
sudo systemctl start stackdriver-logging
Esta imagen se puede utilizar para generar registros JSON aleatorios. https://hub.docker.com/repository/docker/patelathreya/json-random-logger