从Prometheus迁移到夜莺方案请教

Viewed 102

当前架构:

graph TD
      A[Prometheus] -->|pull| B(pushgateway)
      C[grafana] --> A[Prometheus]
      A设备 -->|push| B[pushgateway]
      B设备-->|push| B[pushgateway]
C设备-->|push| B[pushgateway]
A嵌入式设备-->|push| B[pushgateway]
B嵌入式设备-->|push| B[pushgateway]
     

如果使用切换到nightingale有什么可以代替pushgateway接收文本格式的数据吗?因为下端有很多是嵌入式设备,对内置agent性能方面不太允许。部分不是嵌入的设备可以通过内置categraf来接收本来程序输出的pushgateway格式数据。
或者当前nightingale可以直接接收pushgateway格式的数据吗?

各位老板们有什么建议?看看大家的方案

1 Answers

1,其实可以维持默认的方案,不用动,只是把现在的 Prometheus 作为数据源接入夜莺,在夜莺里管理告警规则就可以了
2,如果想把 Pushgateway 替换成夜莺的组件,可以使用 categraf ,除非现在的方案遇到性能问题,否则不用折腾

Pushgateway有几个致命的缺点:
1.机器已经不上报数据,但是依然可以取到持久化数据
2.无法显示机器离线告警
3.单机性能及故障风险
我们主要是想解决以上几个问题,categraf暴露api后可以接收多个机器的Pushgateway格式数据?这样的话机器是否会被变成一台机器的指标,且能实现机器离线状态告警吗?

可以接收多个机器的数据,上报的数据带上 ident 标签,然后 url 里加上参数:ignore_hostname=true&ignore_global_labels=true就不会附加 categraf 所在机器的标识信息了。接口的urlpath是/api/push/pushgateway