ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

VictoriaMetrics 监控落地:时序数据库从接入到出图的实操笔记

VictoriaMetrics 监控落地:时序数据库从接入到出图的实操笔记 VictoriaMetrics 监控落地时序数据库从接入到出图的实操笔记【免费下载链接】VictoriaMetricsVictoriaMetrics: fast, cost-effective monitoring solution and time series database项目地址: https://gitcode.com/GitHub_Trending/vi/VictoriaMetrics你刚接手一批新机器需要给它们建一套指标监控机器上线第二天就要能回答过去一个月每台机器的 CPU 走势如何。Prometheus 默认只留 15 天数据而这个需求要一年。VictoriaMetrics 就是为这类场景准备的时序数据库——它兼容 PromQL靠本地存储把长保留期的成本压到可接受范围。它提供二进制、Docker 镜像和集群组件三档部署形态查询用 MetricsQLPromQL 的超集现有 PromQL 可以直接跑自带一个名叫 vmui 的网页查询界面。这篇内容会带你把单节点跑起来、把第一个 exporter 接进来、用 vmui 查出曲线最后给出慢查询定位和长保留期的调法。数据怎么流一张图看清 VictoriaMetrics 的职责分工先说结论单节点形态下采集、存储、查询、界面全在一个二进制里官方叫它 vmsingle一个进程扛数百万条活跃指标没有压力测试和小规模生产直接用它就行。规模上来后拆开就是集群Cluster-VictoriaMetrics.md 里描述的结构如下读这张图只需要记住两条链路写入链路Prometheus remote write、OTLP、InfluxDB 等协议的数据打进来经 vmauth 做负载均衡由 vminsert 按指标名加全部标签做一致性哈希分片到若干台 vmstorage读取链路vmselect 是无状态查询前端从各 vmstorage 取数、做计算和缓存前端同样挂一层 vmauth后面接 Grafana、vmui、告警系统。采集侧还有一块独立拼图 vmagent负责本地缓冲、服务发现、relabel 和简单聚合采完以 Prometheus remote write 协议写回 VictoriaMetrics。它既能被独立部署也能替代集群中只采集的角色。装起来、接进来、用起来装起来单节点一个二进制跑通先让数据流动起来——启动单节点 VictoriaMetrics数据落在本地目录。二进制方式从官方 releases 页下载victoria-metrics-linux-amd64-v1.151.0.tar.gz解压即可里面只有一个victoria-metrics-prod自包含、无需安装。tar xzf victoria-metrics-linux-amd64-v1.151.0.tar.gz ./victoria-metrics-prod -storageDataPath/var/lib/victoriametrics -selfScrapeInterval10s-selfScrapeInterval10s让它每 10 秒采一次自身指标起步阶段就有数据可查。日志出现started server at http://0.0.0.0:8428/就起来了。Docker 用户可以直接docker pull victoriametrics/victoria-metrics:v1.151.0 docker run -d --name vm -p 8428:8428 -v $(pwd)/victoria-metrics-data:/victoria-metrics-data \ victoriametrics/victoria-metrics:v1.151.0 -storageDataPath/victoria-metrics-data -selfScrapeInterval10s接进来把 node_exporter 抓进 VictoriaMetrics这步是告诉 VictoriaMetrics 去哪台机器取指标。先在本机跑一个 node_exporter从官方 releases 下载解压默认监听 9100 端口再写一份最小采集配置# scrape.yaml scrape_configs: - job_name: node-exporter static_configs: - targets: [localhost:9100]重启时加一个参数即可生效其余配置项都可以先不写./victoria-metrics-prod -storageDataPath/var/lib/victoriametrics -promscrape.configscrape.yaml打开http://localhost:8428/targets确认state: up。先别急着怀疑配置首次抓取完成前它显示down是正常现象等几秒刷新。目标数量上百、或者需要给采集链路加缓冲和 relabel 时把抓取任务挪给独立 vmagent配置格式与上面一致remote write 指向http://vm:8428/api/v1/write即可。vmagent 的接入面长这样用起来在 vmui 里查出第一组曲线数据进来后不用接 Grafana 也能看图。打开http://localhost:8428/vmui在查询框输入一条 MetricsQL 按回车100 - avg(rate(node_cpu_seconds_total{modeidle})) * 100不出曲线时去/vmui/#/metrics指标浏览器里翻指标名比背名字快。要正式看板就接 Grafana数据源类型选 Prometheus、URL 填http://vm:8428然后把 dashboards/ 目录下现成的 JSON 导入比如victoriametrics.json单节点和victoriametrics-cluster.json集群。跑通之后三个值得花时间调的方向慢查询先定位再优化加一个启动参数让执行超过 1 秒的查询打印统计信息设成0关闭1us记录全部./victoria-metrics-prod -search.logSlowQueryStats1s它输出的是每次慢查询的执行统计配合 dashboards/query-stats.json 这个官方仪表盘能把哪个查询、哪个租户、慢在哪定位出来。企业版默认就开着这项阈值 5 秒开源版靠参数显式打开行为细节见 docs/victoriametrics/query-stats.md。长保留期用降采样压存储保留期用-retentionPeriod控制比如直接给-retentionPeriod1y。一年原始粒度扛不住时上降采样——-downsampling.period30d:5m表示保留 30 天后只留 5 分钟粒度的数据。这里有个容易漏的点集群模式下这个参数必须同时传给 vmstorage 和 vmselect 两端只改一边会出现查询结果与存储粒度对不上的情况Cluster-VictoriaMetrics.md 的 Downsampling 一节有完整写法。横向扩容何时上集群模式单节点垂直扩展见顶后写入速率、查询并发或磁盘 IO 持续打满切到集群vminsert、vmselect、vmstorage 三类节点各自水平扩vmauth 前置做负载均衡。扩容和分片的具体规划按 docs/victoriametrics/Cluster-VictoriaMetrics.md 里的容量估算方法做别拍脑袋。常见的坑和继续深入的路径刚写入的数据最长 30 秒后才能被查到。curl 推了一条立刻查不到先等半分钟再怀疑配置/targets里新 target 显示down不一定是挂了首抓完成前都是这个状态降采样参数只配了 vmstorage 没配 vmselect查询侧仍按原始粒度读效果等于没配。想继续往下挖指标与保留、降采样的概念看 docs/victoriametrics/keyConcepts/查询语法细节看 docs/victoriametrics/MetricsQL.md告警规则用 app/vmalert/ 跑。下一步建议把现有 Prometheus 的 remote write 指过来先双写一周再把保留期换成你要的年限。【免费下载链接】VictoriaMetricsVictoriaMetrics: fast, cost-effective monitoring solution and time series database项目地址: https://gitcode.com/GitHub_Trending/vi/VictoriaMetrics创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表