没有权限打开/etc/prometheus/prometheus.yml文件,导致Vagrant和Docker无法成功挂载Prometheus和Grafana的配置文件
环境
-
- Vagrant 2.2.3
-
- CentOS 7
-
- Docker 1.13.1
-
- Prometheus 2.7.2
- Grafana 6.0.0
事件
docker-compose.yml文件中的volumes设置失败
prometheus.yml文件的挂载失败
docker-compose.yml 可以用中文原生方式进行释义为:
容器编排文件
version: '3'
services:
prometheus:
image: prom/prometheus
container_name: prometheus
volumes:
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- 9090:9090
grafana:
image: grafana/grafana
container_name: grafana
ports:
- 3000:3000
env_file:
- ./prometheus/grafana.env
node-exporter:
image: quay.io/prometheus/node-exporter
container_name: node-exporter
ports:
- 9100:9100
volumes:
- /proc:/host/proc
- /sys:/host/sys
- /:/rootfs
错误信息
err="error loading config from \"/etc/prometheus/prometheus.yml\": couldn't load configuration (--config.file=\"/etc/prometheus/prometheus.yml\"): open /etc/prometheus/prometheus.yml: permission denied"
造成的原因
为实现SELinux的访问限制
解决方案
在执行下列命令时(将强制→改为宽容),这只是一个暂时的方法。
sudo setenforce 0
不建议使用
由于SElinux的存在,访问控制等被加强,不推荐进行一些容易受到访问限制的操作。
·永久解决
修改SElinux的配置文件(enforcing更改为permissive)
vi /etc/selinux/config
SELINUX=permissive
・ SELINUX=? ?的模式,请参考下面的信息。启用和禁用 SELINUX(RedHat)
确认
服务器重新启动后,请输入以下命令以确认当前模式。
getenforce
Permissive と出力されれば変更されている
链接
「因为 SELinux 的原因无法运行」消除指南