我是新来的filbeat和elk。我试图直接使用filebeat发送自定义日志到弹性搜索。elk stack和filebeat都在docker容器中运行。自定义日志在home/username/docker/hello.log文件夹中。这是我的档案。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仪表板上看到docker容器的日志。但是我正在努力如何使filebeat从上面指定的位置读取我的自定义日志,并向我展示kibana仪表板上日志文件内的行。
任何帮助都将不胜感激。
Filebeat输入通常可以接受多个日志文件路径来获取它们。在您的示例中,您只需要将日志文件位置添加到日志文件输入路径属性中,类似于:
filebeat.inputs:
- type: log
enabled: true
paths:
- /home/raju/elk/docker/*.log
- /home/username/docker/hello.log