使用 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 网络。

相关推荐
-KamMinG3 小时前
Centos7.9安装openldap+phpldapadmin+grafana配置LDAP登录最详细步骤 亲测100%能行
运维·grafana
Mitch31121 小时前
【漏洞复现】CVE-2021-45788 SQL Injection
sql·web安全·docker·prometheus·metersphere
福大大架构师每日一题2 天前
37.1 prometheus管理接口源码讲解
ios·iphone·prometheus
Cairry.3 天前
WatchAlert - 开源多数据源告警引擎
云原生·开源·prometheus
Mitch3113 天前
【漏洞复现】CVE-2023-37461 Arbitrary File Writing
web安全·网络安全·prometheus·metersphere·漏洞复现
福大大架构师每日一题5 天前
36.3 grafana-dashboard看图分析
linux·网络·grafana·prometheus
福大大架构师每日一题6 天前
36.2 内置的k8s采集任务分析
算法·贪心算法·kubernetes·prometheus
点燃银河尽头的篝火(●'◡'●)6 天前
【环境搭建】Grafana本地部署搭建(windows系统)
windows·grafana·环境搭建
Algorithm15766 天前
linux/ubuntu安装Prometheus&Grafana
linux·ubuntu·prometheus
福大大架构师每日一题10 天前
35.4 thanos-query 源码阅读
java·spring·ios·prometheus