null

Сбор системных метрик QNAP NAS в Grafana

Стандартные наборы инструментов ОС для отображения системной статистики, зачастую не всегда могут продемонстрировать всю картину происходящего для последующего анализа данных. 
Одним из решений отслеживания состояния систем -  являются системы мониторинга. Например: Zabbix, Grafana, Kibana и т.п. 

В данной статье рассматривается запуск экспортера "node_exporter" для базы-временных рядов Prometheus в связке с Grafana, в отсутствие Golang компилятора и пакетного менджера на QNAP NAS модели TVS-2472XU-RP. Данная статья применима не только к данной модели NAS от компании QNAP, но также и другим моделям от этой компании, поддерживающим приложение для Docker контейнеризации - Container Station.

Имеется: QNAP NAS TVS-2472XU-RP с QTS версии 4.5.1 на борту, внешний Grafana и Prometheus сервер на одной машине.

Для начала необходимо настроить инернет соединение на NAS для загрузки доступных приложений в App Center, выбрав необходимый Gateway для доступа в интернет:



Далее нам необходимо открыть маркет приложений App Center, перейти в раздел Utilities, найти приложение Container Station и нажать кнопку Install под изображением его иконки:


После успешной инсталяции открываем Container Station и соглашаемся создать директорию для контейнеров /share/Container/.

Разворачивание и управление Docker контейнерами на QNAP NAS может происходить двумя способами: графически, через Container Station и по SSH используя команду docker, что является более расширенным и классическим вариантом использования Docker. Так как эта статья не рассматривает подробное использование docker, мы будем использовать первый вариант, в остальном вы можете воспользоваться Docs Docker.

Переходим в пункт Create в строке Search Images вводим "node exporter". В целом можно также ознакомиться с вариантами других доступных контейнеров, которые предложены Image Library - Docker Hub.

Нас интересует "prom/node-exporter" от пользователя prom, нажав кнопку Install, либо команда "docker pull prom/node-exporter" используя не графический вариант использования Docker.

Установив контейнер с экспортёром, необходимо выбрать пункт Containers в Conatiner Station и запустить node_exporter, после нажать на него и перейти в пункт Settings:

Можно также управлять контейнером через пункт Terminal, но для этого лучше использовать команду docker в shell.

В Settings поставьте необходимые ограничения по CPU и RAM. После нажмите "Advanced Settings >>" и выберите нужные для Вас сетевые настройки с выбором сетевого адаптера и Port Forwarding'ом (желательно стандартный 9100 порт для метрик node_exporter).

В ControlPanel -> Network & Virtual Switch отображается топология сети NAS, где можно увидеть сеть Docker и контейнер с полученым адресом в его сети. Если же Вы используете Bridge режим с направлением на Virtual Switch, то полученный по DHCP адрес контейнера:


Проверяем доступность метрик по адресу: (ip контейнера):9100/metrics


Редактируем основной конфиг Prometheus на сервере в "/etc/prometheus.yml", добавив новый таргет для сбора метрик:

scrape_configs:
  - job_name: 'System Metrics'
    static_configs:
    - targets:
       - (ip контейнера):9100

Перезагружаем и проверяем статус сервиса:
 

systemctl restart prometheus && systemctl status prometheus


Заходим на Grafana сервер, нажимаем + и выбираем Import, вводим id "1860" для dashboard и жмём Load. 1860 - ялвяется id JSON конфига "дашборда" на сайте Grafana для node_exporter. Источником для метрик, конечно же послужит в Prometheus сервер. 

В созданом dashboard выбрав адрес контейнера, можно увидеть подробные системные метрики нашего NAS: