grafana

Автор: talifa, 8 июня, 2023

Grafana будем ставить из deb-пакета:

# Ссылку на свежий пакет находим тут: https://grafana.com/grafana/download

sslverify=0

vi /etc/yum.repos.d/grafana.repo

[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

Теперь можно устанавливать:

yum install grafana

... и отвечаем Y на все запросы.

Настройка брандмауэра
По умолчанию, Grafana работает на порту 3000. Для возможности подключиться к серверу открываем данный порт в фаерволе:

firewall-cmd --permanent --add-port=3000/tcp

firewall-cmd --reload

Запуск сервиса
Разрешаем автозапуск:

systemctl enable grafana-server

Запускаем:

systemctl start grafana-server

http://172.17.10.130:3000
http://172.17.10.130:3000/dashboard/import


wget https://dl.grafana.com/oss/release/grafana_5.4.2_amd64.deb

C:\work\pscp C:\Users\ifast\downloads\grafana_5.4.2_amd64.deb root@172.17.10.130:/root/monitoring/

yum install ./grafana_5.4.2_amd64.deb

wget --no-check-certificate https://dl.grafana.com/oss/release/grafana_5.4.2_amd64.deb


systemctl stop grafana-server
systemctl daemon-reload
systemctl start grafana-server
systemctl status grafana-server
systemctl enable grafana-server


iptables -A INPUT -p tcp -m tcp --dport 3000 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 9100 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 9090 -m state --state NEW -j ACCEPT

Далее идем на порт 3000 с логином и паролем admin. Grafana сразу предложит сменить пароль. Дальше проходим незамысловатые диалоги, 
и добавляем Prometheus в качестве источника данных.

Настройка дашбордов с нуля может быть довольно трудоемким делом. К счастью, у Grafana есть каталог готовых дашбордов практически на все случаи жизни. 
Мне, например, понравился вот такой готовый дашборд для Node Exporter. Для его установки идем в диалог Import Dashboard. 
Только диалог довольно хитро спрятан в интерфейсе. У меня он открывается по следующей ссылке:

http://172.17.10.130:3000/dashboard/import
Далее копируем JSON с сайта и получаем красивую картинку вроде такой:

Grafana и дашборд Node Exporter Full

Интерфейс у Grafana поначалу кажется немного странным. По-видимому, это связано с тем, что в интерфейсе максимум места отведено под графики. 
Таким образом, большинство элементов управления представляют собой небольшие иконки, в которых первое время трудно ориентироваться. 
Но к интерфейсу быстро привыкаешь. Оглянуться не успеете, как вы начнете мастерски заполнять дашборды десятками кастомных графиков!

Заключение
Конечно же, данное кратенькое введение не претендует на полноту. 
Например, Prometheus позволяет настраивать еще и алерты, умеет интегрироваться с Kubernetes, через так называемые адаптеры данные из Prometheus можно 
складывать в аналитические базы данных (ClickHouse, ну или в PostgreSQL хотя бы), есть собственный язык запросов PromQL, в котором даже есть джоины, 
а метрики можно не только pull’ить, но и отправлять push’ем через Push Gateways.

Также нелишним будет знать некоторые особенности устройства Prometheus. В частности, по умолчанию все данные хранятся в течение 15 дней, 
метрики собираются раз в 15 секунд, а одна метрика в среднем занимает два байта на сэмпл. Обладая этой информацией, и зная количество метрик, 
можно прикинуть, сколько дискового пространства вам понадобится для их хранения. Следует также принять во внимание, что сторадж Prometheus 
не позиционируется, как супер надежный. Если вдруг у вас очень ценные метрики, рекомендуется сохранять их куда-то еще через адаптеры.

За дополнительной информацией рекомендуется обращаться к официальной документации. Подробности устройства стораджа описаны здесь. 
Если же вам очень нужна система, чтобы как Prometheus, только распределенная, обратите внимание на проект Thanos.