美文网首页
prometheus 远端存储-VictoriaMetrics

prometheus 远端存储-VictoriaMetrics

作者: 谁用了我的昵称叫艾特 | 来源:发表于2020-04-13 23:13 被阅读0次

VictoriaMetrics是快速,经济高效且可扩展的时间序列数据库。它可以用作Prometheus的长期远程存储(==不支持远端读,但支持通过grafana读取==),使用go 语言编写。可以可以通过二进制文件一次编译,到处部署
优点:

  • 支持Prometheus查询API,因此可以在Grafana中用作Prometheus的替代产品。VictoriaMetrics实现了受PromQL启发的MetricsQL查询语言。
  • 插入和查询的高性能和良好的可伸缩性。优于InfluxDB和TimescaleDB 20倍。
  • 在处理数百万个唯一的时间序列(又称高基数)时,使用的内存比InfluxDB少10倍。
  • 高度的数据压缩,因此与TimescaleDB相比,有限的存储空间中最多可以塞满70倍的数据点。
  • 针对高延迟IO和低IOPS(AWS,Google Cloud,Microsoft Azure等中的HDD和网络存储)的存储进行了优化。
  • 运维优势:
- VictoriaMetrics由一个没有外部依赖性的小型可执行文件组成。
- 所有配置都是通过带有合理默认值的显式命令行标志完成的
- 所有数据都存储在-storageDataPath标志指向的单个目录中。
- 使用vmbackup / vmrestore从即时快照轻松快速地备份到S3或GCS。
  • 支持多种协议的数据抓取
- prometheus exporter
- prometheus 远端写api
- 基于HTTP,TCP和UDP的InfluxDB协议。
- Graphite plaintext protocol 
- OpenTSDB put message
- HTTP OpenTSDB /api/put requests
- /api/v1/import.
- 任意CSV数据。
  • 开源的集群版本

部署集群版本:
整体结构图:

可以看到在整体的结构中。vmselect 和vminsert 均为无状态服务。storage 是存储服务。 可以部署在虚拟机中
部署方式:
使用helm 一键部署
镜像准备:

  1. 下载vmcluser 三个组件的二进制包
[root@k8s-master01 ~]# wget "https://github-production-release-asset-2e65be.s3.amazonaws.com/150954997/1e708100-7750-11ea-9da2-4460f46fa7be?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200408%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200408T063357Z&X-Amz-Expires=300&X-Amz-Signature=839c0ab1a40df2e7eb512cd599c9edf03b7b241399d8eb8e7661d714b99ce158&X-Amz-SignedHeaders=host&actor_id=21969438&response-content-disposition=attachment%3B%20filename%3Dvictoria-metrics-v1.34.7-cluster.tar.gz&response-content-type=application%2Foctet-stream -o victoria-metrics-v1.34.7-cluster.tar.gz"
[root@k8s-master01 ~]# tar zxvf victoria-metrics-v1.34.7-cluster.tar.gz
  1. 构建images
    vmselect 和vminsert 相同。修改二进制文件即可
FROM alpine:3
RUN echo "http://mirrors.aliyun.com/alpine/v3.8/main" > /etc/apk/repositories \
    && apk update \
    && apk add --no-cache tzdata \
    && apk add --no-cache curl \
    && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone \
    && apk del tzdata \
    && rm -rf /var/cache/apk/* \
    && rm -rf /root/.cache \
    && rm -rf /tmp/*
WORKDIR /
COPY vmselect /bin/
ENTRYPOINT ["/bin/vmselect"]
  1. 推送到harbor私服
docker build . -t vmselect
docker tag vmselect registry.rong360.com/base/vmselect:v1.34.7
docker push registry.rong360.com/base/vmselect:v1.34.7

部署步骤:

  1. master节点安装git,helm
  2. 下载vm-cluster相关charts
[root@k8s-master01 ~]# git clone https://github.com/VictoriaMetrics/helm-charts.git
  1. 修改相关配置
  • 修改helm-charts/charts/victoria-metrics-cluster/values.yaml 中 vmstorage.enable 为false
  • 修改vmselect,vminsert 中image.repository 和image.tag 为harbor 私服的地址和tag
  1. 安装vm-cluster到集群中,修改select 和 insert 的svc 类型为headless
[root@k8s-master01 victoria-metrics-cluster]# helm install  prod -n monitoring . 
  1. 修改prometheus 实例中远程写配置(prometheus-prometheus.yaml)
  remoteWrite:
    - url: http://vm-cluster-vminsert.monitoring.svc:8480/insert/0/prometheus/
  1. 在虚拟机中部署storage 节点,二进制文件, 使用supervisor管理即可

  2. 修改grafana 中读取配置
    因为线上grafana 位于集群外部。 需要使用nginx 接入代理vmselect 和insert。参考例子

server {
    listen 80; 
    server_name vm.rong360.com;
    location ^~/select/ {
        proxy_pass http://vm-select;
    }
    location ^~/insert/ {
        proxy_pass http://vm-insert;
    }
    location ^~/snapshot/ {
        proxy_pass http://vm-storage;
    }
}

grafana 的配置实例“http://vm.rong360.com/insert/0/prometheus/

相关文章

  • prometheus 远端存储-VictoriaMetrics

    VictoriaMetrics是快速,经济高效且可扩展的时间序列数据库。它可以用作Prometheus的长期远程存...

  • Prometheus数据存储

    To be continued.... Prometheus提供了两种存储方式,分别为本地存储和远端存储。 Pro...

  • Prometheus指标写入ES间断问题排查

    背景 由于Prometheus自身容量有限,不适合存储大量数据,所以需要将数据写入远端存储。由于我对ES比较熟悉,...

  • 记一次搭建VictoriaMetrics-cluster+pro

    首先VictoriaMetrics是一个时序列数据库可以直接在prometheus配置remote_url将数据存...

  • FTP

    存储类型了解: DAS :本地存储SAN :远端存储(与本地磁盘使用感觉一样,可以删,可以格式化)NAS :远端存...

  • Prometheus监控

    Prometheus基本概念 架构 存储设计 https://coreos.com/blog/prometheus...

  • 容器监控实践—Prometheus存储机制

    概述 Prometheus提供了本地存储,即tsdb时序数据库,本地存储给Prometheus带来了简单高效的使用...

  • 1.prometheus入门

    prometheus的几个关键组件 prometheus server: 负责定时轮询采集数据、存储、对外提供数据...

  • 第6章 集群与高可用

    Prometheus内置了一个基于本地存储的时间序列数据库。在Prometheus设计上,使用本地存储可以降低Pr...

  • prometheus+influxdb+grafana

    使用influxdb 作为prometheus持久化存储和使用mysql 作为grafana 持久化存储的安装方法...

网友评论

      本文标题:prometheus 远端存储-VictoriaMetrics

      本文链接:https://www.haomeiwen.com/subject/osxamhtx.html