Netdata
Netdata — частично открытое программное обеспечение для мониторинга, предназначенное для сбора в реальном времени таких метрик, как загрузка процессора, активность дисковой системы, использование пропускной способности, посещения веб-сайта и других, с последующим отображением в живых, легко интерпретируемых графиках. Также встречается написание NetData. Программа распространяется по лицензии GNU GPLv3, тогда как дашборд версии 2 использует лицензию NCUL1[1].
Общие сведения
| Netdata | |
|---|---|
| Написана на | C, Python, JavaScript |
| Операционные системы | Linux, FreeBSD, macOS |
| Первый выпуск | 24 октября 2013 |
| Последняя версия | 2.2.0 (24 января 2025) |
| Репозиторий | github.com/netdata/netda… |
| Лицензия | GNU GPLv3, дашборд по умолчанию (v2): NCUL1 |
| Сайт | netdata.cloud |
Общее описание
Netdata состоит из демона, который при запуске собирает и отображает информацию о системе в реальном времени.
Большая часть кода написана на C, Python и JavaScript, программа ориентирована на минимальное использование системных ресурсов.
Netdata может запускаться на любой системе с Linux для мониторинга системных и прикладных параметров и совместима с ПК, серверами и встраиваемыми Linux-устройствами.
Возможности
Netdata разрабатывается с расчётом на возможность установки без прерывания работы других приложений. Программа использует только ресурсы, не занятые основной работой (idle CPU), и работает в рамках лимитов памяти, заданных пользователем. После запуска не выполняет операций с диском, кроме логирования; запись данных производится в конце работы, при следующем запуске они подгружаются обратно.
В комплекте по умолчанию идут плагины для сбора ключевых системных метрик, однако поведение программы можно расширять при помощи API для плагинов.
Сгенерированные графики могут быть встроены в веб-страницы. Интерфейс имеет настраиваемые темы и допускает ручную конфигурацию с помощью HTML.
Netdata не требует сторонних зависимостей, так как функционирует как собственный веб-сервер, обслуживающий статические веб-файлы.
Программа известна своей распределённой архитектурой[2]. В отличие от традиционных мониторинговых решений, где данные стекаются в центральные базы, Netdata обрабатывает их на периферии, максимально близко к источнику. Лёгковесный агент Netdata действует как распределённая база данных, позволяя строить сложные пайплайны наблюдаемости по модульному принципу.
Netdata предоставляет аналитические средства на базе искусственного интеллекта для всех собираемых данных, включая обучение моделей машинного обучения прямо на краях инфраструктуры[3]. Это позволяет полностью автоматизировать и проводить неконтролируемое обнаружение аномалий; с помощью API и графического интерфейса пользователи могут проводить анализ первопричин и подробно исследовать взаимосвязи в инфраструктуре.
Начиная с версии 1.12, Netdata по умолчанию собирает анонимную статистику использования и отправляет её в Google Analytics; эту функцию можно отключить вручную[4].
Принцип работы
При запуске демона Netdata на Linux с помощью одноимённой команды создаются потоки, собирающие информацию по каждому ресурсу, используя внутренние и внешние плагины. Все значения сохраняются в памяти без диск-операций (кроме логов).
Программа выступает самостоятельным веб-сервером для своих статических файлов, формирующих дашборды[5].[6] Для обмена с браузером имеется REST API.
Каждая установка программы полностью автономна. Хотя различные инстансы Netdata могут отображаться на одном дашборде, каждая из них независима; только браузер способен объединять их показания, отображая графики разных систем как данные одного сервера.
Разработка
В проекте Netdata участвуют порядка 400 разработчиков[7], обслуживающих тысячи пользователей и организаций по всему миру[8]. Лидером по числу коммитов является Коста Цаусис, создатель и генеральный директор Netdata, внёсший в проект более 600 000 правок[9].[10] Вторым по активности является Илья Мащенко[11].
Самым обсуждаемым изменением за все время стала поддержка сбора метрик из VnStat — пулл-реквест Ноя Троя с почти 200 комментариями[12].
Самая популярная просьба среди пользователей — обеспечение поддержки одновременного запуска нескольких freeipmi-процессов из одного Netdata[13].
Примечания
- ↑ Netdata/SRC/Web/Gui/V2/LICENSE.md at 030aae390496e75d92e3788a31d5889df08987c4 · netdata/Netdata (англ.). GitHub. Дата обращения: 21 июня 2024. Архивировано 15 января 2025 года.
- ↑ Decentralized Monitoring Explained (англ.). netdata.cloud (6 февраля 2025). Дата обращения: 21 июня 2024. Архивировано 21 мая 2025 года.
- ↑ Netdata A.I and Machine Learning feature (англ.). netdata.cloud (6 февраля 2025). Дата обращения: 21 июня 2024.
- ↑ Netdata usage statistics opt out (англ.). GitHub (17 февраля 2022). Дата обращения: 21 июня 2024. Архивировано 9 марта 2022 года.
- ↑ web/gui/custom · master · Debian / netdata · GitLab (англ.) (13 сентября 2019). Дата обращения: 21 июня 2024. Архивировано 21 января 2025 года.
- ↑ How to Monitor Linux Server with Netdata and Grafana (англ.) (2 марта 2019). Дата обращения: 21 июня 2024. Архивировано 10 июля 2025 года.
- ↑ netdata/netdata (англ.). GitHub. Дата обращения: 12 июля 2020. Архивировано 13 июля 2020 года.
- ↑ netdata/netdata (англ.). netdata (12 июля 2020). Дата обращения: 12 июля 2020. Архивировано 13 июля 2020 года.
- ↑ Miller, Ron. Netdata, a monitoring startup with 50-year-old founder, announces $17M Series A (англ.) (25 September 2019). Архивировано 5 октября 2025 года. Дата обращения: 21 июня 2024.
- ↑ ktsaou - Overview (англ.). GitHub. Дата обращения: 12 июля 2020. Архивировано 15 августа 2025 года.
- ↑ ilyam8 - Overview (англ.). GitHub. Дата обращения: 12 июля 2020. Архивировано 3 мая 2025 года.
- ↑ Add support for data collection from vnstat by NoahTroy · Pull Request #8955 · netdata/netdata (англ.). GitHub. Дата обращения: 12 июля 2020. Архивировано 5 января 2025 года.
- ↑ Allow running multiple freeipmi jobs from the same netdata · Issue #5344 · netdata/netdata (англ.). GitHub. Дата обращения: 12 июля 2020. Архивировано 14 января 2025 года.
Ссылки
- Проект Netdata на сайте GitHub