filebeat 是有官方docker镜像的,不过用docker search filebeat 无法搜索到
在elastic的官网可以找到下载地址 docker pull docker.elastic.co/beats/filebeat:5.5.1
运行时要把需要收集的日志,和filebeat.yml配置文件挂载到容器里面.
filebeat.yml
filebeat:
prospectors:
- input_type: log
paths: # 这里是容器内的path
- /var/log/command.log
json.keys_under_root: true # 使Filebeat解码日志结构化为JSON消息,设置key为输出文档的顶级目录。 如果不需要json格式输出,可以删除这两个json参数
json.overwrite_keys: true # 覆盖其他字段
registry_file: /usr/share/filebeat/data/registry/registry # 这个文件记录日志读取的位置,如果容器重启,可以从记录的位置开始取日志
output:
elasticsearch: # 我这里是输出到elasticsearch,也可以输出到logstash
index: "rocket" # kibana中的索引
hosts: ["192.168.0.2:9200"] # elasticsearch地址
可以在容器中的 /usr/share/filebeat/filebeat.full.yml
找到yml配置文件的完整参数
配置完成之后启动docker
docker run -d --restart=always --name=filebeat
-v /var/log/command.log:/var/log/command.log:ro
-v /data/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml
-v /data/filebeat/registry/:/usr/share/filebeat/data/registry/ docker.elastic.co/beats/filebeat:5.5.1
在kibana添加filebeat.yml中的index字段
成功收到数据