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

 

 

 

以上:解法可能有点丑,但是是一种思路。得分的思路。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章