Мониторинг доступности NanoKVM
NanoKVM — это компактное IP-KVM устройство от Sipeed на базе RISC-V (Cube/PCIe) или ARM64 (Pro) или ARMv7 (GxxKVM/JxxKVM).
Для embedded устройств, таких как NanoKVM, критически важно отслеживать их работоспособность. Heartbeat-мониторинг позволяет получать уведомления, если устройст во потеряло связь с интернетом или перестало отвечать.
Эта инструкция объясняет, как настроить мониторинг доступности NanoKVM. Если вам также нужен удалённый доступ к устройству через интернет, см. инструкцию по настройке туннелей.
Подготовка
Что потребуется
- NanoKVM, подключённый к локальной сети и доступный по SSH или терминал в веб интерфейсе
- Аккаунт на tuna.am
Установка tuna на NanoKVM (опционально)
Heartbeat уведомления можно отправлять и при помощи curl, установка tuna cli не обязательна, но если вы также используете туннели для удалённого доступа, то логично будет использовать этот же клиент и для Heartbeat уведомлений.
Подключитесь к NanoKVM по SSH:
ssh root@<IP-адрес-NanoKVM>
Или откройте терминал в веб интерфейсе:
Установите tuna с помощью скрипта, указав /data/tuna в качестве директории установки:
- curl
- wget
mkdir -p /data/tuna
INSTALL_DIR=/data/tuna sh -c "$(curl -sSLf https://releases.tuna.am/tuna/get.sh)"
mkdir -p /data/tuna
INSTALL_DIR=/data/tuna sh -c "$(wget -qO- https://releases.tuna.am/tuna/get.sh)"
Раздел /data смонтирован как exFAT с fmask=0022, файлы автоматически получают права 0755 — бинарник можно запускать сразу после копирования. Кроме того, /data сохраняется при обновлениях, поэтому tuna не придётся переустанавливать.
Создание Heartbeat монитора
- Перейдите в личный кабинет → Мониторы
- Нажмите "Создать монитор"
- Выберите тип Heartbeat
- Задайте параметры:
- Описание: NanoKVM availability
- Интервал: 5 минут (на бесплатном тарифе минимальный 30 минут)
- Grace Period: 1 минута (время ожидания перед алертом)
- Настройте каналы уведомлений
- Сохраните монитор и скопируйте MONITOR_ID
Подробнее о Heartbeat мониторах: Документация Heartbeat
Создание скрипта мониторинга
Создайте скрипт /data/tuna/tuna-heartbeat.sh:
cat << 'EOF' > /data/tuna/tuna-heartbeat.sh
#!/bin/sh
# Ждём сеть
while ! ip route | grep -q default; do
sleep 1
done
# Бесконечный цикл отправки heartbeat
while true; do
/data/tuna/tuna monitor ping --host=nanokvm YOUR_MONITOR_ID
# Интервал между пингами (30 минут = 1800 секунд)
sleep 1800
done
EOF
chmod +x /data/tuna/tuna-heartbeat.sh
Если используете curl то вместо строки:
/data/tuna/tuna monitor ping --host=nanokvm YOUR_MONITOR_ID
укажите вызов curl и ссылку из личного кабинета:
curl -sSLf -m 5 https://monitor.tuna.am/YOUR_MONITOR_ID/nanokvm
Замените YOUR_MONITOR_ID на реальный ID монитора из личного кабинета.
Пояснение параметров:
| Параметр | Описание |
|---|---|
YOUR_MONITOR_ID | ID монитора из личного кабинета (обязательно) |
--host=nanokvm | Идентификатор устройства в логах мониторинга (опционально) |
sleep 300 | Интервал между сигналами в секундах (должен соответствовать настройке монитора) |
Настройка автозапуска
Добавьте строку в /etc/inittab для автоматического запуска и перезапуска мониторинга:
cat << 'EOF' >> /etc/inittab
# Tuna Heartbeat monitor (respawn = auto-restart)
thb::respawn:/data/tuna/tuna-heartbeat.sh
EOF
Применить без перезагрузки:
kill -HUP 1