====== Prometheus ====== [[https://prometheus.io|Power your metrics and alerting with the leading open-source monitoring solution.]] ===== Активация ===== Настройки находятся по пути: Настройки => Системные опции => Внешние интеграции, раздел "prometheus" {{:billing:prometheus.jpg?500|}} \\ Для активации необходимо "Разрешить" использование функционала поставив галочку с одноименным названием. \\ Далее необходимо указать IP адрес либо сеть с которой будут приходить запросы. \\ И указать ключ который будет использоваться при запросах ===== Запросы ===== Для получения информации о трафике всех абонентов, необходимо выполнить запрос https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/user В результате которого будут данные в виде: # HELP mikbillUserIN The total number of Bytes recived by client # TYPE mikbillUserIN gauge # HELP mikbillUserOUT The total number of Bytes uploaded by client # TYPE mikbillUserOUT gauge # HELP mikbillSessionTime Client session time in seconds # TYPE mikbillSessionTime counter mikbillUserIN {uid="7"} 6068174 mikbillUserOUT {uid="7"} 7102296 mikbillSessionTime {uid="7"} 427 mikbillUserIN {uid="11"} 2378560 mikbillUserOUT {uid="11"} 9643676 mikbillSessionTime {uid="11"} 438 mikbillUserIN {uid="121"} 7821647 mikbillUserOUT {uid="121"} 9489318 mikbillSessionTime {uid="121"} 522 mikbillUserIN {uid="2422"} 5217847 mikbillUserOUT {uid="2422"} 2254625 mikbillSessionTime {uid="2422"} 1 mikbillUserIN {uid="2443"} 826198 mikbillUserOUT {uid="2443"} 6247551 mikbillSessionTime {uid="2443"} 233 ---- Для получения информации о одном абоненте, необходимо выполнить запрос https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/user/uid/7 В результате которого будут данные в виде: # HELP mikbillUserIN The total number of Bytes recived by client # TYPE mikbillUserIN gauge # HELP mikbillUserOUT The total number of Bytes uploaded by client # TYPE mikbillUserOUT gauge # HELP mikbillSessionTime Client session time in seconds # TYPE mikbillSessionTime counter mikbillUserIN {uid="7"} 6068174 mikbillUserOUT {uid="7"} 7102296 mikbillSessionTime {uid="7"} 427 Для получения информации о трафике всех абонентов на всех тарифах, необходимо выполнить запрос https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/packet В результате которого будут данные в виде: # HELP mikbillPacketIn The total number of Bytes recived by clients # TYPE mikbillPacketIn gauge # HELP mikbillPacketOut The total number of Bytes uploaded by clients # TYPE mikbillPacketOut gauge # HELP mikbillOnlineCount Online clients count # TYPE mikbillOnlineCount gauge mikbillPacketIn {gid="3", name="test"} 826198 mikbillPacketOut {gid="3", name="test"} 6247551 mikbillOnlineCount {gid="3", name="test"} 1 mikbillPacketIn {gid="120", name="Auto Test"} 5217847 mikbillPacketOut {gid="120", name="Auto Test"} 2254625 mikbillOnlineCount {gid="120", name="Auto Test"} 1 mikbillPacketIn {gid="139", name="IPv6"} 16268381 mikbillPacketOut {gid="139", name="IPv6"} 26235290 mikbillOnlineCount {gid="139", name="IPv6"} 3 ---- Для получения информации о одном тарифе, необходимо выполнить запрос https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/packet/gid/139 В результате которого будут данные в виде: # HELP mikbillPacketIn The total number of Bytes recived by clients # TYPE mikbillPacketIn gauge # HELP mikbillPacketOut The total number of Bytes uploaded by clients # TYPE mikbillPacketOut gauge # HELP mikbillOnlineCount Online clients count # TYPE mikbillOnlineCount gauge mikbillPacketIn {gid="139", name="IPv6"} 16268381 mikbillPacketOut {gid="139", name="IPv6"} 26235290 mikbillOnlineCount {gid="139", name="IPv6"} 3 Для получения информации о трафике всех абонентов на всех BRAS, необходимо выполнить запрос https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/bras В результате которого будут данные в виде: # HELP mikbillBRASIn The total number of Bytes recived by clients # TYPE mikbillBRASIn gauge # HELP mikbillBRASOut The total number of Bytes uploaded by clients # TYPE mikbillBRASOut gauge # HELP mikbillOnlineCount Online clients count # TYPE mikbillOnlineCount gauge mikbillBRASIn {id="1", name="radius check", ip="127.0.0.1"} 19107668 mikbillBRASOut {id="1", name="radius check", ip="127.0.0.1"} 18846239 mikbillOnlineCount {id="1", name="radius check", ip="127.0.0.1"} 3 mikbillBRASIn {id="2", name="junmx2", ip="192.168.8.1"} 3204758 mikbillBRASOut {id="2", name="junmx2", ip="192.168.8.1"} 15891227 mikbillOnlineCount {id="2", name="junmx2", ip="192.168.8.1"} 2 ---- Для получения информации о одном тарифе, необходимо выполнить запрос https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/bras/id/1 В результате которого будут данные в виде: # HELP mikbillBRASIn The total number of Bytes recived by clients # TYPE mikbillBRASIn gauge # HELP mikbillBRASOut The total number of Bytes uploaded by clients # TYPE mikbillBRASOut gauge # HELP mikbillOnlineCount Online clients count # TYPE mikbillOnlineCount gauge mikbillBRASIn {id="1", name="radius check", ip="127.0.0.1"} 19107668 mikbillBRASOut {id="1", name="radius check", ip="127.0.0.1"} 18846239 mikbillOnlineCount {id="1", name="radius check", ip="127.0.0.1"} 3 Для получения общей информации о онлайне, необходимо выполнить запрос https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/online В результате которого будут данные в виде: # HELP mikbillAllIn The total number of Bytes recived by clients # TYPE mikbillAllIn gauge # HELP mikbillAllOut The total number of Bytes uploaded by clients # TYPE mikbillAllOut gauge # HELP mikbillOnlineCount Online clients count # TYPE mikbillOnlineCount gauge mikbillAllIn {id="0"} 22312426 mikbillAllOut {id="0"} 34737466 mikbillOnlineCount {id="0"} 5 Для получения информации о количестве абонентов со статусами, необходимо выполнить запрос https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/count_all_user_status В результате которого будут данные в виде: # HELP mikbillStatusUsersCount The total number of users with status # TYPE mikbillStatusUsersCount gauge mikbillStatusUsersCount {group="Normal"} 6 mikbillStatusUsersCount {group="Nomoney"} 129 mikbillStatusUsersCount {group="Freezed"} 28 mikbillStatusUsersCount {group="Disabled"} 1182 mikbillStatusUsersCount {group="Deleted"} 1057 Для получения информации отдельно по статусам: **Нормальные** https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/count_normal В результате которого будут данные в виде: # HELP mikbillStatusUsersCount The total number of users with status # TYPE mikbillStatusUsersCount gauge mikbillStatusUsersCount {group="Normal"} 6 **Без денег** https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/count_nomoney В результате которого будут данные в виде: # HELP mikbillStatusUsersCount The total number of users with status # TYPE mikbillStatusUsersCount gauge mikbillStatusUsersCount {group="Nomoney"} 129 **Заморожен** https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/count_freezed В результате которого будут данные в виде: # HELP mikbillStatusUsersCount The total number of users with status # TYPE mikbillStatusUsersCount gauge mikbillStatusUsersCount {group="Freezed"} 28 **Отключен** https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/count_disabled В результате которого будут данные в виде: # HELP mikbillStatusUsersCount The total number of users with status # TYPE mikbillStatusUsersCount gauge mikbillStatusUsersCount {group="Disabled"} 1182 **Удален** https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/count_deleted В результате которого будут данные в виде: # HELP mikbillStatusUsersCount The total number of users with status # TYPE mikbillStatusUsersCount gauge mikbillStatusUsersCount {group="Deleted"} 1057 Для получения общей информации о статусах запущенных служб, необходимо выполнить запрос https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/services В результате которого будут данные в виде: # HELP mikbillServiceStatus Service status # TYPE mikbillServiceStatus gauge mikbillServiceStatus {id="1", name="MySQL", description="Database"} 1 mikbillServiceStatus {id="2", name="Mikbill", description="Billing core"} 0 mikbillServiceStatus {id="3", name="Freeradius", description="AAA Server"} 1 mikbillServiceStatus {id="4", name="DHCP", description="DHCP server"} 1 mikbillServiceStatus {id="5", name="NameD", description="DNS server"} 1 ===== Коды ошибок ===== * API not enable - Функционал prometheus не включен в биллинге * Wrong API key - Неверный ключ от prometheus * Bad request - Не верный запрос (нету параметра request) * Unknown request - Не известный запрос (значение параметра request) * Access denied from your IP - Доступ запрещен для Вашего IP * No data - Нету информации для показа