docker部署Prometheus与Grafana
prometheus部署
建立文件
mkdir -p /ops/prometheus-data && cd /ops/prometheus-data
vi /ops/prometheus-data/prometheus.yml
添加如下内容后保存
global:
scrape_interval: 15s
external_labels:
monitor: 'codelab-monitor'
scrape_configs:
- job_name: 'prometheus'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']
因为存储文件夹需要进行文件的创建读写,需要授权不同的权限,新版的Prometheus Docker Image中,将默认user设置为nobody,
需要预先取出nobody的UID与GID,然后在本地预先授权文件夹权限。
# 取得nobody的uid
docker run --rm quay.io/prometheus/busybox cat /etc/passwd
···
nobody:x:65534:65534:nobody:/home:/bin/false
# 配置文件夹权限
chown 65534:65534 -R /ops/prometheus-data
启动prometheus容器
docker run --name prometheus -d \
-p 9090:9090 \
--restart=always \
-v /ops/prometheus-data:/prometheus-data \
quay.io/prometheus/prometheus \
--config.file=/prometheus-data/prometheus.yml \
--storage.tsdb.path=/prometheus-data/ \
--storage.tsdb.retention=168h \
--web.enable-lifecycle
grafana部署
创建文件夹
mkdir -p /ops/grafana/data
mkdir -p /ops/grafana/conf
授予文件夹权限
chown 472:472 -R /ops/grafana
启动命令
docker run -d \
-p 3000:3000 \
--name=grafana \
-v /ops/grafana/data:/var/lib/grafana \
--restart=always \
grafana/grafana