接入 Prometheus、ElasticSearch、Loki、TDEngine 等数据源

通过之前的章节我们已经了解,不管数据是否流经夜莺,最终数据都存在时序库中,要想对这些数据做告警、看图,就要把这些存储作为数据源接入夜莺,开源版本目前支持接入 Prometheus Like(Prometheus、VictoriaMetrics、Thanos、M3 等兼容 Prometheus 查询接口的数据源)、ElasticSearch、Loki、TDEngine 等数据源类型,商业版本会支持更多数据源类型。

菜单操作入口:系统配置 - 数据源。以 Prometheus Like 类型的数据源举例,创建页面填写的关键信息如下:

  • 数据源名称:自定义的数据源名称
  • URL:数据源的地址,页面上已经给了例子
  • 超时时间:默认 10 秒,有的时候查询重量级 promql 10 秒可能不够,可以调大这个值,比如改成 30000 毫秒,即 30 秒
  • 授权:用户名密码指的是数据源的 Basic auth 认证信息
  • Remote write URL:如果用到了记录规则,记录规则产生的新指标会通过该地址回写时序库。比如 VictoriaMetrics 单机版的 remote write 地址是 http://IP:8428/api/v1/write,Prometheus 的 remote write 地址是 http://IP:9090/api/v1/write,如果没有用到记录规则,这个字段可以忽略
  • 时序库内网地址:通常用于边缘机房下沉部署告警引擎的场景,如果该字段不为空,n9e-edge 会使用该地址访问时序库,如果该字段为空,n9e-edge 会使用上面的 URL 访问时序库
  • 关联告警引擎集群:如果只是部署了中心夜莺,这里就默认选择 default 即可,如果你当前添加的数据源是某个边缘机房的数据源,并且该边缘机房有专门的 n9e-edge 告警引擎,那么这里就选择对应的告警引擎集群,何为边缘机房部署模式?请参考前面的文档《附:边缘机房部署

点击【测试并保存】,如果测试通过,就可以对这个数据源的数据看图、配告警规则了。比如我使用 docker compose bridge 部署的,时序库是 VictoriaMetrics,那么数据源 URL 就是 http://victoriametrics:8428,compose 中自动启动了 categraf 采集数据,配置完了数据源就可以立马去查看数据:

20240223110054

20240223105959

常见问题

填写了 URL,保存的时候报错连不通或超时

通常都是网络问题,比如防火墙(可以通过 systemctl stop firewalld 关掉防火墙)、iptables、白名单等,可以模仿夜莺进程去访问这个 URL 做 debug,夜莺进程如果是部署在 A 机器上,就去 A 机器上执行 curl 探测目标地址,如果夜莺进程部署在容器里,就进入容器里执行 curl 探测目标地址,如果容器里没有 curl 命令,可以参考这篇文章《使用 nsenter 排查容器网络》。

数据源创建时,有个超时时间的配置,单位是毫秒,默认是 10000,即 10 秒,如果修改的太小,也可能会导致问题。

如果是 Docker compose bridge 模式部署的,注意数据源连接地址,如果 compose 中使用的 VictoriaMetrics,那么数据源 URL 要填写 http://victoriametrics:8428,如果 compose 中使用的 Prometheus,那么数据源地址就是 http://prometheus:9090