victoria-metrics部署

victoria-metrics是一个兼容Prometheus的监控,和Prometheus性能优于Prometheus同时支持集群模式横向扩容

单点模式

单点模式部署
helm repo add vm https://victoriametrics.github.io/helm-charts/
helm repo update
  • 默认就是单节点模式
helm install vm vm/victoria-metrics-k8s-stack -n victoria-metrics --create-namespace 
单节点模式访问报表
grafana
  • 获取grafana的密码,用户名默认为admin
kubectl get secrets vm-grafana -o jsonpath="{.data.admin-password}" | base64 -d
  • 转发grafana
kubectl -n victoria-metrics port-forward svc/vm-grafana 3000:80
vmui
  • 访问vmui
kubectl -n victoria-metrics port-forward svc/vmsingle-vm-victoria-metrics-k8s-stack 8429:8429

集群模式

  • 集群模式架构

alt text
alt text

  • vminsert负责将数据写入到vmstore中

  • vmsotre负责存储数据

  • vmselect负责数据查询

  • vmalert负责告警规则执行

  • vmagent负责抓取数据并通过vminsert写数据

  • 全部链路

flowchart LR
  exporter(各种exporter)-->vmagent(vmagent)
  vmagent(vmagent)-->vminsert(vminsert)
  Prometheus(prometheus)-- 远程写 -->vminsert(vminsert)
  vminsert(vminsert)-->vmstorage(vmstorage)
  vmstorage[(vmstorage)]-->vmselect(vmselect)
  vmselect(vmselect)-->grafana(grafana)
  vmselect(vmselect)-->vmalert(vmalert)
  vmalert(vmalert)-->alertmanager(alertmanager)
  alertmanager(alertmanager)-->alert(各种告警方式)
集群模式部署
  • 添加vm仓库
helm repo add vm https://victoriametrics.github.io/helm-charts/
helm repo update
  • 通过命令行设置为集群模式
helm install vm vm/victoria-metrics-k8s-stack -n victoria-metrics --create-namespace --set vmcluster.enabled=true --set vmsingle.enabled=false
  • 导出默认的values文件通过values文件来设置
helm show values vm/victoria-metrics-k8s-stack > values.yaml
  • 修改values.yaml中的配置
vmsingle:
  enabled: false
vmcluster:
  enabled: true
helm install vm  vm/victoria-metrics-k8s-stack -n victoria-metrics -f values.yaml
集群模式访问报表

集群模式访访问grafana和单节点一样参考grafana

查询ui
kubectl -n victoria-metrics port-forward svc/vmselect-vm-victoria-metrics-k8s-stack 8481:8481
收集metrics的ui
kubectl -n victoria-metrics port-forward svc/vmagent-vm-victoria-metrics-k8s-stack 8429:8429

参考资料

https://docs.victoriametrics.com