ServerAdmin.ru
28.9K subscribers
303 photos
35 videos
13 files
2.63K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
​​Предлагаю вашему вниманию любопытный проект по мониторингу одиночного хоста с Docker - domolo. Сразу скажу, что это продукт уровня курсовой работы с каких-нибудь курсов по DevOps на тему мониторинга. Он представляет из себя преднастроенный набор контейнеров на современном стеке.

Domolo состоит из:
Prometheus вместе с Pushgateway, AlertManager и Promtail
Grafana с набором дашбордов
Loki для сбора логов с хоста и контейнеров
NodeExporter - для сбора метрик хоста
cAdvisor - для сбора метрик контейнеров
Caddy - реверс прокси для prometheus и alertmanager

Сначала подумал, что это какая-та ерунда. Не думал, что заработает без напильника. Но, на моё удивление, это не так. Всё заработало вообще сразу:
# git clone https://github.com/ductnn/domolo.git
# cd domolo
# docker-compose up -d

Идём в Grafana по адресу http://ip-хоста:3000, учётка admin / changeme. Здесь мы можем наблюдать уже настроенные дашборды на все случаи жизни. Там есть буквально всё, что надо и не надо. Loki и сбор логов тоже работает сразу же без напильника. Идём в Explore, выбираем Datasource Loki и смотрим логи.

Если вам нужно мониторить одиночный хост с контейнерами, то это прям полностью готовое решение. Запускаете и наслаждаетесь. Репозиторий domolo удобен и для того, чтобы научиться всё это дело настраивать. Все конфиги и docker-compose файлы присутствуют. На мой взгляд для обучения это удобнее, чем какая-нибудь статья или обучающее видео. Здесь всё в одном месте и гарантированно работает.

Можно разобраться, настроить под себя и, к примеру, добавить туда поддержку внешних хостов. Надо будет добавить новые внешние Datasources и какие-то метки внедрить, чтобы различать хосты и делать общие дашборды. Получится ещё одна курсовая работа.

Сам проект не развивается и не обновляется. Так что ждать от него чего-то сверх того, что там есть, не имеет смысла.

#мониторинг #grafana #docker #prometheus
​​На днях разработчики Angie анонсировали свой готовый Dashboard для мониторинга веб сервера через Prometheus и Grafana. Решил сразу его попробовать. Забегая вперёд скажу, что всё это существенно упрощает настройку мониторинга, который и так уже был на хорошем уровне в Angie. Стало просто отлично.

Напомню, что у Angie есть встроенный prometheus exporter. Включаем его так. Добавляем куда-нибудь location. Я обычно на ip адрес его вешаю в default сервер и ограничиваю доступ:

  location =/p8s {
    prometheus all;
    allow 127.0.0.1;
    allow 1.2.3.4;
    allow 4.3.2.1;
    deny all;
  }

И добавляем в секцию http:

include prometheus_all.conf;

Далее добавляем в prometheus:

scrape_configs:
- job_name: "angie"
scrape_interval: 15s
metrics_path: "/p8s"
static_configs:
- targets: ["1.2.3.4:80"]

Только убедитесь, что ваш веб сервер отдаёт метрики по http://1.2.3.4/p8s. Либо какой-то другой url используйте, который настроили.

Вот и всё. Теперь идём в свою Grafana и добавляем готовый дашборд. Вот он:

⇨  https://grafana.com/grafana/dashboards/20719-angie-dashboard

Дашборд полностью автоматизирован. Сам подхватывает все настройки из Angie. Покажу, как это работает. Допустим, вы хотите получать метрики по какому-то конкретному виртуальному хосту. Идём в него и добавляем в секцию server:

server {
server_name serveradmin.ru;
status_zone serveradmin.ru;
................
}

Перезапускаем Angie и переходим в Dashboard. В разделе HTTP Server Zones появится отдельная статистика по этому виртуальному хосту. То же самое можно сделать с отдельными location. Добавим отдельную зону в основной location и с php бэкендом:

location / {
status_zone main;
...............
}

или

location ~ \.php$ {
status_zone php;
...................
}

Идём в раздел HTTP Location Zones и смотрим там статистику по указанным location.

Статистика по бэкендам, зонам с лимитами тоже подхватывается автоматически, если они у вас настроены, и сразу видна в дашборде.

