diff --git a/README.md b/README.md index 57cdffe..6d3a848 100644 --- a/README.md +++ b/README.md @@ -1,61 +1,1489 @@ -# RustDesk Server OSS Monitoring for Zabbix +# RustDesk Server OSS + Zabbix 7.4 Monitoring -Мониторинг [RustDesk Server OSS](https://rustdesk.com/) через **Zabbix Agent 2**. +Пошаговая установка мониторинга RustDesk Server OSS для Zabbix 7.4. -Проект предназначен для Docker-инсталляции RustDesk Server с контейнерами `hbbs` и `hbbr`. +## Что мониторируется -Мониторинг позволяет получать: - -- количество зарегистрированных RustDesk peers; -- IP зарегистрированных peers; -- автоматическое обнаружение peers через Zabbix LLD; -- количество активных TCP-соединений `hbbr`; +- количество зарегистрированных RustDesk ID; +- IP зарегистрированных RustDesk ID; +- автоматическое обнаружение RustDesk ID через LLD; +- количество TCP-соединений `hbbr`; - количество активных relay-сессий; -- список IP активных relay-клиентов; -- JSON со сводной информацией. +- IP активных relay-клиентов. -## Возможности +--- -| Метрика | Zabbix key | Тип | -|---|---|---| -| Registered peers | `rustdesk.peers` | Numeric | -| Peer IP | `rustdesk.peer.ip[ID]` | Text | -| Peer discovery | `rustdesk.discovery` | LLD | -| Relay connections | `rustdesk.relay.connections` | Numeric | -| Relay sessions | `rustdesk.relay.sessions` | Numeric | -| Active relay IPs | `rustdesk.relay.ips` | Text | -| Summary JSON | `rustdesk.json` | Text | +# 1. Требования -## Архитектура +Необходимо: + +- Linux Server; +- Docker; +- RustDesk Server OSS; +- Zabbix Agent 2; +- Zabbix Server 7.4.x; +- `sudo`; +- `nsenter`; +- `ss`; +- `jq`. + +Проверить: + +```bash +command -v docker +command -v sudo +command -v nsenter +command -v ss +command -v jq +``` + +Если какой-либо команды нет, установите её через пакетный менеджер вашей ОС. + +--- + +# 2. Проверка RustDesk Server + +Предполагается, что RustDesk Server работает в Docker и содержит два контейнера: ```text - ┌──────────────────────┐ - │ Zabbix Server │ - └──────────┬───────────┘ - │ - │ Zabbix Agent 2 - ▼ - ┌──────────────────────┐ - │ Linux RustDesk │ - │ Server │ - └──────────┬───────────┘ - │ - ┌─────────────┴─────────────┐ - │ │ - ▼ ▼ - ┌──────────────┐ ┌──────────────┐ - │ hbbs │ │ hbbr │ - │ RustDesk ID │ │ Relay Server │ - └──────┬───────┘ └──────┬───────┘ - │ │ - ▼ ▼ - db_v2.sqlite3 TCP :21117 - │ │ - │ network namespace - │ │ - └──────────┬───────────────┘ - ▼ - rustdesk-monitor.sh - │ - ▼ - Zabbix UserParameter \ No newline at end of file +hbbs +hbbr +``` + +Проверить: + +```bash +docker ps +``` + +Должно быть примерно: + +```text +CONTAINER ID IMAGE NAMES +xxxxxxxx rustdesk/rustdesk-server:latest hbbs +xxxxxxxx rustdesk/rustdesk-server:latest hbbr +``` + +Проверить порт `hbbr`: + +```bash +docker port hbbr +``` + +Ожидается: + +```text +21117/tcp -> 0.0.0.0:21117 +21117/tcp -> [::]:21117 +``` + +--- + +# 3. Проверка hbbr + +Получить PID контейнера: + +```bash +docker inspect -f '{{.State.Pid}}' hbbr +``` + +Например: + +```text +744150 +``` + +Проверить активные TCP-соединения внутри network namespace `hbbr`: + +```bash +nsenter \ + -t "$(docker inspect -f '{{.State.Pid}}' hbbr)" \ + -n \ + ss -H -tn state established '( sport = :21117 )' +``` + +Если активных relay-сессий нет, команда может ничего не вывести. + +При наличии одной relay-сессии будет примерно: + +```text +0 0 172.27.0.3:21117 91.221.35.119:2624 +0 0 172.27.0.3:21117 194.58.38.147:63060 +``` + +--- + +# 4. Скачивание проекта + +Клонируйте репозиторий: + +```bash +git clone https://github.com/YOUR_USER/rustdesk-zabbix.git +``` + +Перейдите в каталог: + +```bash +cd rustdesk-zabbix +``` + +Структура проекта: + +```text +rustdesk-zabbix/ +├── README.md +├── rustdesk-monitor.sh +├── rustdesk-monitor-root +├── zabbix/ +│ ├── rustdesk.conf +│ └── rustdesk-template.yaml +└── sudoers/ + └── zabbix-rustdesk +``` + +--- + +# 5. Установка основного скрипта + +Скопируйте основной скрипт: + +```bash +sudo cp rustdesk-monitor.sh /usr/local/bin/rustdesk-monitor.sh +``` + +Установите владельца: + +```bash +sudo chown root:root /usr/local/bin/rustdesk-monitor.sh +``` + +Установите права: + +```bash +sudo chmod 755 /usr/local/bin/rustdesk-monitor.sh +``` + +Проверьте: + +```bash +ls -l /usr/local/bin/rustdesk-monitor.sh +``` + +Ожидается: + +```text +-rwxr-xr-x root root ... /usr/local/bin/rustdesk-monitor.sh +``` + +--- + +# 6. Проверка основного скрипта + +Проверьте количество зарегистрированных RustDesk ID: + +```bash +/usr/local/bin/rustdesk-monitor.sh peers +``` + +Например: + +```text +10 +``` + +Проверьте IP конкретного RustDesk ID: + +```bash +/usr/local/bin/rustdesk-monitor.sh peer_ip 473224838 +``` + +Например: + +```text +194.58.38.147 +``` + +--- + +# 7. Проверка Low-Level Discovery + +Выполните: + +```bash +/usr/local/bin/rustdesk-monitor.sh discovery +``` + +Должен вернуться JSON-массив: + +```json +[ + { + "{#RD_ID}": "335008209", + "{#RD_IP}": "95.64.175.202" + }, + { + "{#RD_ID}": "262961257", + "{#RD_IP}": "89.175.70.58" + } +] +``` + +Проверить JSON через `jq`: + +```bash +/usr/local/bin/rustdesk-monitor.sh discovery | jq empty +``` + +Проверить код возврата: + +```bash +echo $? +``` + +Должно быть: + +```text +0 +``` + +--- + +# 8. Установка root helper + +Для мониторинга активных соединений `hbbr` нужен доступ к network namespace контейнера. + +Пользователь `zabbix` не имеет права самостоятельно выполнять `nsenter`. + +Поэтому используется отдельный helper: + +```text +/usr/local/sbin/rustdesk-monitor-root +``` + +Установите его: + +```bash +sudo cp rustdesk-monitor-root /usr/local/sbin/rustdesk-monitor-root +``` + +Установите владельца: + +```bash +sudo chown root:root /usr/local/sbin/rustdesk-monitor-root +``` + +Установите права: + +```bash +sudo chmod 755 /usr/local/sbin/rustdesk-monitor-root +``` + +Проверьте: + +```bash +ls -l /usr/local/sbin/rustdesk-monitor-root +``` + +Должно быть: + +```text +-rwxr-xr-x root root ... /usr/local/sbin/rustdesk-monitor-root +``` + +--- + +# 9. Проверка root helper + +## Connections + +```bash +sudo /usr/local/sbin/rustdesk-monitor-root connections +``` + +При одной активной relay-сессии: + +```text +2 +``` + +## Sessions + +```bash +sudo /usr/local/sbin/rustdesk-monitor-root sessions +``` + +Результат: + +```text +1 +``` + +## Active relay IPs + +```bash +sudo /usr/local/sbin/rustdesk-monitor-root relay_ips +``` + +Например: + +```text +194.58.38.147 +91.221.35.119 +``` + +--- + +# 10. Настройка sudo для пользователя zabbix + +Создайте файл: + +```bash +sudo nano /etc/sudoers.d/zabbix-rustdesk +``` + +Добавьте: + +```sudoers +zabbix ALL=(root) NOPASSWD: /usr/local/sbin/rustdesk-monitor-root connections +zabbix ALL=(root) NOPASSWD: /usr/local/sbin/rustdesk-monitor-root sessions +zabbix ALL=(root) NOPASSWD: /usr/local/sbin/rustdesk-monitor-root relay_ips +``` + +Сохраните файл. + +Установите права: + +```bash +sudo chmod 440 /etc/sudoers.d/zabbix-rustdesk +``` + +Проверьте конфигурацию sudo: + +```bash +sudo visudo -c +``` + +Должно быть: + +```text +/etc/sudoers: parsed OK +/etc/sudoers.d/zabbix-rustdesk: parsed OK +``` + +--- + +# 11. Проверка helper от имени zabbix + +Теперь обязательно проверьте выполнение именно от пользователя `zabbix`. + +## Connections + +```bash +sudo -u zabbix sudo /usr/local/sbin/rustdesk-monitor-root connections +``` + +Ожидается: + +```text +2 +``` + +## Sessions + +```bash +sudo -u zabbix sudo /usr/local/sbin/rustdesk-monitor-root sessions +``` + +Ожидается: + +```text +1 +``` + +## Relay IPs + +```bash +sudo -u zabbix sudo /usr/local/sbin/rustdesk-monitor-root relay_ips +``` + +Например: + +```text +194.58.38.147 +91.221.35.119 +``` + +Если эти три команды работают — права настроены правильно. + +--- + +# 12. Установка конфигурации Zabbix Agent 2 + +Скопируйте: + +```bash +sudo cp zabbix/rustdesk.conf \ + /etc/zabbix/zabbix_agent2.d/rustdesk.conf +``` + +Проверьте: + +```bash +cat /etc/zabbix/zabbix_agent2.d/rustdesk.conf +``` + +Конфигурация должна выглядеть так: + +```ini +UserParameter=rustdesk.peers,/usr/local/bin/rustdesk-monitor.sh peers +UserParameter=rustdesk.peer.ip[*],/usr/local/bin/rustdesk-monitor.sh peer_ip "$1" +UserParameter=rustdesk.discovery,/usr/local/bin/rustdesk-monitor.sh discovery + +UserParameter=rustdesk.relay.connections,sudo /usr/local/sbin/rustdesk-monitor-root connections +UserParameter=rustdesk.relay.sessions,sudo /usr/local/sbin/rustdesk-monitor-root sessions +UserParameter=rustdesk.relay.ips,sudo /usr/local/sbin/rustdesk-monitor-root relay_ips + +UserParameter=rustdesk.json,/usr/local/bin/rustdesk-monitor.sh json +``` + +--- + +# 13. Перезапуск Zabbix Agent 2 + +Выполните: + +```bash +sudo systemctl restart zabbix-agent2 +``` + +Проверьте: + +```bash +sudo systemctl status zabbix-agent2 --no-pager +``` + +Сервис должен иметь статус: + +```text +active (running) +``` + +--- + +# 14. Проверка Zabbix Agent 2 + +## Registered peers + +```bash +zabbix_agent2 -t rustdesk.peers +``` + +Пример: + +```text +rustdesk.peers [s|10] +``` + +--- + +## Peer IP + +Проверить конкретный ID: + +```bash +zabbix_agent2 -t 'rustdesk.peer.ip[473224838]' +``` + +Пример: + +```text +rustdesk.peer.ip[473224838] [s|194.58.38.147] +``` + +--- + +## Discovery + +```bash +zabbix_agent2 -t rustdesk.discovery +``` + +Ожидается JSON: + +```text +rustdesk.discovery [s|[ + { + "{#RD_ID}": "335008209", + "{#RD_IP}": "95.64.175.202" + } +]] +``` + +--- + +## Relay connections + +```bash +zabbix_agent2 -t rustdesk.relay.connections +``` + +Пример: + +```text +rustdesk.relay.connections [s|2] +``` + +--- + +## Relay sessions + +```bash +zabbix_agent2 -t rustdesk.relay.sessions +``` + +Пример: + +```text +rustdesk.relay.sessions [s|1] +``` + +--- + +## Relay IPs + +```bash +zabbix_agent2 -t rustdesk.relay.ips +``` + +Пример: + +```text +rustdesk.relay.ips [s|194.58.38.147 +91.221.35.119] +``` + +--- + +# 15. Установка Zabbix Template + +В репозитории должен находиться файл: + +```text +zabbix/rustdesk-template.yaml +``` + +Откройте Zabbix: + +```text +Data collection +→ Templates +→ Import +``` + +Выберите: + +```text +rustdesk-template.yaml +``` + +Нажмите: + +```text +Import +``` + +После успешного импорта откройте: + +```text +Data collection +→ Templates +``` + +Найдите: + +```text +RustDesk Server OSS +``` + +--- + +# 16. Привязка Template к Host + +Откройте: + +```text +Data collection +→ Hosts +``` + +Выберите сервер RustDesk. + +Перейдите: + +```text +Templates +→ Link new templates +``` + +Выберите: + +```text +RustDesk Server OSS +``` + +Нажмите: + +```text +Update +``` + +--- + +# 17. Проверка Items + +После привязки Template откройте: + +```text +Data collection +→ Hosts +→ RustDesk host +→ Items +``` + +Должны появиться основные items. + +## Registered peers + +```text +Name: +RustDesk registered peers + +Key: +rustdesk.peers + +Type: +Zabbix agent + +Type of information: +Numeric (unsigned) +``` + +--- + +## Relay connections + +```text +Name: +RustDesk relay connections + +Key: +rustdesk.relay.connections + +Type: +Zabbix agent + +Type of information: +Numeric (unsigned) +``` + +--- + +## Relay sessions + +```text +Name: +RustDesk active relay sessions + +Key: +rustdesk.relay.sessions + +Type: +Zabbix agent + +Type of information: +Numeric (unsigned) +``` + +--- + +## Active relay IPs + +```text +Name: +RustDesk active relay IPs + +Key: +rustdesk.relay.ips + +Type: +Zabbix agent + +Type of information: +Text +``` + +--- + +# 18. Проверка Latest data + +Откройте: + +```text +Monitoring +→ Hosts +→ RustDesk host +→ Latest data +``` + +Найдите: + +```text +RustDesk registered peers +``` + +Например: + +```text +10 +``` + +Найдите: + +```text +RustDesk relay connections +``` + +Например: + +```text +2 +``` + +Найдите: + +```text +RustDesk active relay sessions +``` + +Например: + +```text +1 +``` + +Найдите: + +```text +RustDesk active relay IPs +``` + +Например: + +```text +194.58.38.147 +91.221.35.119 +``` + +--- + +# 19. Настройка Low-Level Discovery + +Откройте: + +```text +Data collection +→ Hosts +→ RustDesk host +→ Discovery +``` + +Должно присутствовать правило: + +```text +RustDesk peer discovery +``` + +Key: + +```text +rustdesk.discovery +``` + +Update interval: + +```text +5m +``` + +--- + +# 20. Проверка Discovery + +Откройте: + +```text +Discovery +→ RustDesk peer discovery +``` + +Проверьте: + +```text +Discovered entities +``` + +Для каждого найденного RustDesk ID должны появиться соответствующие entities. + +Например: + +```text +335008209 +262961257 +392618968 +440059160 +... +``` + +--- + +# 21. Item Prototype для IP клиентов + +Discovery использует следующие макросы: + +```text +{#RD_ID} +{#RD_IP} +``` + +Item Prototype: + +```text +Name: +RustDesk peer {#RD_ID} IP + +Key: +rustdesk.peer.ip[{#RD_ID}] + +Type: +Zabbix agent + +Type of information: +Text +``` + +После работы Discovery Zabbix автоматически создаст items: + +```text +RustDesk peer 335008209 IP +RustDesk peer 262961257 IP +RustDesk peer 392618968 IP +... +``` + +--- + +# 22. Создание Dashboard + +Откройте: + +```text +Dashboards +``` + +Создайте новый Dashboard: + +```text +Create dashboard +``` + +Например: + +```text +RustDesk Monitoring +``` + +--- + +# 23. Dashboard — Active Sessions + +Добавьте Widget: + +```text +Add widget +→ Item value +``` + +Настройте: + +```text +Name: +Active relay sessions + +Host: +RustDesk host + +Item: +RustDesk active relay sessions + +Refresh interval: +30s +``` + +На Dashboard будет отображаться: + +```text +Active relay sessions + +1 +``` + +--- + +# 24. Dashboard — Relay Connections + +Добавьте второй Widget: + +```text +Add widget +→ Item value +``` + +Настройте: + +```text +Name: +Relay connections + +Host: +RustDesk host + +Item: +RustDesk relay connections + +Refresh interval: +30s +``` + +Например: + +```text +Relay connections + +2 +``` + +--- + +# 25. Dashboard — Active Relay IPs + +Добавьте: + +```text +Add widget +→ Item history +``` + +Настройте: + +```text +Name: +Active relay IPs + +Host: +RustDesk host + +Item: +RustDesk active relay IPs + +Refresh interval: +30s + +Show lines: +10 +``` + +На Dashboard будет: + +```text +Active relay IPs + +194.58.38.147 +91.221.35.119 +``` + +--- + +# 26. Как работает подсчёт relay sessions + +`hbbr` слушает: + +```text +TCP/21117 +``` + +Одна relay-сессия обычно создаёт два TCP-соединения. + +Например: + +```text +172.27.0.3:21117 → 91.221.35.119:2624 +172.27.0.3:21117 → 194.58.38.147:63060 +``` + +Получаем: + +```text +connections = 2 +sessions = 1 +``` + +Поэтому скрипт рассчитывает: + +```text +sessions = connections / 2 +``` + +--- + +# 27. Active Relay IPs + +Команда: + +```bash +/usr/local/sbin/rustdesk-monitor-root relay_ips +``` + +получает активные соединения: + +```bash +ss -H -tn state established +``` + +в network namespace контейнера `hbbr`. + +Из remote endpoint извлекается IP. + +Например: + +```text +91.221.35.119:2624 +194.58.38.147:63060 +``` + +Преобразуется в: + +```text +91.221.35.119 +194.58.38.147 +``` + +Затем выполняется сортировка и удаление дубликатов. + +--- + +# 28. Ограничение NAT + +Active relay IP нельзя всегда сопоставить с конкретным RustDesk ID. + +Например: + +```text +194.58.38.147 +├── RustDesk ID 473224838 +├── RustDesk ID 440059160 +└── RustDesk ID 317773715 +``` + +Все три устройства могут находиться за одним NAT. + +Поэтому: + +```text +rustdesk.relay.ips +``` + +показывает только: + +```text +уникальные IP активных relay-клиентов +``` + +а не: + +```text +RustDesk ID активной сессии +``` + +--- + +# 29. Диагностика: нет данных + +Проверь Docker: + +```bash +docker ps +``` + +Проверь `hbbr`: + +```bash +docker inspect -f '{{.State.Pid}}' hbbr +``` + +Проверь relay: + +```bash +docker logs --tail 100 hbbr +``` + +Проверь connections: + +```bash +sudo /usr/local/sbin/rustdesk-monitor-root connections +``` + +Проверь sessions: + +```bash +sudo /usr/local/sbin/rustdesk-monitor-root sessions +``` + +Проверь IP: + +```bash +sudo /usr/local/sbin/rustdesk-monitor-root relay_ips +``` + +--- + +# 30. Диагностика: Operation not permitted + +Если: + +```text +nsenter: reassociate to namespaces failed: Operation not permitted +``` + +проверь: + +```bash +sudo -u zabbix sudo \ + /usr/local/sbin/rustdesk-monitor-root connections +``` + +Если команда возвращает число: + +```text +2 +``` + +значит права настроены правильно. + +Проверь sudo: + +```bash +sudo visudo -c +``` + +Проверь: + +```bash +cat /etc/sudoers.d/zabbix-rustdesk +``` + +--- + +# 31. Диагностика: Numeric unsigned + +Если Zabbix показывает: + +```text +Value of type "string" is not suitable for value type "Numeric (unsigned)" +``` + +проверь: + +```bash +zabbix_agent2 -t rustdesk.relay.connections +``` + +Правильный результат: + +```text +rustdesk.relay.connections [s|2] +``` + +Неправильный результат: + +```text +rustdesk.relay.connections [s|nsenter: reassociate to namespaces failed: Operation not permitted +0] +``` + +В этом случае проверь выполнение: + +```bash +sudo -u zabbix sudo \ + /usr/local/sbin/rustdesk-monitor-root connections +``` + +--- + +# 32. Диагностика: Item Unsupported + +Если item имеет статус: + +```text +Unsupported +``` + +проверь Agent: + +```bash +sudo systemctl status zabbix-agent2 --no-pager +``` + +Проверь конфигурацию: + +```bash +cat /etc/zabbix/zabbix_agent2.d/rustdesk.conf +``` + +После изменения: + +```bash +sudo systemctl restart zabbix-agent2 +``` + +Затем: + +```bash +zabbix_agent2 -t rustdesk.relay.connections +``` + +--- + +# 33. Полная проверка после установки + +Выполните: + +```bash +echo "===== DOCKER =====" + +docker ps + +echo +echo "===== PEERS =====" + +/usr/local/bin/rustdesk-monitor.sh peers + +echo +echo "===== DISCOVERY =====" + +/usr/local/bin/rustdesk-monitor.sh discovery | jq . + +echo +echo "===== RELAY CONNECTIONS =====" + +/usr/local/sbin/rustdesk-monitor-root connections + +echo +echo "===== RELAY SESSIONS =====" + +/usr/local/sbin/rustdesk-monitor-root sessions + +echo +echo "===== RELAY IPs =====" + +/usr/local/sbin/rustdesk-monitor-root relay_ips + +echo +echo "===== ZABBIX AGENT =====" + +zabbix_agent2 -t rustdesk.peers + +zabbix_agent2 -t rustdesk.discovery + +zabbix_agent2 -t rustdesk.relay.connections + +zabbix_agent2 -t rustdesk.relay.sessions + +zabbix_agent2 -t rustdesk.relay.ips +``` + +--- + +# 34. Ожидаемый результат + +Пример: + +```text +===== DOCKER ===== + +hbbs +hbbr + +===== PEERS ===== + +10 + +===== DISCOVERY ===== + +[ + { + "{#RD_ID}": "335008209", + "{#RD_IP}": "95.64.175.202" + }, + ... +] + +===== RELAY CONNECTIONS ===== + +2 + +===== RELAY SESSIONS ===== + +1 + +===== RELAY IPs ===== + +194.58.38.147 +91.221.35.119 + +===== ZABBIX AGENT ===== + +rustdesk.peers [s|10] + +rustdesk.discovery [s|[ + ... +]] + +rustdesk.relay.connections [s|2] + +rustdesk.relay.sessions [s|1] + +rustdesk.relay.ips [s|194.58.38.147 +91.221.35.119] +``` + +--- + +# 35. Быстрая установка + +Если все файлы уже находятся в репозитории, установка сводится к: + +```bash +git clone https://github.com/YOUR_USER/rustdesk-zabbix.git + +cd rustdesk-zabbix + +sudo cp rustdesk-monitor.sh \ + /usr/local/bin/rustdesk-monitor.sh + +sudo cp rustdesk-monitor-root \ + /usr/local/sbin/rustdesk-monitor-root + +sudo chown root:root \ + /usr/local/bin/rustdesk-monitor.sh \ + /usr/local/sbin/rustdesk-monitor-root + +sudo chmod 755 \ + /usr/local/bin/rustdesk-monitor.sh \ + /usr/local/sbin/rustdesk-monitor-root + +sudo cp zabbix/rustdesk.conf \ + /etc/zabbix/zabbix_agent2.d/rustdesk.conf + +sudo cp sudoers/zabbix-rustdesk \ + /etc/sudoers.d/zabbix-rustdesk + +sudo chmod 440 \ + /etc/sudoers.d/zabbix-rustdesk + +sudo visudo -c + +sudo systemctl restart zabbix-agent2 +``` + +После этого проверить: + +```bash +zabbix_agent2 -t rustdesk.peers +zabbix_agent2 -t rustdesk.discovery +zabbix_agent2 -t rustdesk.relay.connections +zabbix_agent2 -t rustdesk.relay.sessions +zabbix_agent2 -t rustdesk.relay.ips +``` + +Затем импортировать: + +```text +zabbix/rustdesk-template.yaml +``` + +в Zabbix и привязать Template к RustDesk host. + +--- + +# 36. Итог + +После установки Zabbix получает: + +```text +rustdesk.peers + │ + └── количество зарегистрированных ID + +rustdesk.peer.ip[ID] + │ + └── IP конкретного зарегистрированного ID + +rustdesk.discovery + │ + └── автоматическое обнаружение ID + +rustdesk.relay.connections + │ + └── TCP connections hbbr + +rustdesk.relay.sessions + │ + └── активные relay sessions + +rustdesk.relay.ips + │ + └── IP активных relay-клиентов + +rustdesk.json + │ + └── общая информация +``` + +Готовый Dashboard: + +```text +┌─────────────────────────────────────┐ +│ ACTIVE RELAY SESSIONS │ +│ 1 │ +└─────────────────────────────────────┘ + +┌─────────────────────────────────────┐ +│ RELAY CONNECTIONS │ +│ 2 │ +└─────────────────────────────────────┘ + +┌─────────────────────────────────────┐ +│ ACTIVE RELAY IPs │ +│ │ +│ 194.58.38.147 │ +│ 91.221.35.119 │ +└─────────────────────────────────────┘ +``` + +--- + +## License + +Используйте проект в соответствии с лицензией, размещённой в репозитории. + +RustDesk является отдельным проектом. Данный проект мониторинга не является официальным компонентом RustDesk. \ No newline at end of file