Files
homelab-docs/docs/monitoring/netdata-proxmox-setup.md
Andrey 604f0c705f Update container documentation to reflect disk space adjustments and Docker log management
Expand the root disk size from 35 GB to 50 GB and implement log size limits for Docker containers. Add details about the new monitoring dashboard for homelab services, including deployment instructions and access URL. Ensure clarity on log rotation policies and risks associated with disk space usage.
2026-02-28 17:10:34 +03:00

6.0 KiB
Raw Permalink Blame History

Netdata на хосте Proxmox

Мониторинг CPU, RAM, дисков, load average, swap. Алерты в Telegram.


Доступ

Параметр Значение
URL http://192.168.1.150:19999
Режим Локальный, анонимный (Cloud отключён)

Установка

На хосте Proxmox (root):

# Официальный установщик
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh
sh /tmp/netdata-kickstart.sh --stable-channel --disable-telemetry

Или через пакетный менеджер (если доступен):

apt update && apt install -y netdata

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

Редактировать: /etc/netdata/health_alarm_notify.conf

cd /etc/netdata
./edit-config health_alarm_notify.conf

Добавить/изменить:

SEND_TELEGRAM="YES"
TELEGRAM_BOT_TOKEN="<токен из Vaultwarden: HOME_BOT_TOKEN>"
DEFAULT_RECIPIENT_TELEGRAM="<chat_id из Vaultwarden: RESTIC.TELEGRAM_SELF_CHAT_ID>"

Креды можно взять из Vaultwarden (объекты HOME_BOT_TOKEN, RESTIC) или из /root/.telegram-notify.env.


Алерты (health.d)

Файлы в /etc/netdata/health.d/. Создать или переопределить:

cpu.conf — CPU > 90% более 10 минут

# Переопределение: CPU > 90% = warning
template: cpu_usage
on: system.cpu
lookup: average -10m percentage of usage
warn: $this > 90
crit: $this > 95

ram.conf — RAM > 90%

template: ram_usage
on: system.ram
lookup: average -10m percentage of used
warn: $this > 90
crit: $this > 95

load.conf — Load average > cores × 2

# Load average: warn если load > 2 × число ядер
# Число ядер: nproc или lscpu
template: load_average
on: system.load
lookup: average -10m of load15
# Порог задаётся вручную под хост (cores × 2). Пример для 8 ядер: 16
warn: $this > 16
crit: $this > 24

Важно: заменить 16 и 24 на cores × 2 и cores × 3 для вашего хоста. Узнать ядра: nproc.

swap.conf — Swap > 0 стабильно

template: swap_usage
on: system.swap
lookup: average -10m percentage of used
warn: $this > 0
crit: $this > 10

disk.conf — Диск > 80% (avail < 20%)

Мониторить: / (root, NVMe), /mnt/backup (sdb), внешний диск (sdd). Netdata использует percentage of avail — warn при avail < 20% (т.е. used > 80%).

# Шаблон для важных дисков: warn при avail < 20%, crit при avail < 10%
template: disk_space_critical
on: disk.space
lookup: max -1m percentage of avail
warn: $this < 20
crit: $this < 10

Или для конкретных путей (chart ID: disk_space._ с подчёркиваниями вместо слешей):

# / (root, NVMe)
alarm: disk_space_root
on: disk_space._
lookup: max -1m percentage of avail
chart labels: mount_point=/
warn: $this < 20
crit: $this < 10

# /mnt/backup (sdb)
alarm: disk_space_backup
on: disk_space._mnt_backup
lookup: max -1m percentage of avail
warn: $this < 20
crit: $this < 10

Узнать точные chart ID: curl -s "http://localhost:19999/api/v1/charts" | grep disk_space


SMART (smartmontools)

Для мониторинга SMART через Netdata:

apt install -y smartmontools

Плагин smartd в Netdata автоматически обнаруживает диски. Дополнительно см. smartd-setup.md.


Применение изменений

netdatacli reload-health
# или
systemctl restart netdata

Тест алертов:

sudo su -s /bin/bash netdata
export NETDATA_ALARM_NOTIFY_DEBUG=1
/usr/libexec/netdata/plugins.d/alarm-notify.sh test

Мониторинг контейнеров и VM

Netdata на хосте видит общие метрики (CPU, RAM, диск хоста). Для детального мониторинга каждого LXC/VM:

  • Вариант 1: Netdata parent/child — установить агент в каждый CT/VM, связать с родителем.
  • Вариант 2: Один Netdata на хосте — мониторит хост и агрегирует по контейнерам через cgroups (если включено).

Для homelab обычно достаточно мониторинга хоста. При необходимости — см. Netdata Parent-Child.


Отключение Netdata Cloud

Если не нужен trial/Cloud:

  1. Полное отключение: удалить /var/lib/netdata/cloud.d/ (токены, ключи) и создать заново только cloud.conf:

    rm -rf /var/lib/netdata/cloud.d
    mkdir -p /var/lib/netdata/cloud.d
    echo -e "[global]\nenabled = no" > /var/lib/netdata/cloud.d/cloud.conf
    chown -R netdata:netdata /var/lib/netdata/cloud.d
    systemctl restart netdata
    
  2. Локальный дашбордhttp://host:19999 (анонимный доступ, без Cloud). Не использовать app.netdata.cloud — иначе снова появится claim/Cloud.


Дашборд homelab

Кастомный дашборд с метриками хоста, контейнеров и сервисов: http://192.168.1.150:19998

Ссылка добавлена в Homepage (Сервисы → Homelab Dashboard). Деплой: scripts/dashboard/deploy-dashboard.sh. Подробнее: dashboard-plan.md.


Связанные документы