prometheus 远端存储-VictoriaMetrics

2020-04-13  本文已影响0人  谁用了我的昵称叫艾特

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

- 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. 修改相关配置
  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/

上一篇 下一篇

猜你喜欢

热点阅读