elasticsearch 如何将指定路径中的自定义日志发送到Docker内部运行的filebeat

q9yhzks0  于 2023-01-04  发布在  ElasticSearch
关注(0)|答案(1)|浏览(153)

我是filebeat和elk的新手。我尝试使用filebeat将自定义日志直接发送到ElasticSearch。elk堆栈和filebeat都在docker容器中运行。自定义日志位于文件夹home/username/docker/hello.log中。以下是我的filebeat.yml文件:

filebeat.config:
  modules:
    path: ${path.config}/modules.d/*.yml
    reload.enabled: false
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /home/raju/elk/docker/*.log
filebeat.autodiscover:
  providers:
    - type: docker
      hints.enabled: true

processors:
- add_cloud_metadata: ~

output.elasticsearch:
  hosts: ["my_ip:9200"]

下面是我的自定义日志文件:

This is a custom log file 
Sending logs to elastic search

这些是我用来运行filebeat的命令。

docker run -d \
  --name=filebeat \
  --user=root \
  --volume="$(pwd)/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml:ro" \
  --volume="/var/lib/docker/containers:/var/lib/docker/containers:ro" \
  --volume="/var/run/docker.sock:/var/run/docker.sock:ro" \
  docker.elastic.co/beats/filebeat:8.5.3 filebeat -e --strict.perms=false

当我使用上面的命令运行filebeat时,我可以在kibana dashboard上看到docker容器的日志,但是我一直在纠结如何让filebeat从上面指定的位置读取我的自定义日志,并在kibana dashboard上显示日志文件中的行。
任何帮助都将不胜感激。

2jcobegt

2jcobegt1#

Filebeat输入通常可以接受多个日志文件路径来获取它们。在您的情况下,您只需要将日志文件位置添加到日志filebeat输入路径属性中,类似于:

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /home/raju/elk/docker/*.log
    - /home/username/docker/hello.log

相关问题