User Tools

Site Tools


сервис_victoriametrics

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
сервис_victoriametrics [2025/03/25 14:03]
val [Уведомления]
сервис_victoriametrics [2026/05/18 20:11] (current)
val
Line 4: Line 4:
  
   * [[https://​docs.victoriametrics.com/​sd_configs/​|vmagent and single-node VictoriaMetrics supports the following Prometheus-compatible service discovery]]   * [[https://​docs.victoriametrics.com/​sd_configs/​|vmagent and single-node VictoriaMetrics supports the following Prometheus-compatible service discovery]]
- 
   * [[https://​docs.victoriametrics.com/​guides/​k8s-monitoring-via-vm-cluster/​|Kubernetes monitoring with VictoriaMetrics Cluster]]   * [[https://​docs.victoriametrics.com/​guides/​k8s-monitoring-via-vm-cluster/​|Kubernetes monitoring with VictoriaMetrics Cluster]]
- 
   * [[https://​docs.victoriametrics.com/​guides/​k8s-monitoring-via-vm-single/​|Kubernetes monitoring via VictoriaMetrics Single]]   * [[https://​docs.victoriametrics.com/​guides/​k8s-monitoring-via-vm-single/​|Kubernetes monitoring via VictoriaMetrics Single]]
 +  * [[https://​docs.victoriametrics.com/​scrape_config_examples/​]]
  
 +  * [[https://​github.com/​VictoriaMetrics/​helm-charts/​tags]]
  
 +  * [[Система Kubernetes#​kube-state-metrics]]
 <​code>​ <​code>​
 (venv1) server# ansible all -f 4 -m apt -a '​pkg=prometheus-node-exporter state=present update_cache=true'​ -i /​root/​kubespray/​inventory/​mycluster/​hosts.yaml (venv1) server# ansible all -f 4 -m apt -a '​pkg=prometheus-node-exporter state=present update_cache=true'​ -i /​root/​kubespray/​inventory/​mycluster/​hosts.yaml
 +
 +root@9f823e41e1c4:/​kubespray#​ ansible all -f 4 -m apt -a '​pkg=prometheus-node-exporter state=present update_cache=true'​ -i /​inventory/​inventory.ini
  
 kube1# helm repo add vm https://​victoriametrics.github.io/​helm-charts/​ kube1# helm repo add vm https://​victoriametrics.github.io/​helm-charts/​
 kube1# helm repo update kube1# helm repo update
 +kube1# helm search repo vm
  
-kube1:​~/​vm# ​cat guide-vmsingle-values.yaml+kube1:​~/​vm# ​helm show values vm/victoria-metrics-single --version 0.35.0 > vmsingle-values.yaml 
 + 
 +kube1:~/vm# cat vmsingle-values.yaml
 </​code><​code>​ </​code><​code>​
 ... ...
 +  scrape:
 +    enabled: true
 +...
 +          # End of COPY
 +        - job_name: kube-state-metrics
 +          kubernetes_sd_configs:​
 +          - role: pod
 +          relabel_configs:​
 +          - source_labels:​ [__meta_kubernetes_pod_container_name]
 +            regex: kube-state-metrics
 +            action: keep
 +          - source_labels:​ [__meta_kubernetes_pod_container_port_number]
 +            regex: "​8080"​
 +            action: keep
 +
         - job_name: node-exporter         - job_name: node-exporter
           static_configs:​           static_configs:​
Line 26: Line 47:
               - kube3.corpX.un:​9100               - kube3.corpX.un:​9100
 </​code><​code>​ </​code><​code>​
-kube1:~/vm# helm upgrade -i vmsingle vm/​victoria-metrics-single -f guide-vmsingle-values.yaml -n vm --create-namespace+kube1:~/vm# helm upgrade -i vmsingle vm/​victoria-metrics-single -f vmsingle-values.yaml -n vm --create-namespace ​--version 0.35.0
  
-kube1:~/vm# kubectl scale --replicas 1 statefulset vmsingle-victoria-metrics-single-server -n vm +cmder> kubectl port-forward svc/​vmsingle-victoria-metrics-single-server 8428 -n vm
- +
-cmder> kubectl ​-n vm port-forward svc/​vmsingle-victoria-metrics-single-server 8428 -n vm+
 </​code>​ </​code>​
  
Line 42: Line 61:
 (venv1) server# ansible-playbook /​root/​conf/​ansible/​roles/​mail.yml (venv1) server# ansible-playbook /​root/​conf/​ansible/​roles/​mail.yml
  
-kube1:~/vm# helm show values vm/​victoria-metrics-alert > vm-alert-values.yaml+kube1:~/vm# helm show values vm/​victoria-metrics-alert ​--version 0.37.0 ​> vm-alert-values.yaml 
 + 
 +$ wget -qO - https://​raw.githubusercontent.com/​samber/​awesome-prometheus-alerts/​master/​dist/​rules/​host-and-hardware/​node-exporter.yml | sed '​s/​^/ ​     /' 
 + 
 +$ wget -qO - https://​raw.githubusercontent.com/​samber/​awesome-prometheus-alerts/​master/​dist/​rules/​kubernetes/​kubestate-exporter.yml | sed '​s/​^/ ​     /'
  
 kube1:~/vm# cat vm-alert-values.yaml kube1:~/vm# cat vm-alert-values.yaml
Line 53: Line 76:
 #    url: "​http://​vmsingle-victoria-metrics-single-server.vm.svc.cluster.local:​8428"​ #    url: "​http://​vmsingle-victoria-metrics-single-server.vm.svc.cluster.local:​8428"​
 #    url: "​http://​vmcluster-victoria-metrics-cluster-vmselect.vm.svc.cluster.local:​8481/​select/​0/​prometheus/"​ #    url: "​http://​vmcluster-victoria-metrics-cluster-vmselect.vm.svc.cluster.local:​8481/​select/​0/​prometheus/"​
-... 
-  notifier: 
-    alertmanager:​ 
-      url: "​http://​alertmanager:​9093"​ 
 ... ...
   config:   config:
Line 62: Line 81:
 #      groups: [] #      groups: []
       groups:       groups:
-      - name: node_exporter_alerts+      - name: NodeExporter 
 +... 
 +          - alert: HostFilesystemDeviceError 
 +            expr: '​node_filesystem_device_error{fstype!~"​^(fuse.*|tmpfs|cifs|nfs)",​ mountpoint!~"​.*/​kubelet.*"​} == 1'
 ...    ...   
-      - name: vm_k8s_alerts +      - name: KubestateExporter
-        rules: +
-        - alert: CriticalCPU +
-          expr: sum by (kubernetes_io_hostname) (rate (container_cpu_usage_seconds_total[1m])) / sum (machine_cpu_cores) * 100 > 40 +
-          for: 1m +
-          labels: +
-            severity: "​critical"​ +
-          annotations:​ +
-            summary: "​CriticalCPU {{ $labels.instance }}" +
- +
-        - alert: CriticalFS +
-          expr: container_fs_usage_bytes{device=~"​^/​dev/​[sv]d[a-z][1-9]$"​} / container_fs_limit_bytes * 100 > 80 +
-          for: 1m +
-          labels: +
-            severity: "​critical"​ +
-          annotations:​ +
-            summary: "​CriticalFS {{ $labels.instance }}" +
- +
-        - alert: CriticalMEM +
-          expr: sum by (kubernetes_io_hostname) (container_memory_working_set_bytes) / sum (machine_memory_bytes) * 100 > 80 +
-          for: 1m +
-          labels: +
-            severity: "​critical"​ +
-          annotations:​ +
-            summary: "​CriticalMEM {{ $labels.instance }}" +
 ... ...
 alertmanager:​ alertmanager:​
Line 114: Line 111:
 ... ...
 </​code><​code>​ </​code><​code>​
-kube1:~/vm# helm upgrade -i vma vm/​victoria-metrics-alert -f vm-alert-values.yaml -n vm+kube1:~/vm# helm upgrade -i vma vm/​victoria-metrics-alert -f vm-alert-values.yaml -n vm --version 0.37.0
  
 kube1:~/vm# kubectl -n vm exec -ti pods/​vma-victoria-metrics-alert-server-<​TAB>​ -- sh kube1:~/vm# kubectl -n vm exec -ti pods/​vma-victoria-metrics-alert-server-<​TAB>​ -- sh
 </​code><​code>​ </​code><​code>​
 +/ # ps|cat
 +...
 +    1 root      0:00 /​vmalert-prod --datasource.url=http://​vmsingle-victoria-metrics-single-server:​8428 --envflag.enable --envflag.prefix=VM_ --httpListenAddr=:​8880 --loggerFormat=json --notifier.url=http://​vma-victoria-metrics-alert-alertmanager.vm.svc.cluster.local.:​9093 --rule=/​config/​alert-rules.yaml
 +...
 / # cat /​config/​alert-rules.yaml / # cat /​config/​alert-rules.yaml
 ... ...
Line 131: Line 132:
 </​code>​ </​code>​
  
-  * Используем [[Система Kubernetes#​Базовые объекты k8s]] для стресс тестирования из [[Основы администрирования систем Linux#​Модуль 11. Анализ производительности ​и оптимизация ​системы]]+  * Используем [[Система Kubernetes#​Базовые объекты k8s]] для стресс тестирования из [[Анализ производительности системы]]
   * [[Команда dd]] для нехватки места на диске   * [[Команда dd]] для нехватки места на диске
  
Line 140: Line 141:
  
 <​code>​ <​code>​
-kube1:~/vm# helm show values vm/​victoria-logs-single > vls-values.yaml+kube1:~/vm# helm show values vm/​victoria-logs-single ​--version 0.12.0 ​> vls-values.yaml
  
 kube1:~/vm# cat vls-values.yaml kube1:~/vm# cat vls-values.yaml
Line 150: Line 151:
 ... ...
 </​code><​code>​ </​code><​code>​
-kube1:~/vm# helm upgrade -i vls oci://​ghcr.io/​victoriametrics/​helm-charts/​victoria-logs-single -f vls-values.yaml -n vm+kube1:~/vm# helm upgrade -i vls vm/​victoria-logs-single -f vls-values.yaml -n vm --version 0.12.0
  
 cmder$ kubectl port-forward svc/​vls-victoria-logs-single-server 9428 -n vm cmder$ kubectl port-forward svc/​vls-victoria-logs-single-server 9428 -n vm
  
 VMUI-> Log Query: kubernetes.pod_name:​ my-debian VMUI-> Log Query: kubernetes.pod_name:​ my-debian
-</​code><​code>​+</​code>​ 
 + 
 +==== Подключение Grafana ==== 
 + 
 +<​code>​
 Grafana -> Connections -> Grafana -> Connections ->
 Add new connection: VictoriaLogs ->  Add new connection: VictoriaLogs -> 
Line 165: Line 170:
  
 Builder->​ Filter: kubernetes.pod_name = my-debian Builder->​ Filter: kubernetes.pod_name = my-debian
 +</​code>​
 +
 +====== Черновик ======
 +
 +<​code>​
 +        - alert: CriticalCPU
 +          expr: sum by (kubernetes_io_hostname) (rate (container_cpu_usage_seconds_total[1m])) / sum (machine_cpu_cores) * 100 > 40
 +          for: 1m
 +          labels:
 +            severity: "​critical"​
 +          annotations:​
 +            summary: "​CriticalCPU {{ $labels.instance }}"
 +
 +        - alert: CriticalFS
 +          expr: container_fs_usage_bytes{device=~"​^/​dev/​[sv]d[a-z][1-9]$"​} / container_fs_limit_bytes * 100 > 80
 +          for: 1m
 +          labels:
 +            severity: "​critical"​
 +          annotations:​
 +            summary: "​CriticalFS {{ $labels.instance }}"
 +
 +        - alert: CriticalMEM
 +          expr: sum by (kubernetes_io_hostname) (container_memory_working_set_bytes) / sum (machine_memory_bytes) * 100 > 80
 +          for: 1m
 +          labels:
 +            severity: "​critical"​
 +          annotations:​
 +            summary: "​CriticalMEM {{ $labels.instance }}"
 </​code>​ </​code>​
сервис_victoriametrics.1742900620.txt.gz · Last modified: 2025/03/25 14:03 by val