ITPub博客

首页 > 数据库 > 国内数据库 > 配置 GreptimeDB 作为夜莺监控数据源,无缝替代 Prometheus/VictoriaMetrics

配置 GreptimeDB 作为夜莺监控数据源,无缝替代 Prometheus/VictoriaMetrics

原创 国内数据库 作者:Greptime格睿科技 时间:2024-10-31 11:48:52 0 删除 编辑

夜莺监控 是优秀的国产开源监控软件,笔者在上一家创业公司也曾经使用过,整体体验非常优秀。夜莺监控集合了 Prometheus 和 Grafana 的优点,你可以在 UI 上管理和配置告警策略,也可以对分布在多个 Region 的指标、日志、链路追踪数据进行统一的可视化和分析。

夜莺监控的数据源支持 Prometheus 及兼容的服务,比如 Thanos、VictoriaMetrics 等等。GreptimeDB 作为一个云原生、可扩展的时序数据库,也高度兼容 Prometheus 及其查询语言 PromQL(请阅读《如何配置 GreptimeDB 作为 Prometheus 的长期存储》),因此也可以配置成夜莺的指标数据源。本文将以 docker compose 配置为例,来介绍如何将 GreptimeDB 作为夜莺监控的读写数据源。接入 GreptimeDB 后,除了高度的兼容性之外,你还可以获得极佳的水平扩展能力,以及基于 SQL 的数据分析和管理功能。

本文要求你在本机上安装  docker 和  docker-compose 命令行。

配置步骤

首先,我们从夜莺 release 页面下载最新稳定版本的夜莺监控软件,本文撰写时候为 7.3.1 版本,可以手工下载,也可以用 curl 命令下载:

curl -fsSL -O https://github.com/ccfos/nightingale/releases/download/v7.3.1/n9e-v7.3.1-linux-arm64.tar.gz

解压缩:

tar zxvf n9e-v7.3.1-linux-arm64.tar.gz
x cli/cli.gox cli/upgrade/config.gox cli/upgrade/readme.mdx cli/upgrade/upgrade.gox cli/upgrade/upgrade.sqlx docker/.dockerignorex docker/Dockerfile.goreleaserx docker/Dockerfile.goreleaser.arm64....

我们进入其中的 docker 目录:

cd docker/compose-bridge

Docker compose 可以方便地测试夜莺监控,本文也采用这种方式,实际部署请参照 **  夜莺官方文档 **。

为了使用 GreptimeDB,我们需要修改下默认的配置和镜像。

首先,修改  docker-compose.yaml,在  services 部分增加 greptimedb 镜像及容器:

  greptimedb:    image: greptime/greptimedb:v0.9.2
    container_name: greptimedb    hostname: greptimedb    restart: always    environment:      TZ: Asia/Shanghai    ports:
      - "4000:4000"
      - "4002:4002"
    networks:
      - nightingale    command:
      - "standalone"
      - "start"
      - "--http-addr"
      - "0.0.0.0:4000"
      - "--mysql-addr"
      - "0.0.0.0:4002"

我们在这里使用了 GreptimeDB 最新稳定版本 v0.9.2,以 standalone 单机模式启动,并开放端口 4000 和 4002,分别是 HTTP 协议和 MySQL 协议端口,容器名为  greptimedb。

第二步,修改夜莺配置文件,将 metric 数据写入 GreptimeDB,编辑文件  etc-nightingale/config.toml,找到  [[Pushgw.Writers]] 部分:

[[Pushgw.Writers]] Url = "http://greptimedb:4000/v1/prometheus/write"

接下来启动所有服务,执行命令:

docker-compose up

如果一切正常,打开浏览器访问夜莺的 web 页面,地址是  http://localhost:17000/

输入默认的用户名 root 和密码 root.2020 即可登录。

此时夜莺已经开始将 Categraf 采集的指标数据写入 GreptimeDB,不过我们还需要配置 GreptimeDB 数据源才能查询。

我们进入配置中心菜单,找到数据源,点击新建:

(图 1 :步骤展示 1)

选择  Prometheus like,并填写关键信息:

(图 2 :步骤展示 2)

  • 名称:GreptimeDB
  • HTTP 查询接口 URL: http://greptimedb:4000/v1/prometheus,GreptimeDB 原生支持了 Prometheus 的查询 API 及 PromQL。
  • 跳过 SSL 验证
  • Remote Write URL:  http://greptimedb:4000/v1/prometheus/write

