准备
首先确保已经安装了 docker 和 docker-compose
介绍
首先拿出官方的生态架构图简单介绍一下整个体系架构
Prometheus 是整个监控体系的核心,它中包含了时序数据库和 PromQL 查询语言
Exporter 是监控数据收集节点,由 Prometheus 根据配置主动拉取监控数据,Prometheus 官方提供了一些 exporter 如 node-exporter
Grafana 是一个支持多种数据源配置的数据可视化系统,我们需要安装 Grafana 后将 Prometheus 作为数据源进行连接
除此之外 Short-lived jobs 和 Alertmanager 本文暂不涉及
开始搭建
首先可以创建一个文件夹,用于存放搭建过程中涉及到的所有文件,我这里创建一个 moniter 文件夹,后续均在该文件夹中进行操作
Prometheus
创建prometheus.yml
1 | # 全局配置 |
targets 中可以添加多个 exporter 的地址,我这里只监控 docker 所在的宿主机,docker 中宿主机可通过域名host.docker.internal
进行访问
docker-compose 配置如下:
1 | prometheus: |
volumes 中将宿主机中之前配置的prometheus.yml
文件映射到容器中,再映射宿主机中的 promdata`文件夹到容器中,作为数据保存的文件夹
为了在容器中使用域名host.docker.internal
访问宿主机,需要使用 extra_hosts 参数配置
Grafana
创建空文件grafana.ini
,以后若有配置需求,可修改该文件
docker-compose 配置如下:
1 | grafana: |
Grafana 需要连接Prometheus
故也需要配置宿主机域名
Node-Exporter
- docker-compose 配置如下:
1 | node-exporter: |
启动配置
使用docker-compose up
一键启动所有服务
宿主机打开浏览器进入http://localhost:3000
即可打开 Grafana 前端界面,输入默认用户名密码均为admin
,提示修改密码,我们也可以直接点击SKIP
点击进入数据源配置,添加一条 Prometheus 数据源
点击Save & test
,测试通过后就可以添加监控图表了
添加图表
点击右上角的+号,点击Import dashboard
,可以导入其他人制出的成品图表,导入方式可以通过 JSON 文件导入,也可以通过 ID 编号导入
这里我们导入图表
Node Exporter Full | Grafana Labs
可以直接点击Copy ID to clipboard
复制 ID,回到导入界面点击Load
即可
之后如果一切正常,应该就能够看到监控面板