我正在使用EFK堆栈来构建监视系统。根据{{3}},我可以添加自定义标签来丰富容器日志的元数据。
这是我的docker-compose文件:
version: "3.3"
services:
watcher:
image: image_name
deploy:
replicas: 1
placement:
constraints: [node.role == manager]
logging:
driver: fluentd
options:
tag: "docker/{{.ImageName}}"
networks:
- elastic
这是我的Fluent位配置:
[SERVICE]
Flush 5
Daemon Off
Log_Level debug
Parsers_File /conf/parsers.conf
[INPUT]
Name Forward
Port 24224
[OUTPUT]
Name es
Match *
Host elasticsearch
Port 9200
Index fluent_bit
Type json
如您所见,我已经将tag: "docker/{{.ImageName}}"
添加到docker-compose文件中。并且容器也重新启动。我在Kibana中获得的日志应包含这样的标签。但是这是我得到的日志:
@timestamp:Mar 18, 2020 @ 15:35:23.000 container_id:06dde90cb998c78962e321c8396c1f992119450a6868eecb7fa14c5b348670b1 container_name:/test_container source:stderr log:2020-03-18 14:35:23 - INFO - module: __main__ - action: Watcher is started - Watcher Start _id:RmcS7nABi-qh6YwdCII3 _type:json _index:fluent_bit _score: -
元数据中仍然只有container name
和container id
,仅此而已。有人可以告诉我这是什么原因吗?
答案 0 :(得分:1)
我刚刚发现问题出在哪里。
在日志驱动程序中添加tag
选项时,该选项不会自动包含在流利的位/流利的输出中。在输出部分中,Include_tag_key
也应设置为true
。
[OUTPUT]
Name es
Match *
Host elasticsearch
Port 9200
Index fluent_bit
Type json
Include_Tag_Key true