基于Telegraf+Influxdb+Prometheus+Grafana的服务器看板部署概览

文章目录

展开

0. 方案比较

由于被监控唯一端口暴露,所以需要基于 push 的方案。

0.1 Prometheus

Prometheus 中有一个 Pushgateway 组件,大致流程为被监控节点实现脚本将数据推送到 Pushgateway,Prometheus 从 Pushgateway pull 数据:

img

优点

  1. 开源框架成熟;
  2. PromQL 支持复杂的查询和分析。

缺点

  1. 多个节点汇总到 Pushgateway,如果它挂了就全完了;
  2. Prometheus 拉取状态只针对 Pushgateway,无法对所有目标有效;
  3. Pushgateway 会持久化数据,如果监控下线,Prometheus 会拉取到旧的数据,因此需要手动清理 Pushgateway 不要的数据。

0.2 InfluxDB+Telegraf

在被监控节点上设置 Telegraf 代理,将数据 push 到 InfluxDB 的 API。

优点

  1. Telegraf 轻量级,易于部署;

缺点

  1. 与 Pushgateway 相比,Telegraf 可能会有轻微延迟。
  2. 可能不如 Prometheus 灵活度高。
  3. Influxdb 查询效率低。

3. Telegraf+Influxdb+Prometheus

使用 Telegraf 获取并推送数据到 Prometheus 。使用 Influxdb 做可持久化存储。

优点

  1. 继承了前两者的优点。
  2. 使用 Prometheus 查询,效率高。

1. 监控节点部署 InfluxDB

  1. 新建文件夹 /data/influxdb
  2. 执行 docker run -d --name=influxdb -p 8086:8086 -v /data/influxdb:/root/.influxdb2 influxdb:1.8-alpine
  3. 部署的是1.8 版本,不用可视化。
  4. docker exec -it influxdb /bin/bash 进入容器, influx 启动 Influxdb 命令行交互。
  5. CREATE DATABASE mydb; CREATE DATABASE telegraf; 创建数据库

2. 监控节点部署 Prometheus

  1. 创建 /data/prometheus/prometheus.yml

  2. 执行 docker run -d -p 9090:9090 -v /data/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml --name=prometheus prom/prometheus:v2.47.2 --enable-feature=remote-write-receiver --config.file=/etc/prometheus/prometheus.yml --query.max-concurrency=10 --storage.tsdb.retention.time=6d

    (–web.enable-remote-write-receiver/–enable-feature=remote-write-receiver)

3. 被监控节点部署 telegraf

  1. wget https://dl.influxdata.com/telegraf/releases/telegraf-1.28.3_linux_amd64.tar.gz

  2. tar xf telegraf-1.28.3_linux_amd64.tar.gz

  3. vim ~/.bashrc 添加 export TELEGRAF_PATH=/data/telegraf/telegraf-1.28.3/usr/binsource ~/.bashrc

  4. $TELEGRAF_PATH/telegraf version 查看版本
  5. 编写 telegraf.conf 文件,样例
  6. /data/telegraf/telegraf-1.28.3/usr/bin/telegraf --config /data/telegraf/telegraf.conf 启动服务

4. 监控节点部署 Grafana

  1. 建立存储目录 mkdir /data/grafana & chmod 777 -R /data/grafana
  2. 执行 docker run -d -p 3000:3000 --name=grafana -v /data/grafana:/var/lib/grafana grafana/grafana:main

  3. 进入登录界面,输入初始密码 admin/admin 登录。

  4. 建立 Grafana 和 Prometheus 的连接
  5. 建立看板

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注