Настройка мониторинга TrueNAS с помощью Grafana и Graphite в KubernetesДомашний сервер 

Настройка мониторинга TrueNAS с помощью Grafana и Graphite в Kubernetes

Попробуем настроить мониторинг конфигурации TrueNAS с помощью Grafana для получения информации о VDEV и оборудовании, на котором работает NAS. Далее описана конфигурация для мониторинга TrueNAS с помощью Grafana.

Обзор конфигурации

Краткий обзор сборки: на TerraMaster F8 SSD Plus была переустановлена TrueNAS, для данных используются (6) накопителей Samsung 980 Pro 2TB NVMe. Конфигурация отличается от стандартной: созданы (3) зеркала из двух дисков для VDEV. Proxmox хранит данные на всех VDEV в пуле, поэтому пул отображается как единое хранилище. Данная конфигурация обеспечивает более высокую производительность, чем размещение всех дисков в конфигурации RAIDZ. Ёмкость при этом меньше, но приоритетом была максимальная производительность.

Были выполнены замеры производительности в тестовой ВМ, работающей в Proxmox и использующей хранилище TrueNAS, предоставленное через новый плагин хранилища TrueNAS. Замеры показали высокую отзывчивость и производительность хранилища. Однако важна реальная производительность и поведение при большом количестве рабочих нагрузок.

TrueNAS имеет встроенную систему отчётов с экспортером Graphite. Требовалось настроить экспорт метрик в Graphite и отображение соответствующих метрик окружения в Grafana.

Почему использованы Grafana и Graphite

TrueNAS имеет конфигурацию отчётов, которая нативно интегрируется с Graphite. Это очевидный выбор с точки зрения простоты настройки. Метрики отправляются в приёмник Carbon в Graphite, который сохраняет их. Graphite выступает в роли источника данных, к которому Grafana обращается для отображения и построения графиков.

В дальнейшем возможно внедрение Prometheus для TrueNAS. Для этого потребуется промежуточная конвертация из Graphite в Prometheus. Prometheus является более современным решением для агрегации данных. Однако на первом этапе достаточно настроить нативный экспорт TrueNAS и оценить предоставляемые данные. Это хорошая конфигурация для мониторинга TrueNAS с помощью Grafana.

Где развёрнуть Grafana и Graphite

Экземпляр Grafana можно развернуть в кластере Kubernetes на Talos Linux и использовать для мониторинга многих других компонентов домашней лаборатории. Graphite может быть добавлен прямо в кластер Kubernetes. Kubernetes хорошо подходит для запуска Grafana, Prometheus, Graphite и других систем мониторинга.

Grafana, работающая внутри моего кластера talos linux kubernetes
Grafana, работающая в кластере Kubernetes на Talos Linux

Обзор развёртывания стека мониторинга в Kubernetes

Grafana развёрнута в кластере Kubernetes на Talos Linux. В этом же кластере запущен Graphite. Это упрощает соединение между ними, поскольку Grafana может подключаться к источнику данных внутри сети Kubernetes.

Запуск graphite в talos linux kubernetes в домашней лаборатории
Graphite, работающий в кластере Kubernetes на Talos Linux в домашней лаборатории

Оба этих решения используют постоянные тома на хранилище Ceph RDB, входящем в состав решения Ceph, развёрнутого в кластере Proxmox. Было назначено следующее:

Оба веб-интерфейса опубликованы через Traefik в кластере Kubernetes. Сервисы направляют трафик в поды с использованием доменных имён и терминации SSL-сертификатов. Трафик идёт по нескольким путям. TrueNAS отправляет данные на внутренний IP-адрес 10.1.149.240:2003. Этот порт является приёмником Carbon в Graphite. Затем Grafana запрашивает веб-сервис Graphite через сеть Kubernetes.

При настройке подключения от Grafana к Graphite используется внутреннее DNS-имя Kubernetes для Graphite:

Подключение grafana к graphite в kubernetes
Подключение Grafana к Graphite в Kubernetes для мониторинга TrueNAS с помощью Grafana

Это наиболее эффективный путь, поскольку он избавляет Grafana от необходимости обращаться к публичному имени хоста Graphite и возвращаться через Traefik, когда оба приложения уже имеют кластерные сервисы. После этого была запущена проверка Save and Test, которая прошла успешно, как показано ниже.

Сохранение и проверка конфигурации в grafana для graphite
Сохранение и проверка конфигурации в Grafana для Graphite

Настройка экспортера в TrueNAS

Со стороны TrueNAS настройка интеграции с Graphite достаточно проста. Диалоговое окно конфигурации довольно понятно. В интерфейсе TrueNAS нужно перейти в раздел Reporting > Exporters и добавить новый экспортер.

Ниже приведены настройки, которые были введены для данного окружения; они дают представление о том, что необходимо настроить:

Настройка Значение
Тип Graphite
Включено Да
IP-адрес назначения 10.1.149.240
Порт назначения 2003
Префикс truenas
Пространство имён truenas
Обновлять каждые 10 секунд
Соответствующие графики *
Настройки graphite exporter в truenasНастройки graphite exporter в truenas
Настройки экспортера Graphite в TrueNAS

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

