Exiting: error loading config file: open filebeat.yml: permission denied
使用docker 运行filebeat 出现的问题。
这个是因为你宿主机的目录权限与容器内部的filebeat文件权限不一致导致的。
docker logs filebeat 看一下 就是标题的错误。
不防先进去容器看一下(不映射,先跑起来)
docker run --name filebeat --rm -d elastic/filebeat:7.5.1
docker exec -it filebeat bash
可以看到filebeat.yml的权限是 user:root group:filebeat
然后查一下容器里面的 /etc/passwd 看一下对应的UID是多少。 root 是 0 filebeat 是 1000
所以你映射目录的时候,宿主机的filebeat.yml也要是 0:1000
退出容器,在宿主机执行 cat /etc/passwd 看一下 1000是谁 没有就创建一个、 在我的机器上是postgres
所以只要filebeat.yml 是 0:1000 的UID 就行了。(因为docker 映射会按照UID来给权限)
chown root:postgres filebeat.yml
docker run --name filebeat -d -v /home/zy/docker/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml elastic/filebeat:7.5.1
OK(除了这个filebeat.yml 其他文件我没有映射。)
非docker
将这个参数设置成false就可以了
filebeat –e –strict.perms=false
以上:解法可能有点丑,但是是一种思路。得分的思路。