====== Сервис 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://grafana.com/docs/grafana/next/administration/organization-preferences/?cta=...#change-grafana-ui-theme|Смена "темы"]]
===== Установка =====
* [[https://grafana.com/docs/grafana/latest/installation/debian/|Install on Debian or Ubuntu]]
==== Docker ====
* [[Технология Docker]]
# id=$(docker create grafana/grafana-oss)
# 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 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 update --restart=always grafana
* l:admin p:admin
* [[http://server.corpX.un:3000]]
* [[http://192.168.X.10:3000]]
==== Kubernetes ====
* [[Сервис VictoriaMetrics]]
kube1# helm repo add grafana https://grafana.github.io/helm-charts
kube1# helm repo update
kube1:~/vm# cat my-grafana-values.yaml
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
kube1:~/vm# helm upgrade -i my-grafana grafana/grafana -f my-grafana-values.yaml -n vm --create-namespace
kube1# kubectl get secret --namespace vm my-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
cmder> kubectl -n vm port-forward svc/my-grafana 3000:80
===== Интеграция с Prometheus =====
Configuratin/Connections->Data Source->Prometheus
URL: http://localhost:9090
http://192.168.X.10:9090 Если grafana в docker
===== Grafana dashboard =====
* [[https://grafana.com/grafana/dashboards|Official & community built dashboards]]
* [[https://grafana.com/grafana/dashboards/1860-node-exporter-full/|Node Exporter Full]]
==== Import dashboard ====
+ Import->Import via grafana.com
prometheus-node-exporter: 1860
prometheus-blackbox-exporter: 7587
Data Source: Prometheus
==== Create dashboard ====
* !!! Не забыть сохранить !!!
* Лучше в folder1 (понадобится для alert)
+ New dasboard->Add visualization
Name: router
Add New Panel
Panel Title: FastEthernet0/0 connection to WAN
или
Panel Title: Port-channel1 connection to LAN
Query: A
Code
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
Code
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
===== Настройка уведомлений =====
==== Настройка модуля smtp ====
# cat /etc/grafana/grafana.ini
...
[smtp]
enabled = true
host = server.corpX.un:25 #if docker, and may be, better use ip
from_address = grafana@corpX.un
ehlo_identity = server.corpX.un
startTLS_policy = NoStartTLS
...
# service grafana-server restart
или
# docker restart grafana
==== Настройка получателей ====
Alerting->Notification Channels/Contact points ...
userX/Email/userX@isp.un
student/Email/student@corpX.un
==== Настройка уведомлений ====
=== Версия 11 ===
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
=== Версия 7 ===
Dashboard->Panel (name)->Edit->Alert->...->
Evaluate every: 15s For 1m
WHEN avg() OF query(B,1m,now) IS ABOVE 8
Send To: userX/student
Apply->Save Dashboard!!!!