По мере того, как я продолжал учиться и создавать свою лабораторную среду Proxmox, я рассматривал различные варианты, чтобы иметь возможность более точно отслеживать различные показатели в моей лаборатории. В конце концов, я решил, что намерен запустить Grafana.
Еще до моего перехода на Proxmox Grafana всегда казалась привлекательной. Поскольку мой работодатель также использовал Grafana в производственных условиях, это было еще одним стимулом для запуска этого проекта, чтобы настроить его дома.
К счастью для меня, а также для вас, если вы используете Proxmox, процесс настройки оказался немного проще, чем я предполагал ранее, из-за готовой интеграции InfluxDB в Proxmox.
Давайте начнем!
Установка InfluxDB и Grafana
Для начала вам понадобится хост, на котором работает docker, а также docker-compose. Предполагая, что эти предварительные требования выполнены, используйте следующий файл docker-compose для запуска InfluxDB и Grafana:
version: "3"
services:
grafana:
image: grafana/grafana
container_name: grafana_container
restart: always
ports:
- 3000:3000
networks:
- monitoring_network
volumes:
- grafana-volume:/var/lib/grafana
influxdb:
image: influxdb
container_name: influxdb_container
restart: always
ports:
- 8086:8086
- 8089:8089/udp
networks:
- monitoring_network
volumes:
- influxdb-volume:/var/lib/influxdb
networks:
monitoring_network:
volumes:
grafana-volume:
external: true
influxdb-volume:
external: true
Вам также потребуется создать тома Docker, о которых говорилось выше:
docker volume create influxdb-volume
docker volume create grafana-volume
А также создание сети мониторинга, которую Grafana и InfluxDB будут использовать совместно:
docker network create monitoring_network
После этого нужно просто запустить docker-compose up -d, чтобы запустить оба контейнера.
Настройка InfluxDB
Как только контейнеры будут подключены к сети, перейдите по ссылке <hostname>:8086, укажите название организации и имя корзины. Для своих целей я установил название организации на Homelab, а имя корзины на proxmox. Запишите их, так как они понадобятся вам для дальнейших шагов.
После настройки вам нужно будет посетить следующий экран во вкладке «Данные», а затем нажать на вкладку «Токены API» вверху:
Здесь у вашего пользователя должен быть токен, созданный с именем пользователя (которое было определено на экране настройки). Нажмите на него, а затем скопируйте свой токен, так как он понадобится на следующем шаге.
Настройка InfluxDB в Proxmox
Теперь, когда вы создали InfluxDB и скопировали токен API, пришло время вернуться к вашему экземпляру Proxmox:
Щелкнув вкладку «Центр обработки данных» слева, вы сможете посетить раздел «Сервер метрик» на панели настроек. Здесь нажмите «Добавить», а затем выберите «InfluxDB».
Здесь вам нужно будет подставить все поля с соответствующими значениями, которые мы собрали ранее.
В поле Name вы можете выбрать любое имя, которое вам нравится. Server должен быть заполнен либо IP, либо DNS-именем хоста, на котором работает ваш сервер InfluxDB. Port должен соответствовать порту контейнера InfluxDB, который вы создали на предыдущем шаге, и должен быть 8086. Protocol должен быть переключен с UDP на HTTP если вы не используете SSL, в этом случае это должен быть HTTPS.
Что касается Organization и Bucket, то это просто значения, которые вы определили при создании экземпляра InfluxDB.
Наконец, для Token просто вставьте токен вашего пользователя из InfluxDB в это поле.
Подтверждение потока данных
Прежде чем мы продолжим, давайте вернемся в InfluxDB и убедимся, что данные поступают в нее из Proxmox.
Чтобы убедиться, что ваши данные передаются правильно, нажмите на вкладку «Исследовать» слева и изучите различные варианты в вашем ведре proxmox. Если они выглядят похоже на то, что показано выше, все должно быть готово. Если вы не видите данные, аналогичные показанным выше, вернитесь к предыдущему шагу и убедитесь, что значения верны.
Настройка Grafana
Теперь пришло время посетить Grafana на <hostname>:3000. Войдя в систему с учетными данными admin/admin по умолчанию и выбрав новый пароль, перейдите на вкладку «Конфигурация», показанную выше, и выберите «Источники данных»
Выберите "Добавить источник данных"
Выберите InfluxDB из предоставленного списка
После того, как вы перейдете на страницу настройки InfluxDB, первое, что вам нужно будет сделать, это изменить язык запроса с "InfluxQL" на "Flux". "Flux" - это новый язык, используемый InfluxDB, и, хотя он все еще находится в бета-версии, он был полностью стабильным для меня.
Далее идет остальная часть конфигурации InfluxDB. Для начала укажите имя хоста или IP-адрес и порт InfluxDB в поле "URL", отключите "Базовую аутентификацию", включите "Пропустить проверку TLS" и, наконец, заполните "InfluxDB Details" теми же данными, которые вы использовали ранее для настройки InfluxDB на Proxmox.
После этого выберите «Сохранить и протестировать». Если все было подключено правильно, вам будет предоставлена зеленая галочка и сообщение, указывающее, сколько корзин Grafana нашла в вашем экземпляре InfluxDB.
Запрос и визуализация данных в Grafana
Теперь, когда Proxmox загружается в InfluxDB, а InfluxDB связана с Grafana, мы готовы начать запрашивать данные из базы данных и визуализировать их с помощью Grafana!
Поскольку мы выбрали язык Flux, вы захотите использовать эту панель управления, которую кто-то уже создал, чтобы визуализировать свои данные.
На сайте для этой готовой страницы просто нажмите, чтобы скопировать ID для панели управления
Затем в Grafana наведите курсор на значок плюса и выберите «Импорт», как показано выше
Вставьте ранее скопированный ID и выберите «Загрузить» рядом с полем, которое вы вставили
Наконец, вы можете настроить несколько параметров для этой панели мониторинга. Обязательно установите выпадающее меню внизу, чтобы использовать экземпляр InfluxDB. В остальном я решил оставить оставшиеся значения по умолчанию.
Самый последний шаг для того, чтобы настроить и запустить панель мониторинга, — это выбрать тип корзины, как показано выше. Убедитесь, что выбрано ваше ведро proxmox из InfluxDB.
Заключение
Теперь у вас должна быть рабочая панель управления Grafana! Это определенно был один из самых захватывающих проектов, которые я завершил. Я всегда хотел запустить Grafana, но до сих пор не успел это сделать.
Я обнаружил, что существует бесчисленное множество полезных метрик, предоставляемых панелью мониторинга, и с нетерпением жду возможности изучить другие панели мониторинга в будущем