没有权限打开/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 的原因无法运行」消除指南

广告
将在 10 秒后关闭
bannerAds