Я новичок в стеке 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>
Любой намек был бы очень полезен.
Заранее спасибо.