点击 测试并保存即可。

最后一步,我们导入默认的内置 Linux 主机监控大盘来查询数据,进入 监控仪表盘,选择  Default Busi Group 默认业务组:

(图 3 :步骤展示 3)

点击右上角导入菜单,选择 Linux 的  Linux Host by Categraf v2 大盘,点击导入即可:

(图 4 :步骤展示 4)

(图 5 :步骤展示 5)

打开该大盘,如果一切正常,应该会显示本机的监控数据:

(图 6 :结果显示)

使用 SQL 查看和管理指标数据

打开浏览器,访问  http://localhost:4000/dashboard/ 即可访问 GreptimeDB 内置的 dashboard 页面,在这里查看和管理所有的指标表以及数据:

(图 7 :GreptimeDB 内置的 dashboard 页面显示)

点击左侧加号,打开一个查询界面,可以在这里输入一些 SQL 查询并执行:

(图 8 :查询界面使用)

可以输入任意的 SQL 进行关联查询和分析,也可以执行管理操作,比如删除表、查看表定义之类。

默认 GreptimeDB 会为 Prometheus Remote Write 使用  metric 引擎,每个 Prometheus 指标对应一张逻辑表,所有的逻辑表会映射到物理大宽表,这张表默认是  greptime_physical_table,所有的指标数据都在这张表里,可以对这张宽表做各种分析和查询:

show create table greptime_physical_table;
CREATE TABLE IF NOT EXISTS `greptime_physical_table` (  `greptime_timestamp` TIMESTAMP(3) NOT NULL,  `greptime_value` DOUBLE NULL,  `ident` STRING NULL,  `interface` STRING NULL,  `source` STRING NULL,  `name` STRING NULL,  `instance` STRING NULL,  `code` STRING NULL,  `method` STRING NULL,  `path` STRING NULL,  `service` STRING NULL,  `version` STRING NULL,  `quantile` STRING NULL,  `le` STRING NULL,  `url` STRING NULL,  `cpu` STRING NULL,  `channel` STRING NULL,  `host_ident` STRING NULL,  TIME INDEX (`greptime_timestamp`),
  PRIMARY KEY (`ident`, `interface`, `source`, `name`, `instance`, `code`, `method`, `path`, `service`, `version`, `quantile`, `le`, `url`, `cpu`, `channel`, `host_ident`)
)ENGINE=metricWITH(
  physical_metric_table = 'true')

可以看到,这张大宽表包含了所有指标的 tag,以及共同的 value 列 greptime_value 和时间戳列 greptime_timestamp。更多关于 GreptimeDB 对于 Prometheus 的支持,请阅读 文档。

总结

本文以 docker compose 为例,展示了如何将 GreptimeDB 配置为夜莺监控的 Prometheus 数据源,处理监控指标数据的读写请求。GreptimeDB 原生支持 PromQL ,兼容率达到 89%(第三方独立实现最高),并且具备极佳的扩展性,可以使用 SQL 来分析和管理 Prometheus 指标数据,为可观测领域带来新的可能。

关于 Greptime

Greptime 格睿科技专注于为可观测、物联网及车联网等领域提供实时、高效的数据存储和分析服务,帮助客户挖掘数据的深层价值。目前基于云原生的时序数据库  GreptimeDB 已经衍生出多款适合不同用户的解决方案,更多信息或 demo 展示请联系下方小助手(微信号:greptime)。

欢迎对开源感兴趣的朋友们参与贡献和讨论,从带有 good first issue 标签的 issue 开始你的开源之旅吧~期待在开源社群里遇见你!添加小助手微信即可加入 "技术交流群" 与志同道合的朋友们面对面交流哦~

Star us on GitHub Now:  https://github.com/GreptimeTeam/greptimedb

官网: https://greptime.cn/

文档: https://docs.greptime.cn/

Twitter:  https://twitter.com/Greptime

Slack:  https://greptime.com/slack

LinkedIn:  https:///company/greptime/


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70031880/viewspace-3044755/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Greptime 格睿科技致力于为智能汽车、物联网及可观测等产生大量时序数据的领域提供实时、高效的数据存储和分析服务,帮助客户挖掘数据的深层价值。

注册时间:2023-07-13

  • 博文量
    63
  • 访问量
    61331