prometheus-stack
文章目录
目前 Prometheus
监控体系越来越流行,这里也记录一下相关用法。内容除了说明下基本的 Prometheus + Grafana 安装之外,重点介绍下如何监控主机
和 Docker 容器
。主要参考官网
Prometheus 和 Grafana 的安装
基本安装不多说,网络文档很多。这里简单记录。
- 创建 Prometheus 配置文件
# vim /etc/prometheus/prometheus.yml |
- 启动 Prometheus
# Docker 启动的 Prometheus 需要特别注意网络问题,配置里就不能直接用 localhost:port 的方式配置 scrap 了。 |
- 启动 Grafana
sudo docker run \ |
常见问题:
- Prometheus 配置修改之后需要重启生效
- 对于 Docker 的,可以直接 Docker stop + Docker start
- 对于直接安装的,可以使用命令
kill -HUP pid
,发送 Reload 信号给进程 - 安装时开启了
--web.enable-lifecycle
的,也可以直接通过curl -X POST http://localhost:9090/-/reload
请求触发 Reload
- Grafana 默认账号密码是 admin/admin
- Grafana 遇到 “origin not allowed” 错误,可以修改下 Nginx 配置增加
proxy_set_header Host example.com;
跳过同源限制。 - Grafana 配置可以去网上找
通过 node_exporter 监控主机
这里使用 Prometheus 官方团队提供的 node_exporter 来实现。主流系统都支持。
node_exporter
也有 Docker 版,但是监视内容不完整,需要设置很多特殊参数才行。官方建议直接使用二进制文件安装到系统上。
安装 node_exporter
主要参考官网文档:https://prometheus.io/docs/guides/node-exporter/
- 从官网下载二进制文件
VERSION=1.3.1 |
- 创建
systemd
服务
vim /etc/systemd/system/node_exporter.service |
- 启动 node_exporter
systemctl daemon-reload |
配置 Prometheus Scrap
编辑 prometheus.yml 文件,添加内容
scrape_configs: |
通过 cadvisor 监控 Docker Container
Docker 本身有提供 Metrics 功能,但是只能监控 Docker 本身的状态,无法监控运行的 Container 的状态。
需要借助 Google 开源的 cadvisor 来实现。
启动非常简单 github 上有完整命令
- 版本改成最新的就可以直接启动了。
- 注意端口有没有冲突,有的话修改下冒号左边的端口号为其他端口号。
VERSION=v0.39.3 # use the latest release version from https://github.com/google/cadvisor/releases |
配置 Prometheus Scrap
scrape_configs: |
不错的 Grafana Dashboard
- Node Exporter Full: https://grafana.com/grafana/dashboards/12486
- cadvisor(Docker): https://grafana.com/grafana/dashboards/14282
- Prometheus: https://grafana.com/grafana/dashboards/3662