Поврежденные журналы из Fluentd в Graylog

Мне удается отправить журналы кластера kubernetes на graylog2 с помощью fluentd, настроив демон-набор kubernetes.

проблема у меня заключается в том, что я не могу прочитать сообщение журнала в graylog, потому что оно кажется каким-то образом поврежденным.

беглый конф

<source>
  type tail
  path /var/log/containers/*.log
  pos_file /var/log/es-containers.log.pos
  time_format %Y-%m-%dT%H:%M:%S
  tag kubernetes.*
  format json
  read_from_head true
</source>

<filter kubernetes.**>
  type kubernetes_metadata
</filter>

<filter kubernetes.**>
  type record_transformer
  renew_record true
  enable_ruby true
  keep_keys facility,stream
  <record>
    host ${Socket.gethostname}
    version "1.1"
    short_message ${log}
    _docker_container_id ${docker[:container_id]}
    _kubernetes_namespace ${kubernetes[:namespace_name]}
    _kubernetes_pod ${kubernetes[:pod_name]}
    _kubernetes_container ${kubernetes[:container_name]}
  </record>
</filter>


<match kubernetes.**>
   type copy
   <store>
     type gelf
     input_encoding 'UTF-8'
     host "#{ENV['GELF_HOST']}"
     port "#{ENV['GELF_PORT']}"
     flush_interval 5s
   </store>
</match>

Dockerfile:

FROM fabric8/fluentd:0.14.8

MAINTAINER Gilbert Roulot <gilbert.roulot@tech-angels.com>

ENTRYPOINT ["fluentd"]

RUN yum install -y gcc-c++ wget

RUN scl enable rh-ruby23 'gem install --no-document string-scrub -v 0.0.5' && \
    scl enable rh-ruby23 'gem install --no-document fluent-plugin-kubernetes_metadata_filter -v 0.18.0' && \
    scl enable rh-ruby23 'gem install --no-document fluent-plugin-elasticsearch -v 1.4.0' && \
    scl enable rh-ruby23 'gem install --no-document gelf' && \
    scl enable rh-ruby23 'gem cleanup fluentd'

RUN mkdir -p /etc/fluent/plugin \
    && wget https://raw.githubusercontent.com/tech-angels/fluent-plugin-gelf/master/lib/fluent/plugin/out_gelf.rb -O /etc/fluent/plugin/out_gelf.rb

ENV GELF_HOST my_host
ENV GELF_PORT my_port

ADD fluent.conf /etc/fluent/fluent.conf

Развертывание демона Kubernetes:

apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  name: logger
  labels:
    k8s-app: logger
spec:
  template:
    metadata:
      labels:
        name: logger
    spec:
      containers:
      - name: logger
        image: 'My fluent image location'
        volumeMounts:
        - name: varlog
          mountPath: /var/log
        - name: varlibdockercontainers
          mountPath: /var/lib/docker/containers
          readOnly: true
      imagePullSecrets:
        - name: my docker pull key
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      volumes:
      - name: varlog
        hostPath:
          path: /var/log
      - name: varlibdockercontainers
        hostPath:
          path: /var/lib/docker/containers

Журналы на Graylog2:

Я не знаю, почему сообщение кажется поврежденным или зашифрованным.

0 ответов

Другие вопросы по тегам