Надёжный мониторинг ваших сервисов забесплатно. Grafana Cloud Free Tier
В современном мире, где домашние сервисы и виртуальные машины играют всё более важную роль в повседневной жизни, мониторинг их состояния становится не просто полезным, а необходимым инструментом. Однако, многие пользователи сталкиваются с проблемой: как организовать эффективный мониторинг, не прибегая к сложным и дорогостоящим решениям? Ответом на этот вопрос может стать использование связки Prometheus, node_exporter и Grafana Free Tier.
Grafana Free Tier предлагает уникальные преимущества, которые делают её идеальным выбором для мониторинга домашних инфраструктур. Во-первых, это доступ к глобальной платформе Grafana Cloud, которая предоставляет надёжное и масштабируемое решение для хранения и визуализации метрик. Вы получаете возможность использовать мощные инструменты Grafana без необходимости развёртывания и поддержки собственного сервера.
Во-вторых, Grafana Free Tier позволяет вам получить персональный адрес для вашей панели мониторинга, что делает доступ к данным удобным и безопасным. Вы можете легко делиться своими дашбордами с коллегами или друзьями, не беспокоясь о конфиденциальности.
Надёжность — ещё один ключевой аспект. Grafana Cloud обеспечивает высокую доступность и устойчивость к сбоям, что особенно важно для домашних пользователей, которые не всегда могут оперативно реагировать на проблемы. Кроме того, встроенные механизмы алертинга позволяют вам своевременно получать уведомления о критических изменениях в работе ваших сервисов, будь то повышенная загрузка процессора, нехватка памяти или сбои в работе сетевых интерфейсов.
Grafana Free Tier кроме самой Grafana предоставляет возможность хранения 10_000 метрик давностью до 14-ти дней, а так же по 50 гигабайтов логов, трейсов и профилей.
В этой статье мы подробно рассмотрим, как настроить и использовать Grafana Free Tier для мониторинга и сбора логов виртуальной машины Linux.
Grafana Cloud
Начнём с того, что зарегистрируемся в Grafana Cloud, выпустим необходимые API токены и получим эндпоинты, в которые будем пушить наши метрики и логи.
- Заходим на https://grafana.com/auth/sign-in/, регистрируемся, подтверждаем почту, выбираем название для Grafana стэка. Может потребоваться внп.
- Заходим на страницу своего аккаунта - grafana.com/orgs/%your_stack_name%
- Переходим в раздел стэка, в котором перечислены все инстансы хранилищ. Нас интересуют Prometheus для метрик и Loki для логов.
- Нажимаем Send metrics у Prometheus, листаем до раздела Sending metrics with Prometheus.
- Генерируем токен, сохраняем сниппет конфига в блокнот.
- Аналогично для Loki. Листаем до Sending Logs to Grafana Cloud using Promtail.
- Генерируем токен, сохраняем сниппет.
На этом пока всё с Grafan-ой. Переключимся к нашей виртуальной машине, метрики которой мы хотим собирать.
Prometheus и node_exporter
Разберём push схему доставки метрик, в которой адресатом будет глобальный инстанс Prometheus на стороне Grafana Cloud.
В этой схеме контейнер node_exporter-а собирает метрики о нашей vm и предоставляет эндпоинт /metrics. Контейнер prometheus-а регулярно опрашивает этот эндпоинт (скрэйпит, от "scrape") и пушит полученной в удалённый инстанс Prometheus. Контейнер promtail в свою очередь самостоятельно последовательно читает логи (тэйлит, от "tail") и пушит все новые строки в удалённый эндпоинт Loki.
Инструкция подразумевает, что у вас установлен docker compose и вы имеете начальное представление о его использовании. Как установить docker - Install Docker Engine. В отдельной папке на виртуальной машине, к примеру /opt/prometheus, создайте файл compose.yml со следующим содержимым
Рядом создайте файл prometheus.yml со следующим содержимым
Запустим наш docker compose стэк командой
Список запущенных контейнеров можно увидеть, выполнив команду
По адресу http://%vm_ip%:9100/metrics можно увидеть в каком формате node_exporter предоставляет метрики. А по адресу http://%vm_ip%:9090/targets можно увидеть какие источники скрэйпит контейнер prometheus-а.
Если всё прошло успешно, то контейнер prometheus начал отправлять наши метрики в Grafana Cloud. Давайте убедимся в этом.
- Откройте страницу вашего Grafana стэка по адресу %your_stack_name%.grafana.net.
- Перейдите в раздел Explore
- Среди источников данных выберите grafanacloud-%yout_stack_name%-prom
- В меню выбора метрик должен заполниться список. Найдите, к примеру, go_info. Далее в лэйблах выберите job, значение homelab-metrics
Наши метрики доставляются до Grafana Cloud и теперь надёжно храняться интервалом 14 дней и доступны из любой точки земного шара. Тем более нам не пришлось открывать никакие порты на стороне нашей домашней сети тем самым подвергая её ненужной опасности.
Больше информации про Node Exporter и Grafana Cloud - Monitoring a Linux host with Prometheus, Node Exporter, and Docker Compose | Grafana Cloud documentation
Давайте рассмотрим способ визуализировать наши метрики. Мы же всё-таки в Grafana Cloud.
Node Exporter Full dashboard
В разделе Dashboard нам будет предложено создать наш первый дашборд соответствующей кнопкой. Не отказываемся.
Импортируем готовый дашборд, т.к. комьюнити уже решило проблему визуализации метрик от node_exporter-а
Укажем ID импортируемого дашборда - 1860
В качестве источника данных выбираем Prometheus
Готово! Наш дашборд во всей красе.
Теперь дело за логами.
Promtail
Контейнер promtail, как уже говорилось, будет читать все новые строки файлов логов и отправлять их в удалённый инстанс Loki.
В нашей папке с конфигами compose.yml и prometheus.yml создадим новый файл с именем promtail-config.yaml и следующим содержимым. На самом деле, это кусок конфига, что мы сохранили из кабинета Grafana.
Отредактируем файл compose.yml следующим образом
Перезапустим docker compose командой
Проверить, что логи начали поступать можно в разделе Explore / Logs нашего Grafana стэка.
Больше информации про Loki - Grafana Loki | Grafana Loki documentation. Про logrotate - Promtail and Log Rotation
Заключение
Результатом наших действий стал дашборд в Grafana Cloud, который доступен по своему уникальному адресу из любой точки мира. У нас есть возможность гибко настраивать систему оповещений, чтобы оперативно (или неочень) реагировать на аварии с нашими сервисами.
Кроме того, теперь мы собираем в надёжное хранилище и логи. К ним без проблем можно добавить логи nginx или, например, логи docker контейнеров. Всё, на что хватит вашей фантазии.
10_000 метрик должно спокойно хватать для нужд домашней лаборатории.
Grafana Cloud в своей бесплатной версии предоставляет очень заманчивые возможности для self-hosted комьюнити и стартапов, которые позволяют закрыть большой пласт потребностей в мониторинге и оповещении.