grafana模板_基于 Prometheus、Grafana 的 EMQ X 物联网 MQTT 服务器可视化运维监控

本文介绍了如何利用 Prometheus 和 Grafana 对 EMQ X MQTT 服务器进行可视化运维监控。通过 Docker 启动 node-exporter、pushgateway、Prometheus、EMQ X statsd 插件和 Grafana,配置数据源和导入模板,实现服务器与 EMQ X 的整体监控。Grafana 提供了丰富的图表展示,帮助用户了解连接、消息、主题、Erlang VM 的历史统计信息。
摘要由CSDN通过智能技术生成

Prometheus (https://prometheus.io/) 是由 SoundCloud 开源监控告警解决方案,支持多维数据模型 (https://prometheus.io/docs/concepts/data_model/)(时序由 metric 名字和 k/v 的 labels 构成),具备灵活的查询语句(PromQL)(https://prometheus.io/docs/querying/basics/) ,支持多种数据采集 exporters (https://prometheus.io/docs/instrumenting/exporters/);支持告警管理,基于指标实现告警监控;支持多种统计数据模型,图形化展示友好,图形展示除了内置的浏览器,也支持 Grafana 集成。

EMQ X 提供 emqx_statsd (https://github.com/emqx/emqx-statsd) 插件,用于将 EMQ X 运行指标及 Erlang 虚拟机状态数据输出到第三方的监控系统如 Prometheus 中。通过 Prometheus 自带的 node-exporter 还可以采集 Linux 服务器相关指标,实现服务器 + EMQ X 整体运维监控。

本文提供了 Prometheus + Grafana 整套 EMQ X 运维监控方案搭建过程。

安装与准备

  Docker 镜像下载

# Docker 镜像包下载
docker pull prom/node-exporter
docker pull prom/prometheus
docker pull prom/pushgateway

  启动 node-exporter

可选,用于收集服务器指标如 CPU、内存、网络等,如果使用 Docker 安装则需要映射目标服务器响应的状态文件:

docker run -d -p 9100:9100 \
  -v "/proc:/host/proc:ro" \
  -v "/sys:/host/sys:ro" \
  -v "/:/rootfs:ro" \
  --net="host" \
  prom/node-exporter

  启动 pushgateway

pushgateway 用于接收 EMQ X 指标推送数据,需要保证 EMQ X 能够访问

docker run -d -p 9091:9091 prom/pushgateway

  启动 Prometheus

指定配置文件与监听端口以启动 Prometheus:

# 指定配置文件并启动
docker run -p 9090:9090 \
-v $PWD/prometheus.yaml:/etc/prometheus/prometheus.yaml \
-d prom/prometheus \
--config.file=/etc/prometheus/prometheus.yaml

Prometheus 配置文件 prometheus.yaml 样例如下,详细含义请参考 Prometheus 文档:

# prometheus.yaml
global:
  scrape_interval:     10s # 默认抓取时间
  evaluation_interval: 10s # 每10秒评估一次rules
# 在本机上每一条时间序列上都会默认产生的,主要可以用于联合查询、远程存储、Alertmanager时使用。
  external_labels:
      monitor: 'emqx-monitor'
# 加载规则,依据 evaluation_interval 来定期评估rule
rule_files:
# - "first.rules"
# - "second.rules"
  - "/etc/prometheus/rules/*.rules"
# 数据拉取配置
scrape_configs:
# 表示在这个配置内的时间序例,每一条都会自动添加上这个{job_name:"prometheus"}的标签
  - job_name: 'prometheus'
    scrape_interval: 5s
    static_configs:
      - targets: ['127.0.0.1:9090']
# 服务器物理机监控
  - job_name: 'node-exporter'
    scrape_interval: 5s
    static_configs:
# node-exporter 根据实际情况填写
      - targets: ['192.168.6.11:9100']
        labels:
          instance: wivwiv-local
# EMQ X Pushgateway 监控
  - job_name: 'pushgateway'
    scrape_interval: 5s
    honor_labels: true
    static_configs:
# pushgateway 根据实际情况填写
      - targets: ['192.168.6.11:9091']

  启动 EMQ X statsd 插件

打开 etc/emqx_statsd.conf,确认以下配置:

## pushgateway 地址
statsd.push.gateway.server = http://127.0.0.1:9091
## 数据采集/推送周期(毫秒)
statsd.interval = 15000

启动插件:

./bin/emqx_ctl load plugins emqx_statsd

效果查看

通过 docker ps -a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值