Сделано всё очень удобно. Мониторинг веб сервера настраивается максимально быстро и при этом очень функционально.

Отдельно напомню, что у Angie вся эта же статистика видна в веб интерфейсе Console Light. И так же доступна через модуль API. Я через него сделал шаблон для Zabbix с основными метриками. Шаблон по ссылке стоит рассматривать только как пример создания. Он был сделан на скорую руку. Я его у себя немного доделал, но новую версию не выкладывал. Уже не помню, какие там отличия. С выходом этого дашборда для графаны мне шаблоном для Zabbix заниматься не хочется. Довольно хлопотно всё это реализовывать в нём и не особо имеет смысл, раз уже всё сделано за нас. Графаной я и так постоянно пользуюсь в связке с Zabbix, и Prometheus тоже использую.

📌 Ссылки по теме:

⇨ Настройка панели Prometheus
⇨ Модуль API
⇨ Директива status_zone
⇨ Web Console Demo

Как по мне, возможностей бесплатного веб сервера Angie на текущий момент существенно больше, чем у бесплатного Nginx. И речь не только о мониторинге. Там есть много других удобств. Разница в функциональности тянет уже на отдельную заметку.

#angie #мониторинг #grafana
Я постоянно использую Grafana как в связке с Zabbix Server, так и с Prometheus. У неё довольно часто выходят новые версии, но я обычно не спешу с обновлением, так как нет большой нужды. Смотрю через неё простые дашборды, так что обновления обычно не приносят конкретно мне каких-то необходимых нововведений.

Очень долго использовал 7-ю версию, не обновлялся. Потом собрался с силами и обновился до 10-й. Пришлось повозиться и сделать сначала экспорт всего через API, а потом импортировать уже в новую 10-ю версию. Из-за большой разницы в версиях просто обновиться поверх старой не получилось.

Не так давно вышла очередная версия уже 11-й ветки. Там много изменений. Конкретно меня привлеки улучшения в плане оповещений (alerts), экспорт в pdf, некие действия (actions) в визуализациях. Полный список обновлений 11-й версии и недавней 11.3 смотрите по ссылкам:

What’s new in Grafana v11.0
Grafana 11.3 release

Обновление с 10-й версии прошло вообще без проблем. Конкретно у меня это выглядело так:

# docker stop grafana
# docker rm grafana
# docker pull grafana/grafana:latest
# docker run -d -p 3000:3000 --name=grafana \
-v grafana_data:/var/lib/grafana \
-e "GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource,alexanderzobnin-zabbix-app" \
grafana/grafana:latest

То есть просто удалил контейнер, обновил образ и запустил контейнер с теми же параметрами, что и предыдущий. Всё обновилось автоматически. По логам видно, что были выполнены все миграции со старой версии. Предварительно сделал снэпшот виртуалки перед обновлением.

Изменений реально много. Тут и алерты, и разные методы аутентификации, и управление пользователями, и ещё что-то. Сразу и не вспомню. Вижу, что меню слева сильно поменялось, но уже не помню, что там раньше было. Не так часто по настройкам лазил.

Если кому интересно, то я использую следующие дашборды в Grafana:

◽️Сводный дашборд активных триггеров со всех серверов Zabbix. Удобно все их открыть на одной странице. Разработчики Zabbix обещают реализовать это в рамках своего сервера, но пока такого нет. Объединить несколько серверов в дашборде Zabbix пока невозможно. Как это выглядит, можно посмотреть в моей статье на сайте. Внешний вид дашборда с триггерами с тех пор вообще не изменился.
◽️Дашборд Node Exporter Full от Prometheus для некоторых серверов
◽️Родной дашборд Angie от разработчиков.
◽️Дашборд от моего шаблона Zabbix для Linux Server.
◽️Мой сводный дашборд с личными метриками - сайты, каналы, статус компов в доме, на даче, электрокотёл, камеры и т.д.

Grafana - удобный универсальный инструмент, который позволил объединить две разнородные системы мониторинга в едином веб интерфейсе. Не приходится идти на компромиссы в выборе системы мониторинга. Какая лучше подходит, ту и используешь. А потом всё это объединяешь.

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

#grafana #мониторинг