Docker 部署 Prometheus+Grafana 监控系统快速指南
文章目录
-
- [Docker 部署 Prometheus+Grafana 监控系统快速指南](#Docker 部署 Prometheus+Grafana 监控系统快速指南)
-
- [一 创建网络](#一 创建网络)
- [二 监控部署](#二 监控部署)
- [三 配置 prometheus.yml](#三 配置 prometheus.yml)
- [四 测试部署是否成功](#四 测试部署是否成功)
- [五 Grafana表盘下载](#五 Grafana表盘下载)
本文详细介绍了通过 Docker 和 Docker Compose 快速部署 Prometheus 和 Grafana 监控系统的流程。使用 Docker 将 node-exporter、Prometheus 和 Grafana 集成在同一网络中,实现对主机和服务的高效性能监控。文章还包括 prometheus.yml 的配置说明,确保 Prometheus 能正确抓取监控数据,并通过修改宿主机目录权限解决常见的权限问题。最后,文章提供了 Grafana 的表盘模版下载,帮助用户快速创建美观的数据可视化界面。适合希望快速上手监控系统的开发者。
预备课:
一 创建网络
将应用监控放在统一个网络里
shell
# 创建网络
docker network create --driver bridge monitornet
二 监控部署
部署在一台机器的同一网段,yml 内容见 docker-compose.monitor.yml
yaml
version: '3'
services:
node-exporter: # node-exporter采集主机监控数据
image: prom/node-exporter:v1.6.1
container_name: "node-exporter0"
restart: always
networks:
- monitornet
ports:
- "9100:9100"
prometheus:
image: prom/prometheus:v2.47.2
container_name: "prometheus0"
restart: always
networks:
- monitornet
ports:
- "9090:9090"
volumes:
- "./prometheus.yml:/etc/prometheus/prometheus.yml"
- "./prometheus_data:/prometheus"
grafana:
image: grafana/grafana:10.1.5
container_name: "grafana0"
restart: always
networks:
- monitornet
ports:
- "3000:3000"
volumes:
- "./grafana_data:/var/lib/grafana"
networks:
monitornet:
external: true
启动之前修改宿主机 grafana_data
和 prometheus_data
的目录权限,否则启动报错无权限
lua
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
修改权限:
shell
# 修改宿主机目录权限
sudo chmod 777 grafana_data/ prometheus_data/
三 配置 prometheus.yml
prometheus.yml 的配置
yml
global:
scrape_interval: 15s # 默认抓取周期
external_labels:
monitor: 'codelab-monitor'
scrape_configs:
- job_name: node-exporter #服务的名称
scrape_interval: 5s
metrics_path: /metrics #获取指标的url
static_configs:
# 这个为监听指定服务服务的ip和port,需要修改为自己的ip,貌似云服务必须用公网ip
- targets: ['node-exporter:9100']
labels:
instance: localhost
- job_name: prometheus
static_configs:
- targets: [ 'prometheus:9090' ]
labels:
instance: prometheus
四 测试部署是否成功
lua
# node-exporter 部署成功
http://192.168.0.1:9100/metrics
# prometheus 部署成功
http://192.168.0.1:9090/targets
# grafana 地址 初始密码 admin/admin
http://192.168.0.1:3000
Grafana 访问地址: http://your-grafana:3000
,初始账号密码 admin/admin
。
五 Grafana表盘下载
下载一个漂亮的 Grafana 表盘
lua
# node-exporter 表盘模版下载 11074_rev9.json
https://grafana.com/grafana/dashboards/11074