Grafana и Prometheus
Задача - организовать отдельную вм с Debian на которой будет связка Grafana и Prometheus. Без особых изьебов. Чтоб вот просто максимально Что собственно ставим?
- Grafana - клевая и стильная система визуализации данных. Проект на гитхаб - Grafana Labs Github
- Prometheus - система сбора данных. Проект на гитхаб - Prometheus
- Prometheus Node Exporter - штука которая опрашивает метрики с операционной системы и отображает их по HTTP. Проект на гитхаб - Prometheus Node Exporter
Установка Grafana с deb-пакета
Методы описанные с установкой ключа и апдейта с репозиторием к сожалению не работают потому как в моем случае при запросе ключа я получаю:
mayekkuzu@linux-term:~$ curl https://apt.grafana.com/gpg.key Sorry, the provided token is not valid
Как оказалось в дальнейшем
С не отечественных IP ключ отображается. Понятно
Поэтому и ставить будем просто установкой deb файла. Посмотреть можно на странице Download. На момент написания это OSS 12.1.0
sudo apt update sudo apt-get install -y adduser libfontconfig1 musl wget https://dl.grafana.com/oss/release/grafana_12.1.0_amd64.deb sudo dpkg -i grafana_12.1.0_amd64.deb sudo systemctl daemon-reload sudo systemctl enable grafana-server --now
Далее открываем ip-vm:3000 и авторизовываемся под admin/admin. Далее в профиле меняем пароль на свой.
Ставим Prometheus
Здесь просто ставим два пакета через apt
sudo apt install prometheus prometheus-node-exporter
После установки сервисы запустятся автоматически, но следует проверить запуск служб командой:
mayekkuzu@grafana:~$ sudo systemctl is-enabled prometheus enabled mayekkuzu@grafana:~$ sudo systemctl is-enabled prometheus-node-exporter enabled
Так же смотрим что поднялись порты:
mayekkuzu@linux-term:~$ ss -tulpn Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process tcp LISTEN 0 100 127.0.0.1:25 0.0.0.0:* tcp LISTEN 0 4096 *:22 *:* tcp LISTEN 0 100 [::1]:25 [::]:* tcp LISTEN 0 4096 *:9100 *:* # Это Node Exporter tcp LISTEN 0 4096 *:9090 *:* # Это Prometheus
Проверяем Prometheus и Node Exporter
По умолчанию если посмотреть в конфигфаил /etc/prometheus/prometheus.yaml в конце можно увидеть в блоке scrape_configs
:
- job_name: node # If prometheus-node-exporter is installed, grab stats about the local # machine by default. static_configs: - targets: ['localhost:9100']
Что говорит о том что Prometheus уже собирает метрики с этой вм. Но долетают ли они? Давайте посмотрим curl'ом. Если отсутствует то установите sudp apt install curl
mayekkuzu@linux-term:~$ curl localhost:9100/metrics # HELP apt_autoremove_pending Apt packages pending autoremoval. # TYPE apt_autoremove_pending gauge apt_autoremove_pending 0 # HELP apt_package_cache_timestamp_seconds Apt update last run time. # TYPE apt_package_cache_timestamp_seconds gauge apt_package_cache_timestamp_seconds 1.754826140084365e+09 # HELP apt_upgrades_held Apt packages pending updates but held back. # TYPE apt_upgrades_held gauge apt_upgrades_held{arch="",origin=""} 0 # HELP apt_upgrades_pending Apt packages pending updates by origin. # TYPE apt_upgrades_pending gauge apt_upgrades_pending{arch="",origin=""} 0 ...
Теперь перейдем в GUI Prometheus ip-or-fqdn:9090. Попробуем вывести какие-нибудь данные, например node_os_version должен вывести версию операционной системы.