Registros injustos como JSON en Container Optimized OS

Sep 29 2020

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

4 KameliaY Sep 30 2020 at 01:57

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.

GamerAtmos Dec 28 2020 at 11:20

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