Невозможно собрать все журналы контейнеров / контейнеров kubernetes с помощью fluentd /asticsearch - PullRequest
0 голосов
/ 03 июля 2018

Я новичок в стеке fluentd /asticsearch и пытаюсь развернуть его в kubernetes. Несмотря на то, что мне удалось это сделать, у меня возникла проблема, заключающаяся в том, что не все журналы контейнеров / контейнеров отображаются наasticsearch (я использую Kibana для визуализации данных). Другими словами, я могу видеть журналы из «стандартных» модулей kubernetes, такие как журналы связанных с weave-net иasticsearch (es-data, es-master и т. Д.), Но не из «пользовательских» модулей, которые я ' я пытаюсь развернуть.

В качестве простого теста я развернул redis в том же пространстве имен kube, где находится fluentd /asticsearch, а служба / развертывание redis выглядит следующим образом:

---
apiVersion: v1
kind: Service
metadata:
  name: redis-master
  labels:
    app: redis
    role: master
    tier: backend
spec:
  ports:
  - port: 6379
    targetPort: 6379
  selector:
    app: redis
    role: master
    tier: backend
---
apiVersion: apps/v1 #  for k8s versions before 1.9.0 use apps/v1beta2  and before 1.8.0 use extensions/v1beta1
kind: Deployment
metadata:
  name: redis-master
spec:
  selector:
    matchLabels:
      app: redis
      role: master
      tier: backend
  replicas: 1
  template:
    metadata:
      labels:
        app: redis
        role: master
        tier: backend
    spec:
      containers:
      - name: master
        image: k8s.gcr.io/redis:e2e  # or just image: redis
        resources:
          requests:
            cpu: 100m
            memory: 100Mi
        ports:
        - containerPort: 6379

Когда я проверяю журналы от fluentd daemonpods, я вижу следующее:

2018-07-03 11:17:05 +0000 [info]: following tail of /var/log/containers/redis-master-585798d8ff-b5p5g_default_master-4c934d19a8e2b2d6143b662425fd8fc238df98433d1c0c32bf328c281ef593ad.log

, который, если я прав, должен дать мне информацию, что fluentd собирает журналы контейнера redis. Однако я не вижу документов, связанных с Redis, которые хранятся вasticsearch.

Вот так выглядит часть конфигурации для fluentd (kubernetes.conf):

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

и fluent.conf:

<match **>
   @type elasticsearch
   @id out_es
   log_level info
   include_tag_key true
   host "#{ENV['FLUENT_ELASTICSEARCH_HOST']}"
   port "#{ENV['FLUENT_ELASTICSEARCH_PORT']}"
   scheme "#{ENV['FLUENT_ELASTICSEARCH_SCHEME'] || 'http'}"
   ssl_verify "#{ENV['FLUENT_ELASTICSEARCH_SSL_VERIFY'] || 'true'}"
   user "#{ENV['FLUENT_ELASTICSEARCH_USER']}"
   password "#{ENV['FLUENT_ELASTICSEARCH_PASSWORD']}"
   reload_connections "#{ENV['FLUENT_ELASTICSEARCH_RELOAD_CONNECTIONS'] || 'true'}"
   logstash_prefix "#{ENV['FLUENT_ELASTICSEARCH_LOGSTASH_PREFIX'] || 'logstash'}"
   logstash_format true
   buffer_chunk_limit 2M
   buffer_queue_limit 32
   flush_interval 5s
   max_retry_wait 30
   disable_retry_limit
   num_threads 8
</match>

Любой намек был бы очень полезен. Заранее спасибо.

1 Ответ

0 голосов
/ 03 июля 2018

Я использую беглый бит для той же цели, и я столкнулся с точно такой же проблемой несколько дней назад. Fluent - это облегченная версия fluentd, и то, что сработало для меня, может сработать и для вас.

Что было не так с моим беглым битом, так это входная конфигурация. Для хвостовых плагинов, которые встраиваются в большие файлы журнала, была некоторая проблема с ротацией журнала. Поэтому я снизил значение refresh_interval до 5 секунд (период времени, в течение которого обновляется список просматриваемых файлов). Затем я уменьшил значение mem_buf_limit примерно до 5 МБ (общий размер текучего бита журнала записывается в память перед тем, как сбросить его в выходной плагин).

Благодаря этим изменениям я смог получить больше журналов, которые раньше не собирались по богам понятной причине.

Я спросил это как проблему. Обновлю свой ответ, если узнаю причину.

Надеюсь, это поможет в любом случае. В основном я предлагаю вам настроить ваши входные конфигурации, а затем увидеть изменения.

...