前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >victoriametrics 部署

victoriametrics 部署

作者头像
BUG弄潮儿
发布2025-03-24 13:54:58
发布2025-03-24 13:54:58
6700
代码可运行
举报
文章被收录于专栏:JAVA乐园JAVA乐园
运行总次数:0
代码可运行

添加helm仓库

代码语言:javascript
代码运行次数:0
运行
复制
helm repo add vm https://victoriametrics.github.io/helm-charts/
helm repo update

搜索victoriametrics仓库

代码语言:javascript
代码运行次数:0
运行
复制
helm search repo vm/
代码语言:javascript
代码运行次数:0
运行
复制
NAME                            CHART VERSION   APP VERSION     DESCRIPTION                                       
vm/victoria-logs-single         0.9.2           v1.14.0         Victoria Logs Single version - high-performance...
vm/victoria-metrics-agent       0.17.0          v1.113.0        Victoria Metrics Agent - collects metrics from ...
vm/victoria-metrics-alert       0.15.0          v1.113.0        Victoria Metrics Alert - executes a list of giv...
vm/victoria-metrics-anomaly     1.8.0           v1.20.0         Victoria Metrics Anomaly Detection - a service ...
vm/victoria-metrics-auth        0.10.0          v1.113.0        Victoria Metrics Auth - is a simple auth proxy ...
vm/victoria-metrics-cluster     0.19.0          v1.113.0        Victoria Metrics Cluster version - high-perform...
vm/victoria-metrics-common      0.0.41                          Victoria Metrics Common - contains shared templ...
vm/victoria-metrics-distributed 0.9.0           v1.113.0        A Helm chart for Running VMCluster on Multiple ...
vm/victoria-metrics-gateway     0.8.0           v1.113.0        Victoria Metrics Gateway - Auth & Rate-Limittin...
vm/victoria-metrics-k8s-stack   0.39.0          v1.113.0        Kubernetes monitoring on VictoriaMetrics stack....
vm/victoria-metrics-operator    0.43.0          v0.54.1         Victoria Metrics Operator                         
vm/victoria-metrics-single      0.15.0          v1.113.0        Victoria Metrics Single version - high-performa...

拉取victoria-metrics-operator的chart包

代码语言:javascript
代码运行次数:0
运行
复制
helm pull vm/victoria-metrics-operator

如果遇到如下问题,说明需要科学上网,下载victoria-metrics-operator-0.43.0.tgz压缩包

代码语言:javascript
代码运行次数:0
运行
复制
Error: Get "https://github.com/VictoriaMetrics/helm-charts/releases/download/victoria-metrics-operator-0.43.0/victoria-metrics-operator-0.43.0.tgz": read tcp 10.0.2.21:36530->20.205.243.166:443: read: connection reset by peer

安装victoria-metrics-operator

创建命名空间

代码语言:javascript
代码运行次数:0
运行
复制
kubectl create namespace vmtrics-monitor
代码语言:javascript
代码运行次数:0
运行
复制
tar -xvf victoria-metrics-operator-0.43.0.tgz
cd victoria-metrics-operator-0.43.0
helm install vmoperator . -f values.yaml -n vmtrics-monitor

如果已经可以科学上网可以直接使用如下命令:

代码语言:javascript
代码运行次数:0
运行
复制
helm install vmoperator vm/victoria-metrics-operator -f values.yaml -n vmtrics-monitor

安装成功提示

代码语言:javascript
代码运行次数:0
运行
复制
NOTES:
victoria-metrics-operator has been installed. Check its status by running:
  kubectl --namespace vmtrics-monitor get pods -l "app.kubernetes.io/instance=vmoperator"

Get more information on https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-operator.
See "Getting started guide for VM Operator" on https://docs.victoriametrics.com/guides/getting-started-with-vm-operator

这个helm install vmoperator . -f values.yaml -n vmtrics-monitor执行后,需要等待一定的时间。检查victoria-metrics-operator是否启动成功

代码语言:javascript
代码运行次数:0
运行
复制
kubectl --namespace vmtrics-monitor get pods -l "app.kubernetes.io/instance=vmoperator"

大概会出现以下错误,是因为拉取不到镜像失败

代码语言:javascript
代码运行次数:0
运行
复制
NAME                                                    READY   STATUS             RESTARTS   AGE
vmoperator-victoria-metrics-operator-5b8dc96466-zcc2g   0/1     ImagePullBackOff   0          13m

通过以下地址搜索国内镜像

