使用 Prometheus 和 Grafana 监控 Couchbase 同步网关

Couchbase Mobile 2.5版本在Sync Gateway上引入了广泛的统计数据报告功能。统计数据提供了有关 Couchbase Mobile 部署运行状况的重要见解,并且构成任何部署的组成部分。

在这篇文章中,我们将讨论如何使用Prometheus(一个用于监控 Sync Gateway 节点的开源监控和警报平台)和Grafana来可视化统计数据。在即将发布的相关文章中,我们将讨论如何在Couchbase Mobile Kubernetes 集群上使用 Prometheus 设置监控。

背景

同步网关统计报告

Sync Gateway 统计信息以 JSON 格式报告,并可通过 Sync Gateway管理 REST接口通过_expvar端点获取。这些是报告的统计数据的类别。

普罗米修斯

Prometheus是一个开源系统监控和警报平台,由云原生计算基金会托管。它的核心是Prometheus 服务器,负责轮询"Prometheus 目标"的统计信息并将其存储为时间序列数据。Prometheus 目标是静态配置的,或者可以由 Prometheus 发现。

格拉法纳

Grafana是一个开源数据可视化和警报平台。它支持Prometheus作为数据源,可用于构建综合仪表板。

Prometheus Sync Gateway Exporter 简介

为了让Prometheus能够监控Sync Gateway,我们需要一个与Sync Gateway对应的"Prometheus目标"。该目标是Sync Gateway Exporter,本文称为"导出器"。简而言之,Exporter负责将 Sync Gateway 统计数据导出到 Prometheus 指标。

部署架构

将所有这些结合在一起,典型的部署如下 -

同步网关导出器默认情况下,同步网关管理 REST API 仅在本地主机上公开。在生产环境中也强烈建议使用此配置。因此,由于导出器会轮询同步网关管理 API 的统计信息,因此导出器需要与同步网关位于同一主机/节点上。此外,同步网关统计信息是按节点报告的。因此,在两个或多个 Sync Gateway 节点的集群中,每个 Sync Gateway 节点都必须有自己的 Exporter。

Prometheus Server不断轮询 Exporter 的统计信息,而 Exporter 又轮询 Sync Gateway REST 端点。服务器使用rules.yaml中定义的规则将警报推送到警报管理器。

Grafana服务轮询 Prometheus 服务器的统计信息,并将其绘制在可通过 Web 浏览器访问的基于 Web 的仪表板上。

安装

在本文的其余部分中,我们将逐步完成设置 Couchbase Mobile 集群以使用 Exporter、Prometheus Server 和 Grafana 进行监控的步骤。虽然这些说明适用于开发环境,但您可以轻松地针对生产环境进行自定义。

我们将使用Docker,这将使启动和运行变得非常简单。

Sync Gateway Exporter 是开源couchbaselabs项目,可在 GitHub 上获取。它与 Couchbase Sync Gateway 2.5 兼容。为此,虽然我们将努力使其与最新版本的 Sync Gateway 保持同步,但我们无法保证这一点。但好消息是它是开源的,并包含有关如何扩展它以支持其他统计数据的详细说明。

从 GitHub 下载 Exporter 源代码。

1

git clone https://github.com/couchbaselabs/couchbase-sync-gateway-exporter

部署Couchbase移动集群

本节中的所有命令都必须从克隆的 GitHub 存储库的根文件夹执行。

1

cd /path/to/exporter/cloned/repo

如果您已经有一个在 Docker 上运行的 Couchbase Mobile 集群,则可以跳过此步骤并继续执行"部署 Sync Gateway Exporter"步骤。请记住在下面的说明中替换与您现有设置相对应的 Docker 网络名称。

创建 Docker 网络

使用 docker 时,建议在同一个 docker 网络上运行所有组件。

创建一个名为"demo"的 docker 网络。

相关推荐
chaodaibing2 天前
elasticsearch_exporter启动报错 failed to fetch and decode node stats
elasticsearch·prometheus
陌殇殇殇3 天前
Prometheus监控MySQL主从数据库
运维·数据库·mysql·prometheus
福大大架构师每日一题3 天前
19.1 使用k8s的sdk编写一个项目获取pod和node信息
云原生·容器·kubernetes·prometheus
福大大架构师每日一题3 天前
19.3 打镜像部署到k8s中,prometheus配置采集并在grafana看图
kubernetes·grafana·prometheus
福大大架构师每日一题4 天前
21.2 k8s中etcd的tls双向认证原理解析
容器·kubernetes·prometheus·etcd
我的运维人生4 天前
基于Prometheus和Grafana的现代服务器监控体系构建
服务器·运维开发·grafana·prometheus·技术共享
BUG弄潮儿5 天前
k8s 部署 prometheus
容器·kubernetes·prometheus
IT-陈5 天前
Grafana指标汉化
运维·grafana
sj11637394035 天前
grafana全家桶-loki promtail收集k8s容器日志
容器·kubernetes·grafana
BUG弄潮儿6 天前
k8s 部署 grafana
容器·kubernetes·grafana