前置条件

创建一个网络,名叫tool。docker network create --subnet 170.70.0.0/24 tool

已经安装好prometheus和grafana。

安装

docker-compose 启动 nats

version: "3.5"
services:
  nats:
    image: nats:2.10.20-linux
    container_name: nats
    restart: always
    ports:
      - "4222:4222"
#      - "8222:8222"
# https://docs.nats.io/running-a-nats-service/introduction/flags
    command: "--addr 0.0.0.0 --port 4222 --auth YOUR_TOKEN --http_port 8222 -js"
    environment:
      - TZ=Asia/Shanghai
      - LANG=en_US.utf8
    networks:
      tool:

networks:
  tool:
    external: true

docker-compose 启动 prometheus-nats-exporter

version: "3.5"
services:
  prometheus-nats-exporter:
    image: natsio/prometheus-nats-exporter:0.17.3
    hostname: prometheus-nats-exporter
    container_name: prometheus-nats-exporter
    command:  [
      "-varz",
      "-connz",
      "-subz",
      "-routez",
      "-jsz=all",
      "-port=7777",
      "http://nats:8222" # in the same network, so we use docker name
    ]
    ports:
      - "7777:7777"
    restart: always
    networks:
      tool:
    environment:
      - TZ=Asia/Shanghai
      - LANG=en_US.utf8

networks:
  tool:
    external: true

在 prometheus 的配置文件中添加

scrape_configs:
  - job_name: 'nats'
    scrape_interval: 15s  # 抓取频率,默认15秒即可
    static_configs:
      - targets: ['YOUR_IP:7777']  # Exporter的地址和端口

操作 grafana

导入dashboard,可使用模板id:2279 14725

完。

作者:张三  创建时间:2025-10-31 15:24
最后编辑:张三  更新时间:2025-10-31 15:36