代码语言:javascript
代码运行次数:0
运行
复制
https://docker.aityp.com/

修改values.yaml文件

代码语言:javascript
代码运行次数:0
运行
复制
image:
  # -- Image registry
  registry: ""
  # -- Image repository
  repository: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/victoriametrics/operator  #修改镜像仓库
  # -- Image tag
  # override Chart.AppVersion
  tag: "v0.53.0"  #修改镜像tag

再次参考安装情况

代码语言:javascript
代码运行次数:0
运行
复制
helm list --all-namespaces
kubectl get all -n vmtrics-monitor

显示结果

代码语言:javascript
代码运行次数:0
运行
复制
[root@mk8s-master op]# helm list --all-namespaces
NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                                   APP VERSION
vmoperator      vmtrics-monitor 1               2025-03-14 17:02:58.383908049 +0800 CST deployed        victoria-metrics-operator-0.43.0        v0.54.1    
[root@mk8s-master op]# kubectl get all -n vmtrics-monitor 
NAME                                                        READY   STATUS    RESTARTS   AGE
pod/vmoperator-victoria-metrics-operator-684997574c-5sll5   1/1     Running   0          5m30s

NAME                                           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)             AGE
service/vmoperator-victoria-metrics-operator   ClusterIP   10.106.48.186   <none>        8080/TCP,9443/TCP   5m30s

NAME                                                   READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/vmoperator-victoria-metrics-operator   1/1     1            1           5m30s

NAME                                                              DESIRED   CURRENT   READY   AGE
replicaset.apps/vmoperator-victoria-metrics-operator-684997574c   1         1         1       5m30s

安装victoria-metrics相关组件

创建文件vmcluster.yaml

代码语言:javascript
代码运行次数:0
运行
复制
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMCluster
metadata:
  name: demo
  namespace: vmtrics-monitor
spec:
  retentionPeriod: "1"
  replicationFactor: 2
  vmstorage:
    image:
      repository: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/victoriametrics/vmstorage
      tag: v1.110.0-cluster
      pullPolicy: Always
    replicaCount: 1
    storageDataPath: "/vm-data"
    storage:
      volumeClaimTemplate:
        spec:
          accessModes:
            - ReadWriteOnce
          storageClassName: nfs-sc
          resources:
            requests:
              storage: "1Gi"
    resources:
      limits:
        cpu: "1"
        memory: "1Gi"
  vmselect:
    image:
      repository: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/victoriametrics/vmselect
      tag: v1.110.0-cluster
      pullPolicy: Always
    replicaCount: 1
    cacheMountPath: "/select-cache"
    storage:
      volumeClaimTemplate:
        spec:
          accessModes:
            - ReadWriteOnce
          storageClassName: nfs-sc
          resources:
            requests:
              storage: "1Gi"
    resources:
      limits:
        cpu: "1"
        memory: "1Gi"
      requests:
        cpu: "0.5"
        memory: "500Mi"
  vminsert:
    image:
      repository: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/victoriametrics/vminsert
      tag: v1.110.0-cluster
      pullPolicy: Always
    replicaCount: 1
    resources:
      limits:
        cpu: "1"
        memory: "1Gi"
      requests:
        cpu: "0.5"
        memory: "500Mi"

部署组件

代码语言:javascript
代码运行次数:0
运行
复制
kubectl apply -f vmcluster.yaml

查看组件部署结果

代码语言:javascript
代码运行次数:0
运行
复制
kubectl get pods -n vmtrics-monitor -l "app.kubernetes.io/instance=my-vm"

Scraping

安装VMAgent

创建vmagent.yaml

代码语言:javascript
代码运行次数:0
运行
复制
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMAgent
metadata:
  name: demo
  namespace: vmtrics-monitor
spec:
  image:
    repository: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/victoriametrics/vmagent
    tag: v1.110.0
    pullPolicy: Always
  selectAllByDefault: true
  remoteWrite:
    - url: "http://vminsert-demo.vmtrics-monitor.svc:8480/insert/0/prometheus/api/v1/write"

部署vmagent.yaml

代码语言:javascript
代码运行次数:0
运行
复制
kubectl apply -f vmagent.yaml 

查看是否启动

代码语言:javascript
代码运行次数:0
运行
复制
kubectl get pods -n vmtrics-monitor -l "app.kubernetes.io/instance=demo" -l "app.kubernetes.io/name=vmagent"
代码语言:javascript
代码运行次数:0
运行
复制
kubectl port-forward svc/vmagent-demo 8429:8429 -n vmtrics-monitor

