Первичную настройку я разбирал уже в первой части так что в этой части будет меньше моментов по настройки самой Grafana и InfluxDB. Первая часть.
Вступление, или варианты решения
Для мониторинга состояния proxmoxу нас есть несколько способов решения задачи.
Использовать сам proxmoxдля отправки данных в influxdb
Использовать telegrafдля сбора данных через APIproxmox и отправки их в influxdb
Использовать telegrafдля сбора данных хоста proxmox
Фактически первые два варианта равнозначны и используют APIproxmoxкоторого достаточно для большинства задач, но в нем нет одного важного для меня показателя температура процессора. Подробнее про APIproxmoxможете почитать тут: https://pve.proxmox.com/wiki/Proxmox_VE_API
Обращаться по APIиз telegraf в моем случае я тоже не вижу смысла так как вся система у меня находится в одной локации, это было бы оправдано если нам необходимо контролировать разрыв связи или собирать данные сразу с нескольких источник.
Поэтому я буду использовать комбинацию первого и третьего варианта.
Настройка отправки данных из proxmox
Для мониторинга состояния proxmoxVEнам необходимо создать новую корзину для данных в influxDBдля этого заходим в influxDBв раздел LoadData -> Bucket
При создании есть возможность выставить как долго хранить данные, я выбрал вариант neverтак как не вижу проблем в разрастании базы на текущий момент.
Теперь необходимо создать токен доступа для корзины, который будет давать права на запись в базу.
Переходим в меню управления APIтокенами и создаем новый customtoken
Даем права на запись для созданной корзины данных.
Сохраняем себе полученный токен
Внимание кнопка копирования токена может не сработать, проверяйте перед закрытием.
Переходим в proxmox, нас интересует раздел сервер метрик.
Создаем новую запись influxDB. Указываем в поле база данных имя корзины, а в поле маркер полученный токен записи.
Проверяем что в ifluxBDпоявились данные.
Теперь нам надо еще собирать данные о температуре сервера proxmoxне зависимо от apiproxmox. Я для этого буду использовать шаблон созданный в прошлый раз для system-monitoring, он доступен в разделе telegraf.
Так как это хост система в данном случае я буду использовать пакетный вариант telegraf
Подключаемся по sshили через оболчку proxmoxв браузере и устанавливаем пакет.
Актуальные команды всегда будут доступны в официальной документации, просто удалите sudoиз команд.
Дальше нам необходимо получить нашу конфигурацию system-monitoring, для этого переходим в шаблоны telegraf открываем наш шаблон и копируем от туда токен доступа
Закрываем это окно сам файл нам не понадобится, нам нужна инструкция по установке.
Возвращаемся в оболочку proxmoxи выполняем две команды как расписано в инструкции заменив <InfluxToken> на скопированный ранее токен.
Обязательно надо передать ключ сначала отдельной командой для получения доступа к самому шаблону настроек. Но в принципе можно и просто скачать файл и отдать его telegrafкак это было с dockerвариантом.
Проверяем что данные поступают в корзину и Grafana
Обратите внимание что Grafanaдополнительно настраивать для данной корзины не надо, а для корзины proxmoxнадо.
Для этого переходим в управления токенами APIи создаем токен на чтение корзины proxmoxдля Grafana.
Подробно настройку Grafaя разбирал в прошлой публикации, тут приведу только результат настроек.
Вы можете написать сейчас и зарегистрироваться позже.
Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.
Первичную настройку я разбирал уже в первой части так что в этой части будет меньше моментов по настройки самой Grafana и InfluxDB. Первая часть.
Вступление, или варианты решения
Для мониторинга состояния proxmox у нас есть несколько способов решения задачи.
Фактически первые два варианта равнозначны и используют API proxmox которого достаточно для большинства задач, но в нем нет одного важного для меня показателя температура процессора. Подробнее про API proxmox можете почитать тут: https://pve.proxmox.com/wiki/Proxmox_VE_API
Обращаться по API из telegraf в моем случае я тоже не вижу смысла так как вся система у меня находится в одной локации, это было бы оправдано если нам необходимо контролировать разрыв связи или собирать данные сразу с нескольких источник.
Поэтому я буду использовать комбинацию первого и третьего варианта.
Настройка отправки данных из proxmox
Для мониторинга состояния proxmox VE нам необходимо создать новую корзину для данных в influxDB для этого заходим в influxDB в раздел Load Data -> Bucket
При создании есть возможность выставить как долго хранить данные, я выбрал вариант never так как не вижу проблем в разрастании базы на текущий момент.
Теперь необходимо создать токен доступа для корзины, который будет давать права на запись в базу.
Переходим в меню управления API токенами и создаем новый custom token
Даем права на запись для созданной корзины данных.
Сохраняем себе полученный токен
Внимание кнопка копирования токена может не сработать, проверяйте перед закрытием.
Переходим в proxmox, нас интересует раздел сервер метрик.
Создаем новую запись influxDB. Указываем в поле база данных имя корзины, а в поле маркер полученный токен записи.
Проверяем что в ifluxBD появились данные.
Теперь нам надо еще собирать данные о температуре сервера proxmox не зависимо от api proxmox. Я для этого буду использовать шаблон созданный в прошлый раз для system-monitoring, он доступен в разделе telegraf.
Так как это хост система в данном случае я буду использовать пакетный вариант telegraf
Подключаемся по ssh или через оболчку proxmox в браузере и устанавливаем пакет.
Подробно все расписано в документации по установке тут: https://docs.influxdata.com/telegraf/v1/install/
Обратите внимание что, работая в оболочке proxmox у нас не будет sudo если работать под root
Приведу команды установки из-под root пользователя:
curl -s https://repos.influxdata.com/influxdata-archive_compat.key > influxdata-archive_compat.key echo '393e8779c89ac8d958f81f942f9ad7fb82a25e133faddaf92e15b16e6ac9ce4c influxdata-archive_compat.key' | sha256sum -c && cat influxdata-archive_compat.key | gpg --dearmor | tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | tee /etc/apt/sources.list.d/influxdata.list apt-get update && apt-get install telegrafАктуальные команды всегда будут доступны в официальной документации, просто удалите sudo из команд.
Дальше нам необходимо получить нашу конфигурацию system-monitoring, для этого переходим в шаблоны telegraf открываем наш шаблон и копируем от туда токен доступа
Закрываем это окно сам файл нам не понадобится, нам нужна инструкция по установке.
Возвращаемся в оболочку proxmox и выполняем две команды как расписано в инструкции заменив <InfluxToken> на скопированный ранее токен.
Обязательно надо передать ключ сначала отдельной командой для получения доступа к самому шаблону настроек. Но в принципе можно и просто скачать файл и отдать его telegraf как это было с docker вариантом.
Проверяем что данные поступают в корзину и Grafana
Обратите внимание что Grafana дополнительно настраивать для данной корзины не надо, а для корзины proxmox надо.
Для этого переходим в управления токенами API и создаем токен на чтение корзины proxmox для Grafana.
Подробно настройку Grafa я разбирал в прошлой публикации, тут приведу только результат настроек.
Пример панели proxmox в Grafana
Я использовал шаблон: https://grafana.com/grafana/dashboards/15356-proxmox-cluster-flux/
Вместо заключения
Спасибо за внимание, в следующих публикациях я разберу так же способы мониторинга состояния роутеров keenetic и openwrt.