Показать страницуСсылки сюдаНаверх Эта страница только для чтения. Вы можете посмотреть её исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Prometheus ====== [[https://prometheus.io|Power your metrics and alerting with the leading open-source monitoring solution.]] ===== Активация ===== Настройки находятся по пути: Настройки => Системные опции => Внешние интеграции, раздел "prometheus" {{:billing:prometheus.jpg?500|}} \\ Для активации необходимо "Разрешить" использование функционала поставив галочку с одноименным названием. \\ Далее необходимо указать IP адрес либо сеть с которой будут приходить запросы. \\ И указать ключ который будет использоваться при запросах ===== Запросы ===== <accordion> <panel title="Информация о абонентах"> Для получения информации о трафике всех абонентов, необходимо выполнить запрос <well size="sm"><nowiki>https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/user</nowiki></well> В результате которого будут данные в виде: <code> # 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 </code> ---- Для получения информации о одном абоненте, необходимо выполнить запрос <well size="sm"><nowiki>https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/user/uid/7</nowiki></well> В результате которого будут данные в виде: <code> # 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 </code> </panel> <panel title="Информация о тарифах"> Для получения информации о трафике всех абонентов на всех тарифах, необходимо выполнить запрос <well size="sm"><nowiki>https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/packet</nowiki></well> В результате которого будут данные в виде: <code> # 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 </code> ---- Для получения информации о одном тарифе, необходимо выполнить запрос <well size="sm"><nowiki>https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/packet/gid/139</nowiki></well> В результате которого будут данные в виде: <code> # 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 </code> </panel> <panel title="Информация о BRAS"> Для получения информации о трафике всех абонентов на всех BRAS, необходимо выполнить запрос <well size="sm"><nowiki>https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/bras</nowiki></well> В результате которого будут данные в виде: <code> # 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 </code> ---- Для получения информации о одном тарифе, необходимо выполнить запрос <well size="sm"><nowiki>https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/bras/id/1</nowiki></well> В результате которого будут данные в виде: <code> # 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 </code> </panel> <panel title="Информация о онлайне"> Для получения общей информации о онлайне, необходимо выполнить запрос <well size="sm"><nowiki>https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/online</nowiki></well> В результате которого будут данные в виде: <code> # 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 </code> </panel> <panel title="Информация о кол-ве абонентов со статусами"> Для получения информации о количестве абонентов со статусами, необходимо выполнить запрос <well size="sm"><nowiki>https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/count_all_user_status</nowiki></well> В результате которого будут данные в виде: <code> # 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 </code> Для получения информации отдельно по статусам: **Нормальные** <well size="sm"><nowiki>https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/count_normal</nowiki></well> В результате которого будут данные в виде: <code> # HELP mikbillStatusUsersCount The total number of users with status # TYPE mikbillStatusUsersCount gauge mikbillStatusUsersCount {group="Normal"} 6 </code> **Без денег** <well size="sm"><nowiki>https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/count_nomoney</nowiki></well> В результате которого будут данные в виде: <code> # HELP mikbillStatusUsersCount The total number of users with status # TYPE mikbillStatusUsersCount gauge mikbillStatusUsersCount {group="Nomoney"} 129 </code> **Заморожен** <well size="sm"><nowiki>https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/count_freezed</nowiki></well> В результате которого будут данные в виде: <code> # HELP mikbillStatusUsersCount The total number of users with status # TYPE mikbillStatusUsersCount gauge mikbillStatusUsersCount {group="Freezed"} 28 </code> **Отключен** <well size="sm"><nowiki>https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/count_disabled</nowiki></well> В результате которого будут данные в виде: <code> # HELP mikbillStatusUsersCount The total number of users with status # TYPE mikbillStatusUsersCount gauge mikbillStatusUsersCount {group="Disabled"} 1182 </code> **Удален** <well size="sm"><nowiki>https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/count_deleted</nowiki></well> В результате которого будут данные в виде: <code> # HELP mikbillStatusUsersCount The total number of users with status # TYPE mikbillStatusUsersCount gauge mikbillStatusUsersCount {group="Deleted"} 1057 </code> </panel> <panel title="Информация о статусах служб"> Для получения общей информации о статусах запущенных служб, необходимо выполнить запрос <well size="sm"><nowiki>https://admin.ispnet.demo/api/index/prometheus/key/1234567890/request/services</nowiki></well> В результате которого будут данные в виде: <code> # 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 </code> </panel> </accordion> ===== Коды ошибок ===== * API not enable - Функционал prometheus не включен в биллинге * Wrong API key - Неверный ключ от prometheus * Bad request - Не верный запрос (нету параметра request) * Unknown request - Не известный запрос (значение параметра request) * Access denied from your IP - Доступ запрещен для Вашего IP * No data - Нету информации для показа billing/prometheus.txt Последнее изменение: 2 лет назад — alexd