SpaceWeb
Статус: доступен · пакет wg-flow-plugin-sweb · провайдер sweb · категория cloud.
Плагин ходит в публичный JSON-RPC api.sweb.ru и отдаёт в инвентарь VPS, домены и DNS. Логин и пароль панели остаются в YAML агента.
Сессия у SpaceWeb короткоживущая: плагин сам меняет login+password на Bearer и обновляет его при истечении.
Установка
Агент должен быть подключён к API.
docker compose exec agent wg-flow-agent plugin install sweb
# или
wg-flow-agent plugin install swebДальше — локальный UI → Connections → sweb или YAML.
Что попадает в инвентарь
| Объект SpaceWeb | resource_type | Заметки |
|---|---|---|
| VPS | server | /vps index. Целая plan_price — рубли в месяц. Дробная (тарифы «Облако») — рубли в час, в billing_amount пишется месяц как цена × 730 |
| Домен панели | domain | apex + поддомены из /domains; для apex ещё getDomainInfo |
| Hostname из A / AAAA / CNAME | domain | дочерние FQDN вроде docs.apex.ru |
| DNS-запись | dns | MX / TXT / SRV и _*; apex/@ как поддомен не дублируется |
| SSL-сертификат | certificate | /vh/ssl и /vps/ssl: срок valid_to, цена продления |
| DBaaS | database | /dbaas index: тариф и цена |
| Балансировщик | load_balancer | /balancer index: план и цена |
| Тариф виртуального хостинга | hosting | /tariff index, один ресурс hosting на аккаунт |
Если на аккаунте нет продукта (VPS без хостинга и наоборот), метод отвечает «Object not found» — этот кусок пропускается, остальные ресурсы собираются.
В кабинете домены группируются по apex, как у Prometheus.
Можно выключить кусок сбора: VPS, домены или DNS — отдельно в schema / YAML. Сертификаты, DBaaS, балансировщик и тариф хостинга запрашиваются всегда и просто не появляются, если услуги нет.
Срок и цена
Плагин кладёт в metadata поля, по которым потом можно сделать алерт или тариф. Сами алерты и записи затрат плагин не создаёт.
| Ключ | Когда есть | Смысл |
|---|---|---|
expires_at | домен, сертификат | Дата YYYY-MM-DD: окончание регистрации (expired) или действия сертификата (valid_to) |
billing_amount | цена больше нуля | Сумма в рублях |
billing_currency | вместе с суммой | Всегда RUB |
billing_period | вместе с суммой | monthly — VPS, DBaaS, балансировщик, хостинг помесячно. yearly — домен, сертификат, хостинг на год |
Для домена сумма — цена продления (prolong_price, иначе цена в prolong_confirm, иначе reg_price). Нулевая и отрицательная цена не пишется. У VPS в index нет даты «оплачено до». Целая plan_price — помесячный тариф. Дробная — рубли в час (тарифы «Облако»): месяц в billing_amount считается как цена × 730, сырая ставка остаётся в plan_price_hourly. Панель управления на VPS (ISP) — отдельные isp_license, isp_price, isp_expires_at, в сумму сервера она не входит.
YAML
plugins:
sweb:
enabled: true
sources:
- id: account
provider_account: "sweb-main"
sync_interval_seconds: 300
url: "https://api.sweb.ru"
login: "account@example.com"
password: "…"
collect_vps: true
collect_domains: true
collect_dns: trueНесколько аккаунтов SpaceWeb — несколько sources.
Поля source
| Поле | Обязательно | Описание |
|---|---|---|
id | да | Ключ в логах (sweb/account) |
provider_account | да | Метка аккаунта в инвентаре |
url | нет | По умолчанию https://api.sweb.ru |
login / password | да | Учётная запись панели; password маскируется в UI |
collect_vps / collect_domains / collect_dns | нет | true по умолчанию |
sync_interval_seconds | нет | Минимум 300 |
Проверка
wg-flow-agent status
wg-flow-agent dry-runВ JSON — provider: sweb. Health плагина дергает pay.getBalance (только проверка сессии, баланс в инвентарь не пишется).
Частые ошибки
| Симптом | Что проверить |
|---|---|
JSON-RPC -32603 / session | плагин должен сам обновить токен; если нет — login/password |
| Пустые домены | collect_domains / collect_dns не выключены |
| Дубли с Cloudflare / Prometheus | разные provider — нормально; слияние в кабинете |