使用 Prometheus 监控 Signal 服务器各项指标

监控方案

Signal-Server 里默认的指标采集使用了 StatsD 协议,可以推送到诸如 Telegraf 或 statsd 等,官方是直接使用了 DogStatsD 提供的云服务;

但时下更流行的监控/告警方案显然是基于 Prometheus/Grafana,于是就有了几种可行的方案:

  1. 修改代码,将原 StatsD 指标输出改为 Prometheus 指标输出,引入 Prometheus 依赖,简单修改服务端代码即可;
  2. 部署 telegraf 并配置使用 Prometheus 为其输出/后端存储引擎,此方案优点是无须修改服务器代码;

为尽量减少侵入性,某在此处使用方案2尝试。

配置 StatsD/Telegraf

首先拉取对应容器

# 国内服务器 找个镜像 如果你不需要可以去除 docker.1ms.run
docker pull docker.1ms.run/telegraf:1.34.2
docker tag docker.1ms.run/telegraf:1.34.2 telegraf:1.34.2

配置一个 telegraf,建一个目录 曰 telegraf,再建一文件,named it statsd.conf 如下:

[agent]
  interval = "3s"
  flush_interval = "5s"

[[inputs.statsd]]
  service_address = ":8125"
  metric_separator = "."
  datadog_extensions = true

[[outputs.prometheus_client]]
  listen = ":9273"

建一个运行 telegraf 的docker compose 组件:

services:
  telegraf:
    image: telegraf:1.34.2
    container_name: telegraf
    restart: always
    volumes:
      - ./statsd.conf:/etc/telegraf/telegraf.conf:ro
    expose:
      - 8125
      - 9273
    networks:
      - signal

networks:
  signal:
    external: true

运行

docker compose -f telegraf.yml up -d

配置 Prometheus/Grafana

prometheus

grafana

img

img

大屏配置

先找个指标:org_whispersystems_textsecuregcm_push_MessageSender_sendMessage 先看看其指标类型与取值:

消息的大致发送数量

效果图示:

未完待续...

posted @ 2025-04-27 21:53  pfoxh  阅读(45)  评论(0)    收藏  举报