监控告警工具
更新时间:2024年3月27日
简单介绍
- Exporter 主机监控工具
- cAdvisor 容器监控工具
- Prometheus 时序数据库,用来存储和查询监控数据
- Grafana 仪表盘,显示数据
简单理解:Exporter 和 cAdvisor 监控目标(主机,容器等)并生成监控数据(cpu 使用率,内存使用率等);Prometheus 获取 Exporter 和 cAdvisor 产生的监控数据,并且作为时序数据库,它存储监控数据;Grafana 从 prometheus 时序数据库中读取监控数据 并 展示到前端页面。
图 1:组件结构
在实际使用中,根据需求进行组合,例如:
需求 1:监控主机数据,通过代码获取监控数据
- 使用 prometheus + exporter
需求 2:可视化容器资源占用
- 使用 grafana + prometheus + cAvisor
备注:还有很多优秀的监控告警工具,本文只列出作者常用的几个
部署配置步骤
Prometheus
- 拉取镜像
docker pull prom/prometheus
prometheus 的默认配置文件 prometheus.yml
- 配置文件
在这里假设我们保存的路径为 /opt/prometheus/prometheus.yml
,内容如下
global:
scrape_interval: 15s # 每15s采集一次数据
evaluation_interval: 15s # 每15s做一次告警检测
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
- 启动容器
docker run --name prometheus -d -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
-
访问其Web管理页面
Exporter
-
下载 node-exporter
根据系统信息选择响应的node-export,比如:node_exporter-1.7.0.linux-amd64.tar.gz
下载连接为:github.com/prometheus/…
-
解压并启动
tar xvfz node_exporter-1.7.0.linux-amd64.tar.gz
cd node_exporter-1.7.0.linux-amd64
# 后台运行
./node_exporter &
-
访问 web 页面查看内容
-
配置并重启 prometheus
/opt/prometheus/prometheus.yml
添加内容
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
# 收集主机的监控数据
- job_name: 'myLinux'
static_configs:
- targets: ['localhost:9100']
备注:可以自行搜索 node-export 开机自启动教程
Grafana
- 拉取镜像 并 启动
docker pull grafana/grafana
docker run --name grafana -d -p 3000:3000 grafana/grafana
- 配置 grafana
-
通过 http://localhost:3000 访问配置页面, 默认的账户:admin 密码: admin; 登录之后需要修改密码
- 添加监控数据源:Connections,搜索 prometheus 并 点击;
再点击 add new data source
在配置页面只需要输入 promethues 的网址 URL,例如 http://127.0.0.1:9090
下滑点击 save & test
-
查找仪表盘模板
可以设置搜索选项,例如:data source 设置为 prometheus
选择需要的模板,例如:node exporter full
点击之后,会看到下面的界面,复制 ID 信息
- 添加仪表盘:
点击左侧的 dashboards new import
输入模板ID,并点击 load
选择 prometheus import
最终成功
cAdvisor
- 拉取镜像 并 启动容器
docker pull google/cadvisor
docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:ro --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --volume=/dev/disk/:/dev/disk:ro --publish=8080:8080 --detach=true --name=cadvisor --privileged --device=/dev/kmsg google/cadvisor
-
访问页面
-
在 promethus 中添加配置并重启
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
# 监控主机
- job_name: 'myLinux'
static_configs:
- targets: ['localhost:9100']
# 监控 容器
- job_name: 'cAdvisor'
static_configs:
- targets: ['localhost:8080']
-
通过配置 Grafana 进行可视化
比如 193 模板