Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1
RSS
unifi_exporter — экспортер метрик Prometheus для устройств Ubiquiti UniFi, UniFi Network
 
Всем привет! Извиняюсь заранее, если это не тот раздел для такой темы. Недавно начал экспериментировать с Prometheus дома и решил попробовать создать экспортер метрик для API контроллера Ubiquiti UniFi. Библиотека-клиент, которая это обеспечивает, тоже доступна на GitHub. Уже пару недель слежу за несколькими площадками через это решение — очень помогает отслеживать тенденции по расходу трафика и загрузке точек доступа. Надеюсь, и вам будет полезно! Вот небольшой взгляд на дашборд, который я собрал в Grafana с помощью этого экспортера!
 
Я понимаю, что это сообщение довольно старое, но оставлю комментарий для справки. Метрики Prometheus с суффиксом «total» обычно являются счётчиками (https://prometheus.io/docs/concepts/metric_types/#counter), а это значит, что они могут сбрасываться. Вместо использования функции sum() вам скорее всего стоит применять rate() или irate(), чтобы получить скорость за определённый промежуток времени, либо просто использовать сырую метрику, например, unifi_stations_received_bytes_total{site="SiteA",hostname="abbaZaba-Phone"}.
 
Значения метрик TX/RX, похоже, указаны в байтах, но у меня возникают проблемы с получением точного накопительного значения передачи данных в Prom/Grafana. Например, я пытаюсь найти общее количество принятых байтов (RX) для одного хоста за определённый период в Grafana. Для панели SingleStat я использую такой запрос: sum(unifi_stations_received_bytes_total{site="SiteA",hostname="abbaZaba-Phone"}). Я выставляю `Unit` как `bytes` и `Stat` — total, но полученное значение сильно отличается, например: 536. Я знаю, каким должно быть значение по данным Unifi Controller: 142MB. Наверное, я упускаю что-то очевидное. Есть ли кто-то, кто уже настраивал подобные дашборды в Grafana и может помочь?
 
Изменения были слиты в ветку master. Вы сможете скачать последнюю версию master и собрать бинарник. Если нужна помощь с сборкой — могу помочь, просто скажите, в какой среде вы планируете запускать. https://github.com/mdlayher/unifi_exporter
 
У меня проблемы с экспортером в версии 5.5, так же как ты описал. Не могу найти ссылку на твой pull request. Не мог бы ты подсказать, где её можно найти?
 
Мой PR можно посмотреть здесь: Если вы возьмёте этот коммит и соберёте проект, он будет работать с самой свежей версией API.
 
Вам нужно исправить свой gopath или убедиться, что код, который вы компилируете, находится в этом пути, например: /usr/local/go/src/. Также имейте в виду, что этот экспортер некорректно работает с ветками 5.5.x контроллера unifi. Я скоро отправлю pull request с исправлением. Значения, возвращаемые API unifi, нельзя сохранить в int64.
 
@mdlayher

Можешь немного подробнее объяснить, как это установить? Я запутался в процессе сборки и не могу понять, как правильно собрать из твоего исходного кода с github.

sysadmin@prometheus-srv:~/docker/unifi_exporter$ make  
go build ./cmd/unifi_exporter  
cmd/unifi_exporter/main.go:13:2: cannot find package "github.com/mdlayher/unifi" in any of:  
/usr/local/go/src/github.com/mdlayher/unifi (from $GOROOT)  
/home/sysadmin/work/src/github.com/mdlayher/unifi (from $GOPATH)  
cmd/unifi_exporter/main.go:14:2: cannot find package "github.com/mdlayher/unifi_exporter" in any of:  
/usr/local/go/src/github.com/mdlayher/unifi_exporter (from $GOROOT)  
/home/sysadmin/work/src/github.com/mdlayher/unifi_exporter (from $GOPATH)  
cmd/unifi_exporter/main.go:15:2: cannot find package "github.com/prometheus/client_golang/prometheus" in any of:  
/usr/local/go/src/github.com/prometheus/client_golang/prometheus (from $GOROOT)  
/home/sysadmin/work/src/github.com/prometheus/client_golang/prometheus (from $GOPATH)  
Makefile:4: recipe for target 'build' failed  
make: *** [build] Error 1
Страницы: 1
Читают тему (гостей: 1)