This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
сервис_grafana [2022/02/24 14:10] val [Docker] |
сервис_grafana [2025/04/28 18:04] (current) val [Grafana dashboard] |
||
---|---|---|---|
Line 3: | Line 3: | ||
* [[https://geekflare.com/prometheus-grafana-setup-for-linux/|A Guide to Monitor Linux Server using Prometheus and Grafana]] | * [[https://geekflare.com/prometheus-grafana-setup-for-linux/|A Guide to Monitor Linux Server using Prometheus and Grafana]] | ||
* [[https://techexpert.tips/ru/grafana-ru/%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B9-%D0%BF%D0%BE-%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D0%BE-2/|Настройка уведомлений по электронной почте Grafana]] | * [[https://techexpert.tips/ru/grafana-ru/%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B9-%D0%BF%D0%BE-%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D0%BE-2/|Настройка уведомлений по электронной почте Grafana]] | ||
+ | * [[https://grafana.com/docs/grafana/next/administration/organization-preferences/?cta=...#change-grafana-ui-theme|Смена "темы"]] | ||
===== Установка ===== | ===== Установка ===== | ||
Line 9: | Line 10: | ||
* [[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]] | ||
- | ==== Debian 10/Ubuntu 20 ==== | ||
- | <code> | ||
- | # apt install -y apt-transport-https software-properties-common wget | ||
- | |||
- | # wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add - | ||
- | |||
- | # echo "deb https://packages.grafana.com/oss/deb stable main" | tee -a /etc/apt/sources.list.d/grafana.list | ||
- | |||
- | # apt update | ||
- | |||
- | # apt install grafana | ||
- | |||
- | # systemctl enable grafana-server.service | ||
- | |||
- | # systemctl start grafana-server | ||
- | </code> | ||
==== Docker ==== | ==== Docker ==== | ||
Line 35: | Line 20: | ||
# docker cp $id:/etc/grafana/ - > etc_grafana.tar | # docker cp $id:/etc/grafana/ - > etc_grafana.tar | ||
+ | # tar -xvf etc_grafana.tar -C /etc | ||
+ | или | ||
+ | # docker cp $id:/etc/grafana/ /etc/grafana/ | ||
# docker rm -v $id | # docker rm -v $id | ||
- | # tar -xvf etc_grafana.tar -C /etc | + | # 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 | ||
+ | или | ||
+ | # docker run -d -p 3000:3000 --name grafana grafana/grafana-oss | ||
- | # docker run -d -p 3000:3000 -v /etc/grafana:/etc/grafana --name grafana grafana/grafana-oss | + | # docker update --restart=always grafana |
</code> | </code> | ||
* l:admin p:admin | * l:admin p:admin | ||
* [[http://server.corpX.un:3000]] | * [[http://server.corpX.un:3000]] | ||
- | * [[http://192.168.X.10:3000]] | + | * [[http://192.168.X.10:3000]] |
- | * [[http://10.5.N.100+X:3000]] | + | |
+ | ==== Kubernetes ==== | ||
+ | |||
+ | * [[Сервис VictoriaMetrics]] | ||
+ | |||
+ | <code> | ||
+ | kube1# helm repo add grafana https://grafana.github.io/helm-charts | ||
+ | kube1# helm repo update | ||
+ | |||
+ | kube1:~/vm# cat my-grafana-values.yaml | ||
+ | </code><code> | ||
+ | datasources: | ||
+ | datasources.yaml: | ||
+ | apiVersion: 1 | ||
+ | datasources: | ||
+ | - name: victoriametrics | ||
+ | type: prometheus | ||
+ | orgId: 1 | ||
+ | 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/default | ||
+ | |||
+ | 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> | ||
+ | kube1:~/vm# helm upgrade -i my-grafana grafana/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 | ||
+ | |||
+ | cmder> kubectl -n vm port-forward svc/my-grafana 3000:80 | ||
+ | </code> | ||
===== Интеграция с Prometheus ===== | ===== Интеграция с Prometheus ===== | ||
<code> | <code> | ||
- | Configuratin->Data Source->Prometheus | + | Configuratin/Connections->Data Source->Prometheus |
URL: http://localhost:9090 | URL: http://localhost:9090 | ||
+ | http://192.168.X.10:9090 Если grafana в docker | ||
</code> | </code> | ||
Line 58: | Line 108: | ||
* [[https://grafana.com/grafana/dashboards|Official & community built dashboards]] | * [[https://grafana.com/grafana/dashboards|Official & community built dashboards]] | ||
+ | * [[https://grafana.com/grafana/dashboards/1860-node-exporter-full/|Node Exporter Full]] | ||
+ | * [[https://grafana.com/grafana/dashboards/20417-cloudnativepg/|CloudNativePG]] | ||
==== Import dashboard ==== | ==== Import dashboard ==== | ||
Line 68: | Line 120: | ||
==== Create dashboard ==== | ==== Create dashboard ==== | ||
+ | |||
+ | * !!! Не забыть сохранить !!! | ||
+ | * Лучше в folder1 (понадобится для alert) | ||
<code> | <code> | ||
- | + Create | + | + New dasboard->Add visualization |
Name: router | Name: router | ||
Add New Panel | Add New Panel | ||
- | Panel Title: FastEthernet1/0 connection to LAN | + | |
+ | Panel Title: FastEthernet0/0 connection to WAN | ||
+ | или | ||
+ | Panel Title: Port-channel1 connection to LAN | ||
+ | | ||
Query: A | Query: A | ||
- | Metrics: 8*rate(if_in_octets{ifDescr="FastEthernet1/0",instance="router"}[1m])/1000000 | + | Code |
- | Legend: in Mbps | + | Metrics: 8*rate(ifInOctets{ifDescr="FastEthernet0/0",instance="router"}[1m])/1000000 |
+ | или | ||
+ | Metrics: rate(ifOutOctets{ifDescr="Port-channel1",instance="router"}[1m])/125000 | ||
+ | Options->Legend->Custom: in Mbps | ||
Query: B | Query: B | ||
- | Metrics: 8*rate(if_out_octets{ifDescr="FastEthernet1/0",instance="router"}[1m])/1000000 | + | Code |
- | Legend: out Mbps | + | Metrics: 8*irate(ifOutOctets{ifDescr="FastEthernet0/0",instance="router"}[1m])/1000000 |
+ | или | ||
+ | Metrics: irate(ifInOctets{ifDescr="Port-channel1",instance="router"}[1m])/125000 | ||
+ | Options->Legend->Custom: out Mbps | ||
</code> | </code> | ||
===== Настройка уведомлений ===== | ===== Настройка уведомлений ===== | ||
+ | ==== Настройка модуля smtp ==== | ||
<code> | <code> | ||
# cat /etc/grafana/grafana.ini | # cat /etc/grafana/grafana.ini | ||
Line 89: | Line 156: | ||
[smtp] | [smtp] | ||
enabled = true | enabled = true | ||
- | host = mail.isp.un:25 | + | host = server.corpX.un:25 #if docker, and may be, better use ip |
- | ;host = localhost:25 | + | from_address = grafana@corpX.un |
- | from_address = grafana@server.corpX.un | + | |
ehlo_identity = server.corpX.un | ehlo_identity = server.corpX.un | ||
startTLS_policy = NoStartTLS | startTLS_policy = NoStartTLS | ||
Line 97: | Line 163: | ||
</code><code> | </code><code> | ||
# service grafana-server restart | # service grafana-server restart | ||
- | </code><code> | + | или |
- | Alerting->Notification Channels ... | + | # docker restart grafana |
+ | </code> | ||
+ | |||
+ | ==== Настройка получателей ==== | ||
+ | |||
+ | <code> | ||
+ | Alerting->Notification Channels/Contact points ... | ||
userX/Email/userX@isp.un | userX/Email/userX@isp.un | ||
+ | student/Email/student@corpX.un | ||
+ | </code> | ||
+ | ==== Настройка уведомлений ==== | ||
+ | |||
+ | === Версия 11 === | ||
+ | |||
+ | <code> | ||
+ | A: | ||
+ | Define query and alert condition -> | ||
+ | Options -> Time Range: Last 15 minutes | ||
+ | | ||
+ | B: Delete | ||
+ | |||
+ | C (можно дать другое имя, оно будет в сообщении): Set as Alert Conditions | ||
+ | Input: A | ||
+ | Function: Last | ||
+ | |||
+ | D: Threshold | ||
+ | Input: C | ||
+ | IS Above: 1 | ||
+ | </code> | ||
+ | |||
+ | === Версия 7 === | ||
+ | <code> | ||
Dashboard->Panel (name)->Edit->Alert->...-> | Dashboard->Panel (name)->Edit->Alert->...-> | ||
Evaluate every: 15s For 1m | Evaluate every: 15s For 1m | ||
WHEN avg() OF query(B,1m,now) IS ABOVE 8 | WHEN avg() OF query(B,1m,now) IS ABOVE 8 | ||
- | Send To: userX | + | Send To: userX/student |
Apply->Save Dashboard!!!! | Apply->Save Dashboard!!!! | ||
</code> | </code> |