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

 

 

 

以上:解法可能有點醜,但是是一種思路。得分的思路。

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