elasticsearch—从filebeat容器的主机更新时,重复发送到elastic search的日志

deikduxw  于 2021-06-10  发布在  ElasticSearch
关注(0)|答案(0)|浏览(226)

我正在使用以下命令运行filebeat容器:

docker run -d \
  --name=filebeat \
  --user=root \
  --volume="$(pwd)/filebeat-file.yml:/usr/share/filebeat/filebeat.yml:ro" \
  --volume="$(pwd)/apps/logs:/usr/share/apps/logs:ro" \
  docker.elastic.co/beats/filebeat:7.9.2 filebeat -e -strict.perms=false \
  -E output.elasticsearch.hosts=["elasticsearch:9200"]

filebeat-file.yaml文件:

filebeat.inputs:
 - type: log
   enabled: true
   paths:
        - /usr/share/apps/logs/*.log
output.elasticsearch:
    hosts: '{ELASTICSEARCH_HOSTS: HOST:9200}'

然后,我在${pwd}/apps/logs/app.log中复制了一个示例文件,它有一个基本的日志行:

I am line 1.

现在每当我从主机向这个文件添加新行时。在ElasticSearch中,如果我在这个文件中添加另一行,我会得到额外的点击,这些日志已经被filebeat发送到es,例如:

I am line 1.
I am line 2.

然后我在es索引中总共得到3个点击。1表示前一状态,即第1行,2表示当前状态,即第1行和第2行。
然而,我应该在es中理想地只得到2个点击,一个是第1行,另一个是第2行。
我观察到的另一个行为是,如果我以如下方式进入docker容器:

sudo docker exec -it contId bash
cd /usr/share/app/logs
vi app.log

现在,如果我从容器内部进行编辑,它工作得非常好,即当我添加第2行时。我只得到了两支安打。
有人能帮我理解这里发生了什么事吗?在主机上修改日志文件与在容器中修改日志文件的方式不同,这会导致不同的行为。
谢谢

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题