vmagent-service.yaml

代码语言:javascript
代码运行次数:0
运行
复制
apiVersion: v1
kind: Service
metadata:
  name: vmagent-demo-nodeport
  namespace: vm
spec:
  ports:
  - name: http
    port: 8429
    protocol: TCP
    targetPort: 8429
  selector:
    app.kubernetes.io/component: monitoring
    app.kubernetes.io/instance: demo
    app.kubernetes.io/name: vmagent
type: NodePort

安装VMServiceScrape

创建vmservicescrape.yaml

代码语言:javascript
代码运行次数:0
运行
复制
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMServiceScrape
metadata:
  name: vmoperator-demo
  namespace: vmtrics-monitor
spec:
  selector:
    matchLabels:
      app.kubernetes.io/instance: vmoperator
      app.kubernetes.io/name: victoria-metrics-operator
  namespaceSelector:
    matchNames:
      - vmtrics-monitor
  endpoints:
  - port: http

部署vmservicescrape.yaml

代码语言:javascript
代码运行次数:0
运行
复制
kubectl apply -f vmservicescrape.yaml

查看结果

代码语言:javascript
代码运行次数:0
运行
复制
kubectl get VMServiceScrape -n vmtrics-monitor 

Access

VMAuth

创建vmauth.yaml

代码语言:javascript
代码运行次数:0
运行
复制
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMAuth
metadata:
  name: demo
  namespace: vmtrics-monitor
  labels:
    app: vmauth-demo
spec:
  image:
    repository: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/victoriametrics/vmauth
    tag: v1.108.1
    pullPolicy: Always
  selectAllByDefault: true
  userNamespaceSelector: {}
  userSelector: {}

部署

代码语言:javascript
代码运行次数:0
运行
复制
kubectl apply -f vmauth.yaml

查看

代码语言:javascript
代码运行次数:0
运行
复制
kubectl get svc -n vmtrics-monitor | grep vmauth-demo

转发

代码语言:javascript
代码运行次数:0
运行
复制
kubectl port-forward svc/vmauth-demo 8427:8427 -n vmtrics-monitor

vmauth-service.yaml

代码语言:javascript
代码运行次数:0
运行
复制
apiVersion: v1
kind: Service
metadata:
  name: vmauth-demo-nodeport
  namespace: vm
spec:
  ports:
  - name: http
    port: 8427
    protocol: TCP
    targetPort: 8427
  selector:
    app.kubernetes.io/component: monitoring
    app.kubernetes.io/instance: demo
    app.kubernetes.io/name: vmauth
type: NodePort

VMUser

创建vmuser.yaml

代码语言:javascript
代码运行次数:0
运行
复制
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMUser
metadata:
  name: demo
  namespace: vmtrics-monitor
spec:
  name: demo
  username: demo
  generatePassword: true
  targetRefs:
    # vmui + vmselect
    - crd:
        kind: VMCluster/vmselect
        name: demo
        namespace: vmtrics-monitor
      target_path_suffix: "/select/0"
      paths:
        - "/vmui"
        - "/vmui/.*"
        - "/prometheus/api/v1/query"
        - "/prometheus/api/v1/query_range"
        - "/prometheus/api/v1/series"
        - "/prometheus/api/v1/status/.*"
        - "/prometheus/api/v1/label/"
        - "/prometheus/api/v1/label/[^/]+/values"

部署

代码语言:javascript
代码运行次数:0
运行
复制
kubectl apply -f vmauth.yaml 

查看是否部署成功

代码语言:javascript
代码运行次数:0
运行
复制
kubectl get secret -n vmtrics-monitor -l "app.kubernetes.io/instance=demo" -l "app.kubernetes.io/name=vmuser"

查看密码

代码语言:javascript
代码运行次数:0
运行
复制
kubectl get secret -n vm vmuser-demo -o jsonpath="{.data.password}" | base64 --decode
代码语言:javascript
代码运行次数:0
运行
复制
参考:
https://docs.victoriametrics.com/operator/quick-start/
https://docs.victoriametrics.com/operator/resources/vmcluster/index.html
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-03-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BUG弄潮儿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 添加helm仓库
  • 搜索victoriametrics仓库
  • 拉取victoria-metrics-operator的chart包
  • 安装victoria-metrics-operator
  • 安装victoria-metrics相关组件
  • Scraping
    • 安装VMAgent
    • 安装VMServiceScrape
  • Access
    • VMAuth
    • VMUser
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档