Агент

Агент Qihu (qihu-agent)

Агент Qihu — это фоновая служба, устанавливаемая на целевые серверы. Он отвечает за сбор телеметрии, мониторинг системных ресурсов и гарантированную доставку логов/алертов на центральный сервер Qihu.

Обзор архитектуры

Платформа предоставляет две версии агента в зависимости от ваших задач:

📡 Go Агент (Proxy)

Легковесный бинарный демон (`qihu-agent`), написанный на Go. Он работает как локальный прокси-сервер (порт `18080`), принимает события от ваших приложений, буферизирует их во встроенную SQLite базу данных при потере связи и отправляет на Qihu.

🐍 Python Агент (Telemetry)

Служба сбора системной телеметрии (`qihu_agent.py`). Опрашивает загрузку CPU, использование RAM, свободное место на дисках, состояние LXC/VM контейнеров Proxmox, а также снимает показатели NVIDIA GPU с помощью `nvidia-smi`.

Установка

Установка выполняется в одну строчку с автоматической регистрацией systemd-службы. Поддерживается прямая привязка к проекту через slug и API-токен:

bash
curl -sSL https://qihu.ru/agent/install.sh | sudo bash -s -- \
  --project your_project_slug \
  --token   qihu_tok_xxxxxxxxxxxxxxxx

Скрипт автоматически определит архитектуру вашего процессора (amd64 / arm64), скачает актуальную версию Go-агента, создаст системного пользователя `qihu-agent` и запустит фоновую службу.

Конфигурация

Все параметры конфигурации хранятся в файле /etc/qihu-agent/config.env:

ПеременнаяОписаниеЗначение по умолчанию
QIHU_URLАдрес центрального сервера Qihu.`https://qihu.ru`
QIHU_PROJECTИдентификатор (slug) вашего проекта.`обязательно`
QIHU_API_KEYСекретный токен аутентификации проекта.`обязательно`
LISTEN_ADDRАдрес и порт локального веб-сервера.`127.0.0.1:18080`
BUFFER_PATHПуть к файлу SQLite базы данных для буфера.`/var/lib/qihu-agent/buffer.db`

Мониторинг GPU Инстансов

💡Python-версия агента умеет автоматически считывать параметры с видеокарт NVIDIA, что делает её идеальным решением для мониторинга Vast.ai, RunPod и других GPU-серверов.

При обнаружении утилиты `nvidia-smi` Python-агент автоматически начинает собирать следующие метрики каждую секунду и передавать их в составе пульса (heartbeat):

gpu_loadЗагрузка графического ядра GPU (в %)
0.0 - 100.0
gpu_tempТемпература видеокарты в градусах Цельсия
°C
vram_usedИспользование видеопамяти VRAM
Гигабайты (GB)
vram_totalОбщий объем доступной видеопамяти
Гигабайты (GB)

Для запуска системного мониторинга на GPU сервере скачайте скрипт агента и пропишите его запуск через systemd:

bash
# Скачивание агента
wget -O /usr/local/bin/qihu_agent.py https://qihu.ru/releases/agent/qihu_agent.py
chmod +x /usr/local/bin/qihu_agent.py

Пример конфигурации службы (/etc/systemd/system/qihu-agent.service)

ini
[Unit]
Description=Qihu System and GPU Telemetry Agent
After=network.target

[Service]
Type=simple
User=root
Environment=QIHU_URL=https://qihu.ru
Environment=QIHU_PROJECT=your_project_slug
Environment=QIHU_API_KEY=qihu_tok_xxxxxxxxxxxxxxxx
ExecStart=/usr/bin/python3 /usr/local/bin/qihu_agent.py
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

Надежность и Буферизация

Если центральный сервер Qihu недоступен (проблемы на канале связи, технические работы), агент не теряет события:

  • Все события локально записываются во встроенную базу данных SQLite.
  • Фоновый поток с периодичностью в 5 секунд проверяет доступность центрального API.
  • После восстановления связи накопленные события отправляются пакетами по 20 штук в хронологическом порядке.
  • Потребление диска строго ограничено индексированием и быстрой очисткой отправленных записей.