Добавить новое поле в filebeat - PullRequest
0 голосов
/ 13 апреля 2020

Я отправляю логи Kubernetes в Elasticsearch с помощью filebeat. Я создаю пользовательский индекс на основе имени селектора. Это работает нормально. Но я хочу проверить наличие определенной строки в журналах. Если существует ключевое слово «Ошибка», то я хочу создать новое поле (type) в документе и установить значение "Error".

  filebeat.yml: |-

    logging.level: debug

    # To enable hints based autodiscover, remove `filebeat.inputs` configuration and uncomment this:
    filebeat.autodiscover:
      providers:
        - type: kubernetes
          node: ${NODE_NAME}
          hints.enabled: true
          hints.default_config:
            type: container
            paths:
              - /var/log/containers/*${data.kubernetes.container.id}.log
          multiline.pattern: '^\['
          multiline.negate: true
          multiline.match: after

    processors:
      - add_cloud_metadata:
      - add_host_metadata:
    cloud.id: ${ELASTIC_CLOUD_ID}
    cloud.auth: ${ELASTIC_CLOUD_AUTH}
    output.elasticsearch:
      hosts: ['${ELASTICSEARCH_HOST:ES_HOST}:${ELASTICSEARCH_PORT:9200}']
      indices:
        - index: "%{[kubernetes.pod.labels.app]}-filebeat-%{[agent.version]}-%{+yyy.MM.dd}"
          equals:
            #status: OK
          has_fields: ['stream']
      number_of_shards: 1
      scan_frequency: 1s

    setup.template:
      name: 'access-logging'
      pattern: '%{[kubernetes.pod.labels.app]}-*'
      enabled: false

Новое поле, type должно иметь значение Error, если строка соответствует. Иначе это будет None.

...