Edited at

Vagrant + Docker + Prometheus + Grafana 設定ファイルのマウント失敗について(open /etc/prometheus/prometheus.yml: permission denied")


環境


  • 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のアクセス制限のため


解決方法

一時的手段

下記コマンドを叩く(enforcing→permissiveに変更)

sudo setenforce 0 

恒久解決

SElinuxの設定ファイルの書き換え(enforcing→permissiveに変更)

vi /etc/selinux/config

SELINUX=permissive

SELINUX=? ?の箇所のモードについては下記参照

SELINUX の有効化および無効化(RedHat)


確認

サーバ再起動後、下記コマンドを叩いて現在のモードを確認

getenforce

Permissive と出力されれば変更されている


Link

「SELinuxのせいで動かない」撲滅ガイド