作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!
我实在是非常喜欢这个强大的 metrics 监控组件 VictoriaMetrics
. 近期团队需要部署一份,我顺手把用于测试的部署脚本开源到了我的仓库中:https://github.com/ahfuzhang/deploy_VictoriaMetrics_cluster
克隆仓库后,cd 到 docker_compose 目录,然后执行 make deploy
就能在 macbook 上启动完整的一套群集。
通过 docker-compose 来一键启动多个容器,这当然没什么新鲜的。
这个仓库更重要的价值其实是对群集的规划提供了一种最佳实践:
1.五种群集
metrics 监控系统并非简单的采集-存储-查询就够了,作为一套高可用可平行扩容的系统,需要根据功能进一步划分子群集。
根据常规的需求,存在这样一些子群集:
- 自监控群集:对 vm 的各个组件自身的 metrics 数据进行采集,确保系统稳定;
- 实时群集:采集各个 expoter 的数据,保留最近 N 天的 metrics 数据。为了保障实时群集的高性能,N 建议为 15 天。
- 告警群集:执行告警查询,并在告警触发后,进行告警汇聚/告警收敛/告警屏蔽等处理,进一步发给企业微信/钉钉等IM的 webhook 上;
- 历史群集: 定期备份和恢复实时群集的数据,为更长周期的历史数据提供查询能力。
- 数据源群集:提供 exporter 的注册/寻址,并把大量的 expoter 列表进行分片抓取。这里主要是 vm-agent 的配置方法。
2. 详细架构
部署代码中对上图的架构提供了基于 docker-compose 的部署脚本。
未来或许会再提供 terraform 等部署代码。
希望对使用 VictoriaMetrics 的团队有用。 😃