Netdata: моніторинг VPS в реальному часі — безкоштовно
Довго не мав нормального моніторингу на своєму VPS — просто зрідка заходив і дивився htop. Але це не моніторинг, це лотерея. Вирішив виправити ситуацію і поставив Netdata.
Що таке Netdata
Netdata — безкоштовний інструмент моніторингу з відкритим кодом. Збирає тисячі метрик кожну секунду і показує їх у красивому веб-дашборді: CPU, RAM, диск, мережа, процеси, сервіси — все в реальному часі з красивими графіками.
На моєму VPS він одразу знайшов 4817 метрик. 4817, Карл.
Встановлення на AlmaLinux 9
Встановлення одним рядком — скрипт сам визначає дистрибутив:
1
LANG=en_US.UTF-8 bash <(curl -SsL https://get.netdata.cloud/kickstart.sh)
Зверни увагу на LANG=en_US.UTF-8 на початку — без цього на AlmaLinux 9 з кирилицею в терміналі виникає помилка UTF-8 в dnf. Дрібниця, але вбиває годину пошуку причини.
Після встановлення запускаємо і вмикаємо автозапуск:
1
2
3
systemctl start netdata
systemctl enable netdata
systemctl status netdata
Перевіряємо що працює:
1
curl -s http://localhost:19999/api/v1/info | head -5
Якщо бачиш версію і uid — все добре.
Доступ до дашборду
Netdata слухає на порту 19999. Відкривати цей порт напряму в інтернет — погана ідея. Натомість використовуємо SSH-тунель:
1
2
# На Windows
ssh -L 19999:localhost:19999 root@sedunlab.com
Поки це вікно відкрите — заходь на http://localhost:19999 і бачиш повний дашборд свого сервера.
При першому відкритті Netdata запропонує Sign-in через Netdata Cloud. Можна зареєструватись для додаткових функцій, але якщо хочеш просто локальний моніторинг — натискай “Skip and use the dashboard anonymously” внизу праворуч.
Що показує дашборд
Дашборд Netdata — CPU, RAM, диск і мережа в реальному часі
Зліва — дерево метрик. Основні розділи:
- System → Compute → CPU — завантаження процесора по ядрах, load average, системний та користувацький час
- System → Memory — RAM, swap, кеш
- System → Storage — читання/запис дисків, IOPS
- System → Network — трафік по інтерфейсах
- System → Processes — які процеси скільки їдять
- Applications — розбивка по конкретних програмах
Вгорі — зведені циферблати: поточне навантаження CPU і RAM, мережевий трафік, дискові операції.
Графіки інтерактивні — можна наводити мишею, масштабувати, порівнювати часові проміжки.
Що я побачив після встановлення
Сервер працює спокійно — CPU майже нульовий більшість часу, пики видно лише коли Jekyll збирає сайт після git push. Load average тримається біля 0.2-0.3. RAM використовується приблизно на 40% — є запас.
Без моніторингу я б цього просто не знав.
Корисні команди
1
2
3
4
5
6
7
8
# Перезапустити Netdata
systemctl restart netdata
# Подивитись логи
journalctl -u netdata -f
# Конфігурація
nano /etc/netdata/netdata.conf
Висновок
Встановлення займає 5 хвилин, дашборд виглядає серйозно, і все це безкоштовно. Єдиний мінус — порт не відкриваємо назовні, тому доступ тільки через SSH-тунель. Але це скоріше перевага з точки зору безпеки.
Наступний крок — Uptime Kuma для моніторингу доступності самих сайтів з повідомленнями в Telegram. Про це окрема стаття.