This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
сервис_grafana [2026/04/19 13:01] val [Kubernetes] |
сервис_grafana [2026/06/10 11:59] (current) val [Kubernetes] |
||
|---|---|---|---|
| Line 9: | Line 9: | ||
| * [[https://grafana.com/docs/grafana/latest/installation/debian/|Install on Debian or Ubuntu]] | * [[https://grafana.com/docs/grafana/latest/installation/debian/|Install on Debian or Ubuntu]] | ||
| + | * [[https://github.com/grafana/grafana/releases]] | ||
| Line 17: | Line 18: | ||
| <code> | <code> | ||
| - | # id=$(docker create grafana/grafana-oss) | + | # docker run -d -p 3000:3000 --name grafana grafana/grafana-oss:13.0.1 |
| - | # docker cp $id:/etc/grafana/ - > etc_grafana.tar | ||
| - | # tar -xvf etc_grafana.tar -C /etc | ||
| или | или | ||
| + | |||
| + | # id=$(docker create grafana/grafana-oss:13.0.1) | ||
| + | |||
| # docker cp $id:/etc/grafana/ /etc/grafana/ | # docker cp $id:/etc/grafana/ /etc/grafana/ | ||
| # docker rm -v $id | # docker rm -v $id | ||
| - | # docker run -d -p 3000:3000 -v /etc/grafana:/etc/grafana --name grafana grafana/grafana-oss:7.5.4-ubuntu | + | # docker run -d -p 3000:3000 -v /etc/grafana:/etc/grafana --name grafana grafana/grafana-oss:13.0.1 |
| - | или | + | |
| - | # docker run -d -p 3000:3000 -v /etc/grafana:/etc/grafana --name grafana grafana/grafana-oss | + | |
| - | или | + | |
| - | # docker run -d -p 3000:3000 --name grafana grafana/grafana-oss | + | |
| # docker update --restart=always grafana | # docker update --restart=always grafana | ||
| Line 44: | Line 42: | ||
| <code> | <code> | ||
| - | kube1# ###helm repo add grafana https://grafana.github.io/helm-charts | ||
| kube1# helm repo add grafana-community https://grafana-community.github.io/helm-charts | kube1# helm repo add grafana-community https://grafana-community.github.io/helm-charts | ||
| kube1# helm repo update | kube1# helm repo update | ||
| - | kube1:~/vm# cat my-grafana-values.yaml | + | kube1:~/vm# cat grafana-values.yaml |
| </code><code> | </code><code> | ||
| - | datasources: | + | #env: |
| - | datasources.yaml: | + | # HTTP_PROXY: "http://gate.isp.un:3128" |
| - | apiVersion: 1 | + | # HTTPS_PROXY: "http://gate.isp.un:3128" |
| - | datasources: | + | # NO_PROXY: "localhost,127.0.0.1,.svc,.cluster.local,vmsingle-victoria-metrics-single-server,vls-victoria-logs-single-server" |
| - | - name: victoriametrics | + | |
| - | type: prometheus | + | |
| - | orgId: 1 | + | |
| - | url: http://vmsingle-victoria-metrics-single-server:8428 | + | |
| - | access: proxy | + | |
| - | isDefault: true | + | |
| - | updateIntervalSeconds: 10 | + | |
| - | editable: true | + | |
| - | dashboardProviders: | + | persistence: |
| - | dashboardproviders.yaml: | + | enabled: true |
| - | apiVersion: 1 | + | storageClassName: "longhorn" |
| - | providers: | + | accessModes: |
| - | - name: 'default' | + | - ReadWriteOnce |
| - | orgId: 1 | + | size: 2Gi |
| - | folder: '' | + | |
| - | type: file | + | |
| - | disableDeletion: true | + | |
| - | editable: true | + | |
| - | options: | + | |
| - | path: /var/lib/grafana/dashboards/default | + | |
| - | dashboards: | + | #downloadDashboards: |
| - | default: | + | # env: |
| - | victoriametrics: | + | # HTTP_PROXY: "http://gate.isp.un:3128" |
| - | gnetId: 10229 | + | # HTTPS_PROXY: "http://gate.isp.un:3128" |
| - | revision: 22 | + | # NO_PROXY: "localhost,127.0.0.1,.svc,.cluster.local,vmsingle-victoria-metrics-single-server,vls-victoria-logs-single-server" |
| - | datasource: victoriametrics | + | |
| - | kubernetes: | + | datasources: |
| - | gnetId: 14205 | + | datasources.yaml: |
| - | revision: 1 | + | apiVersion: 1 |
| - | datasource: victoriametrics | + | datasources: |
| - | node-exporter: | + | - name: victoriametrics |
| - | gnetId: 1860 | + | type: prometheus |
| - | revision: 37 | + | orgId: 1 |
| - | datasource: victoriametrics | + | url: http://vmsingle-victoria-metrics-single-server:8428 |
| + | access: proxy | ||
| + | isDefault: true | ||
| + | updateIntervalSeconds: 10 | ||
| + | editable: true | ||
| + | |||
| + | dashboardProviders: | ||
| + | dashboardproviders.yaml: | ||
| + | apiVersion: 1 | ||
| + | providers: | ||
| + | - name: 'default' | ||
| + | orgId: 1 | ||
| + | folder: '' | ||
| + | type: file | ||
| + | disableDeletion: true | ||
| + | editable: true | ||
| + | options: | ||
| + | path: /var/lib/grafana/dashboards | ||
| + | |||
| + | dashboards: | ||
| + | default: | ||
| + | victoriametrics: | ||
| + | gnetId: 10229 | ||
| + | revision: 22 | ||
| + | datasource: victoriametrics | ||
| + | kubernetes: | ||
| + | gnetId: 14205 | ||
| + | revision: 1 | ||
| + | datasource: victoriametrics | ||
| + | node-exporter: | ||
| + | gnetId: 1860 | ||
| + | revision: 37 | ||
| + | datasource: victoriametrics | ||
| </code><code> | </code><code> | ||
| - | kube1:~/vm# ###helm upgrade -i my-grafana grafana/grafana -f my-grafana-values.yaml -n vm --create-namespace | + | kube1:~/vm# helm upgrade -i grafana grafana-community/grafana -f grafana-values.yaml -n vm --create-namespace --version 12.1.1 |
| - | kube1:~/vm# helm upgrade -i my-grafana grafana-community/grafana -f my-grafana-values.yaml -n vm --create-namespace | + | |
| - | kube1# kubectl get secret -n vm my-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo | + | kube1# kubectl get secret -n vm grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo |
| - | cmder> kubectl -n vm port-forward svc/my-grafana 3000:80 | + | cmder> kubectl -n vm port-forward svc/grafana 3000:80 |
| </code> | </code> | ||
| - | ===== Интеграция с Prometheus ===== | + | * Может понадобится удалить метки: systemd_service_name!="", name=~"^k8s_.*", |
| + | ===== Подключение Prometheus ===== | ||
| <code> | <code> | ||
| Line 114: | Line 129: | ||
| * [[https://grafana.com/grafana/dashboards/20417-cloudnativepg/|CloudNativePG]] | * [[https://grafana.com/grafana/dashboards/20417-cloudnativepg/|CloudNativePG]] | ||
| - | ==== Import dashboard ==== | + | ==== Импорт готовых dashboard ==== |
| <code> | <code> | ||
| + Import->Import via grafana.com | + Import->Import via grafana.com | ||
| prometheus-node-exporter: 1860 | prometheus-node-exporter: 1860 | ||
| prometheus-blackbox-exporter: 7587 | prometheus-blackbox-exporter: 7587 | ||
| + | prometheus-apache-exporter: 17898 | ||
| Data Source: Prometheus | Data Source: Prometheus | ||
| </code> | </code> | ||
| - | ==== Create dashboard ==== | + | ==== Создание dashboard ==== |
| * !!! Не забыть сохранить !!! | * !!! Не забыть сохранить !!! | ||
| Line 173: | Line 189: | ||
| <code> | <code> | ||
| - | Alerting->Notification Channels/Contact points ... | + | Alerting->Notification configuration/Contact points ... |
| - | userX/Email/userX@isp.un | + | |
| student/Email/student@corpX.un | student/Email/student@corpX.un | ||
| </code> | </code> | ||
| Line 198: | Line 213: | ||
| </code> | </code> | ||
| - | === Версия 7 === | ||
| <code> | <code> | ||
| - | Dashboard->Panel (name)->Edit->Alert->...-> | + | * A (Query): Сам запрос к базе данных (Prometheus/Loki). |
| - | Evaluate every: 15s For 1m | + | * B (Reduce): Превращение временного ряда в одно число (например, среднее за 5 минут). |
| - | WHEN avg() OF query(B,1m,now) IS ABOVE 8 | + | * C (Threshold): Сравнение этого числа с порогом. |
| - | Send To: userX/student | + | |
| - | + | ||
| - | Apply->Save Dashboard!!!! | + | |
| </code> | </code> | ||