После сохранения конфигурации экспортера прошло немного времени, прежде чем было проверено дерево метрик. Потребовалось некоторое время, но в конечном итоге TrueNAS начал отправлять данные, и появилось дерево truenas.

Просмотр метрик в graphite для truenas
Просмотр метрик в Graphite для TrueNAS

В импортированной панели Grafana не появилось данных

Чтобы не изобретать велосипед, было решено обратиться к панелям, доступным в Grafana. Выбор остановился на панели Grafana 20439, поскольку она создана для Graphite и Grafana. Панель загрузилась без проблем.

Импорт дашборда сообщества для truenas и graphite
Импорт панели сообщества для TrueNAS и Graphite

Но была замечена проблема. Панели были пустыми. Метрики были видны в Graphite, поэтому было ясно, что данные туда попадают. Предположительно, дело было в путях, которые ожидались.

<Отсутствие данных на дашборде из-за несоответствия путей
На панели не отображались данные из-за несоответствия путей

Действительно, при проверке импортированной панели оказалось, что она ожидает пути вида:

  • TrueNAS.*.zfs.arc_size.arcsz
  • TrueNAS.*.cpu.cpu0.idle

Экспортер отправлял пути в разделе truenas.truenas, включая truenas_arcstats и truenas_cpu_usage. В итоге было два различия. Во-первых, панель ожидала TrueNAS с заглавных букв (напомним, Linux чувствителен к регистру), а префикс был в нижнем регистре. Во-вторых, имена графиков на панели были рассчитаны на другую структуру метрик TrueNAS. Текущий экспорт использовал имена вроде truenas_pool, truenas_meminfo и truenas_disk_stats. Старая панель ожидала другие.

Поэтому было выполнено переназначение запросов панели на отправляемые метрики.

  • Панели пула используют: truenas_pool.usage
  • Панели CPU используют truenas_cpu_usage
  • Активность дисков использует truenas_disk_stats
  • Панели ARC используют truenas_arcstats

Также были сопоставлены доступные серии температуры дисков, системной нагрузки, времени работы и сети. Самый быстрый способ устранить неполадки панели с сообщением No data — вернуться к Explore в Graphite. Если графики в Graphite заполняются, то, вероятно, просто есть несоответствие в одной из описанных областей.

Показание ARC 12,7 ПБ было проблемой единиц измерения

Ещё одна странность, обнаруженная после переназначения запросов панели, заключалась в том, что панели отображали странные числа. Особенно выделялся размер ZFS ARC. Он отображался как 12,7 ПБ. Такой объём был бы желателен, но, к сожалению, значение должно было составлять около 12 ГБ. В NAS физически только 16 ГБ ОЗУ.

Было обнаружено, что панель форматирует это значение так, как будто оно представлено в мегабайтах, а не в байтах. Это существенно завышало итог. Поэтому в Grafana была установлена единица измерения «байты», и результат вернулся к примерно 12 ГБ.

Аномалии в отображаемых данных после исправления путей в запросе для метрик truenas
Аномалии в отображаемых данных после исправления путей в запросе при попытке мониторинга TrueNAS с помощью Grafana

Рекомендуется, прежде чем полагаться на информацию, отображаемую в Grafana, свериться с данными внутри TrueNAS, чтобы убедиться в правильности форматирования на панели. Это касается таких панелей, как ёмкость пула, установленная память, температура дисков и пропускная способность сети, — лишь некоторых, которые стоит проверить.

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

Дашборд корректно отображается и правильно форматирует информацию в grafana
Панель отображается корректно и правильно форматирует информацию в Grafana

Ниже та же панель прокручена вниз, и здесь видны сетевые статистики.

Дополнительные метрики, включая сетевые, для truenas в grafana
Дополнительные метрики, включая сетевые, для TrueNAS в Grafana

За какими показателями следить для хранилища Proxmox?

Лучшее, что могут дать графики, — это объяснить, что происходит с виртуальными машинами, если наблюдается замедление или задержки в производительности. Показатели, за которыми стоит следить:

  • Использование пула
  • Чтение и запись на диск
  • Время занятости
  • Температуры
  • Поведение и тенденции ZFS ARC

Использование этого для мониторинга TrueNAS с помощью Grafana — отличный способ отслеживать динамику таких значений, которую можно не заметить при периодическом просмотре панели TrueNAS. Наличие исторических данных — хороший способ контролировать состояние хранилища в TrueNAS.

Заключение

В целом, это было хорошее упражнение по мониторингу TrueNAS с помощью Grafana и экспорту данных из TrueNAS. При повторении этой настройки процесс прошёл бы более гладко, поскольку некоторые подводные камни уже были бы знакомы заранее. Следующий шаг — разместить Prometheus в качестве промежуточного звена для более современного решения по экспорту метрик в Grafana.

Источник на английском языке

Читайте про Свой умный дом локально:
🌐 Сайт
📱 Телеграм
📰 Дзен

Даже просто подбор, перевод и оформление статей требуют времени. А самостоятельный обзор устройств требует еще и финансовых вложений. Если Вы хотите больше обзоров, Вы можете помочь автору.

Похожие материалы

Оставить комментарий