我是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上显示日志文件中的行。
任何帮助都将不胜感激。
1条答案
按热度按时间2jcobegt1#
Filebeat输入通常可以接受多个日志文件路径来获取它们。在您的情况下,您只需要将日志文件位置添加到日志filebeat输入路径属性中,类似于: