访问该项目的主页
菜单:开始|它是如何运作的|常见问题|文档|社区|贡献|执照
重要的
人们沉迷于网络数据。一旦您在系统上使用它,就无法回头!
Netdata是一个高性能、云原生、本地可观察性平台,旨在以无与伦比的效率监控指标和日志。它提供了一种更简单、更快速且显着更轻松的方法来对系统、容器和应用程序进行实时、低延迟监控。 Netdata 需要零配置即可启动,提供开箱即用的强大而全面的监控体验。
Netdata 还以其经济高效的分布式设计而闻名。与集中数据的传统监控解决方案不同, Netdata 分布式代码。 Netdata 不是将所有数据集中到几个中央数据库中,而是在边缘处理数据,使其靠近源头。智能开源 Netdata Agent 充当分布式数据库,能够以模块化、乐高式的简单性构建复杂的可观测性管道。
Netdata 为所有监控数据提供人工智能见解,直接在边缘训练机器学习模型。这允许完全自动化和无监督的异常检测,并且通过其直观的 API 和 UI,用户可以快速执行根本原因分析并解决问题,识别相关性并深入了解其基础设施。
Netdata 基于三个核心部分构建:
Netdata Agent (通常简称“Netdata”):这个开源组件是 Netdata 生态系统的核心,负责处理可观测性数据的数据收集、存储(嵌入式数据库)、查询、机器学习、导出和警报。 Netdata 生态系统提供的所有可观测数据和功能均由 Netdata 代理管理。它在物理和虚拟服务器、云环境、Kubernetes 集群和边缘/物联网设备中运行,并经过精心优化,对生产系统和应用程序产生零影响。
Netdata Cloud :Netdata Cloud 增强了 Netdata 代理,提供了用户管理、基于角色的访问控制、水平可扩展性、警报和通知管理、从任何地方访问等企业功能。 Netdata Cloud不集中或存储可观测性数据。
Netdata Cloud 是一款商业产品,可作为本地安装或 SaaS 解决方案使用,并具有免费社区层。
Netdata UI :为所有仪表板、数据可视化和配置提供支持的用户界面。
虽然是闭源的,但它可以通过 Netdata Agent 和 Netdata Cloud 的公共 API 免费使用。它包含在 Netdata 提供的二进制包中,其最新版本通过 CDN 公开提供。
即使在复杂的多云或混合环境中,Netdata 也可以轻松从一台服务器扩展到数千台服务器,并且能够保留数据多年。
从 800 多个集成中收集数据
操作系统指标、容器指标、虚拟机、硬件传感器、应用程序指标、OpenMetrics 导出器、StatsD 和日志。 OpenTelemetry 即将被纳入(目前正在开发中)...
实时、低延迟、高分辨率
所有数据每秒收集一次,并在数据收集后立即在 API 上提供以进行可视化(1 秒延迟,数据收集到可视化)。
全面人工智能
针对收集的每个指标在边缘训练多个机器学习 (ML) 模型,并使用 AI 根据每个指标过去的行为检测异常。
systemd-journald 日志
包括有效地将纯文本日志(text、csv、logfmt、json)文件转换为结构化 systemd-journald 条目( log2journal
、 systemd-cat-native
)的工具,并直接查询 systemd-journal 文件,从而启用强大的日志可视化仪表板。 Netdata Agent 消除了集中日志的需要,并提供了直接在边缘处理日志的所有功能。
像乐高积木一样,可观察性管道
Netdata 代理可以链接在一起(以父子关系),以在您的基础设施内构建可观察性集中点,从而允许您在多个级别上控制数据复制和保留。
全自动强大的可视化
使用 NIDL(节点、实例、维度和标签)数据模型,Netdata 代理可以创建完全自动化的仪表板,提供所有指标的相关可视化,使您可以第一眼了解任何数据集,还可以过滤、切片和直接在仪表板上对数据进行切分,无需学习查询语言。
注意:Netdata UI 是闭源的,但可以免费与 Netdata Agents 和 Netdata Cloud 一起使用。
?开箱即用警报
附带数百个开箱即用的警报,用于检测常见问题和陷阱,揭示很容易被忽视的问题。它支持多种通知方法,让您知道何时需要您的注意。
?低维护成本
各个方面都完全自动化:自动化仪表板、开箱即用的警报、自动检测和自动发现指标、零接触机器学习、轻松可扩展性和高可用性以及 CI/CD 友好。
开放且可扩展
Netdata 是一个模块化平台,可以以所有可能的方式进行扩展,并且它还可以与其他监控解决方案很好地集成。
Netdata 监控以下所有内容:
成分 | Linux | 自由BSD | macOS | 视窗 |
---|---|---|---|---|
系统资源 CPU、内存和系统共享资源 | 满的 | 是的 | 是的 | 是的 |
贮存 磁盘、挂载点、文件系统、RAID 阵列 | 满的 | 是的 | 是的 | 是的 |
网络 网络接口、协议、防火墙等 | 满的 | 是的 | 是的 | 是的 |
硬件和传感器 风扇、温度、控制器、GPU 等 | 满的 | 一些 | 一些 | 一些 |
操作系统服务 资源、绩效和状态 | 是的systemd | - | - | - |
流程 资源、性能、OOM 等 | 是的 | 是的 | 是的 | 是的 |
系统和应用程序日志 | 是的systemd 日志 | - | - | 是的Windows Event Log ,以及Event Tracing for Windows |
网络连接 每个 PID 的实时 TCP 和 UDP 套接字 | 是的 | - | - | - |
集装箱 Docker/containerd、LXC/LXD、Kubernetes 等 | 是的 | - | - | - |
VM (来自主机) KVM、qemu、libvirt、Proxmox 等 | 是的cgroups | - | - | 是的Hyper-V |
综合检查 测试 API、TCP 端口、Ping、证书等 | 是的 | 是的 | 是的 | 是的 |
打包应用程序 nginx、apache、postgres、redis、mongodb、 还有数百个 | 是的 | 是的 | 是的 | 是的 |
云提供商基础设施 AWS、GCP、Azure 等 | 是的 | 是的 | 是的 | 是的 |
定制应用程序 OpenMetrics、StatsD 以及即将推出的 OpenTelemetry | 是的 | 是的 | 是的 | 是的 |
当 Netdata Agent 在 Linux 上运行时,它会监视每个可用的内核功能,提供所有内核技术的全面覆盖,并提供完整的企业硬件覆盖,监视提供硬件错误报告的所有组件,例如 PCI AER、RAM EDAC、IPMI、SMART、NVMe 、风扇、电源、电压等。
2023 年 12 月 11 日:阿姆斯特丹大学发表了一项有关监控工具对基于 Docker 的系统的影响的研究,旨在回答 2 个问题:
监控对基于 Docker 的系统能效的影响
监控对基于 Docker 的系统有何影响?
Netdata 在能源效率方面表现出色: “...Netdata 是最节能的工具...” ,正如研究所说。
Netdata 在 CPU 使用率、RAM 使用率和执行时间方面表现出色,并且对网络流量的影响与 Prometheus 类似。
该研究没有根据收集的指标数量对结果进行标准化。鉴于 Netdata 通常比其他工具收集更多的指标,因此 Netdata 成功地超越了其他工具,同时吸收了更多数量的指标。在这里阅读完整的研究。
在相同的工作负载下,Netdata 使用的CPU 减少了 35% , RAM 减少了 49% ,带宽减少了 12% ,磁盘 I/O 减少了 98% ,并且在高分辨率指标存储上磁盘空间效率提高了 75% ,同时提供一年多的时间在相同磁盘占用空间上的总体保留时间 Prometheus 提供 7 天的保留时间。阅读我们博客中的完整分析。
Netdata 积极支持云原生计算基金会 (CNCF),并且是该基金会的成员
...由于您的爱❤️,它成为 CNCF 领域最受关注的项目之一!
下面是一个动画图像,但您可以实时看到 Netdata!
法兰克福|纽约|亚特兰大|旧金山|多伦多|新加坡|班加罗尔
它们是集群网络数据代理父级。他们都有相同的数据。选择离您较近的一个。
所有这些都以默认配置运行。我们只是将它们集群起来以获得多节点仪表板。
注意:这些演示包括 Netdata UI、
虽然它是闭源的,但可以免费与 Netdata Agents 和 Netdata Cloud 一起使用。
Netdata 可以安装在所有 Linux、macOS、FreeBSD(很快将安装在 Windows)系统上。我们为最流行的操作系统和包管理器提供二进制包。
在 Ubuntu、Debian CentOS、Fedora、Suse、Red Hat、Arch、Alpine、Gentoo 甚至 BusyBox 上安装。
使用 Docker 安装。
Netdata 是 DockerHub 上的经过验证的发布者,我们的用户享受免费、无限制的 DockerHub 拉取。
在 macOS 上安装?
在 FreeBSD 和 pfSense 上安装。
从源安装
对于 Kubernetes 部署,请查看此处。
另请参阅 Netdata 部署指南来决定如何将其部署在您的基础设施中。
默认情况下,您将立即可以使用本地仪表板。 Netdata 在端口19999
为其仪表板启动 Web 服务器。打开您选择的 Web 浏览器并导航到http://NODE:19999
,将NODE
替换为您的代理的 IP 地址或主机名。如果安装在本地主机上,您可以通过http://localhost:19999
访问它。
注意:我们提供的二进制包会自动安装 Netdata UI。 Netdata UI 是闭源的,但可以免费与 Netdata Agents 和 Netdata Cloud 一起使用。
Netdata 自动检测和发现大多数操作系统数据源和应用程序。然而,许多数据源需要一些手动配置,通常是为了允许 Netdata 访问指标。
有关 800 多个可用收藏家的详细列表,请查看本指南。
要监控 Windows 服务器和应用程序,请使用本指南。
请注意,Windows 上的 Netdata 正处于最终版本阶段,因此在下一个 Netdata 版本中,Netdata 将原生支持 Windows。
要监控 SNMP 设备,请查看本指南。
Netdata 附带数百个预配置警报,可在开始收集指标后立即自动检查您的指标。
Netdata 可以向多个第三方系统发送警报通知,包括: email
、 Alerta
、 AWS SNS
、 Discord
、 Dynatrace
、 flock
、 gotify
、 IRC
、 Matrix
、 MessageBird
、 Microsoft Teams
、 ntfy
、 OPSgenie
、 PagerDuty
、 Prowl
、 PushBullet
、 PushOver
、 RocketChat
、 Slack
、 SMS tools
、 Syslog
、 Telegram
、 Twilio
。
默认情况下,如果系统上配置了 MTA,Netdata 将发送电子邮件通知。
(可选)配置一个或多个网络数据父级。 Netdata Parent 是一个 Netdata Agent,已配置为接受来自其他 Netdata 代理的流连接。
Netdata 家长提供:
基础设施级别仪表板,位于http://parent.server.ip:19999/
。
每个 Netdata Agent 都有一个 API 侦听每个服务器的 TCP 端口 19999。当您使用 Web 浏览器(例如http://server.ip:19999/
)访问该端口时,将显示 Netdata Agent UI。当网络数据代理也是父级时,父级的 UI 包括将指标流式传输到该父级的所有节点的数据。
提高所有节点的所有指标的保留率。
每个网络数据代理维护各自的指标数据库。但家长可以获得额外的资源来维护比单个网络数据代理更长的数据库。
警报的集中配置和通知的发送。
使用 Netdata Parent,所有警报通知集成只能在 Parent 上配置一次,并且可以在 Netdata Agent 上禁用。
您还可以使用 Netdata Parent 来:
卸载您的生产系统(父母为所有孩子运行机器学习、警报、查询等)
保护您的生产系统(父母接受所有孩子的用户连接)
登录 Netdata Cloud 并认领您的 Netdata 代理和家长。如果您连接 Netdata 父级,则无需连接 Netdata 代理。他们将通过父母连接。
当您的 Netdata 节点连接到 Netdata Cloud 时,您可以(除上述之外):
从任何地方访问您的 Netdata 代理
访问敏感的 Netdata 代理功能(例如“Netdata 功能”:进程、systemd-journal)
在空间和房间中组织您的基础设施
创建、管理和共享自定义仪表板
邀请您的团队并为他们分配角色(基于角色的访问控制)
获得无限的水平可扩展性(多个独立的网络数据代理被视为一个基础设施)
从 UI 配置警报
从 UI 配置数据收集
Netdata 移动应用程序通知
Netdata Cloud 不会阻止您直接使用 Netdata 代理和父级,反之亦然。
当您将 Netdata 代理和父级连接到 Netdata Cloud 时,您的指标仍存储在网络中。
Netdata 是围绕模块化指标处理管道构建的。
每个网络数据代理可以执行以下功能:
从来源COLLECT
指标
使用内部和外部插件从其来源收集数据。
Netdata 自动检测并收集操作系统中的几乎所有内容:包括 CPU、中断、内存、磁盘、挂载点、文件系统、网络堆栈、网络接口、容器、虚拟机、进程、 systemd
单元、Linux 性能指标、Linux eBPF、硬件传感器、IPMI 等。
它从以下应用程序收集应用程序指标:PostgreSQL、MySQL/MariaDB、Redis、MongoDB、Nginx、Apache 等。
Netdata 还通过抓取 OpenMetrics 导出器或通过 StatsD 来收集您的自定义应用程序指标。
它可以将 Web 服务器日志文件转换为指标,并实时对其应用 ML 和警报。
它还支持综合测试/白盒测试,因此您可以 ping 服务器、检查 API 响应,甚至检查文件系统文件和目录以生成指标、训练 ML 并运行有关其状态的警报和通知。
将指标STORE
到数据库
使用数据库引擎插件将收集的数据存储在内存和/或磁盘上。我们开发了自己的dbengine
以非常有效的方式存储数据,使 Netdata 在磁盘上的每个样本少于一个字节,并且查询速度快得惊人。
LEARN
指标的行为(ML)
针对每个指标训练多个机器学习 (ML) 模型,以单独学习每个指标的行为。 Netdata 使用kmeans
算法,并根据过去 6 小时内为该指标收集的值,默认每小时为每个指标创建一个模型。经过训练的模型会保存到磁盘上。
DETECT
指标中的异常(ML)
使用经过训练的机器学习 (ML) 模型来检测异常值并将收集的样本标记为异常。 Netdata 将异常信息与每个样本存储在一起,并将其流式传输到 Netdata 父级,以便在查询时也可以获取每个指标的整个保留的异常信息。
CHECK
指标并触发警报通知
使用其配置的警报(您可以配置自己的)来检查常见问题的指标,并使用通知插件发送警报通知。
将指标STREAM
至其他网络数据代理
将指标实时推送给 Netdata Parent。
将指标ARCHIVE
到第三方数据库
将指标导出到行业标准时间序列数据库,例如Prometheus
、 InfluxDB
、 OpenTSDB
、 Graphite
等。
QUERY
指标和当前仪表板
提供 API 来查询数据并向用户呈现交互式仪表板。
SCORE
指标揭示相似性和模式
根据给定的标准对指标进行评分,大海捞针。
使用Netdata Parent时,Netdata Agent的所有功能(数据收集除外)都可以委托给Parents以减轻生产系统的负担。
Netdata 的核心是用 C 语言开发的。我们有自己的libnetdata
,它提供:
DICTIONARY
一种高性能算法,用于维护 Netdata 所需的索引和有序结构池。它使用 JudyHS 数组进行索引,尽管它是模块化的:任何哈希表或树都可以集成到其中。尽管字典是用 C 语言编写的,但它遵循面向对象的编程原则,因此有构造函数、析构函数、自动内存管理、垃圾收集等等。有关更多信息,请参见此处。
ARAL
ARray ALLocator (ARAL) 用于最小化 Netdata 进行的系统分配。 ARAL 针对最大多线程性能进行了优化。它还允许使用它的所有结构分配在内存映射文件(共享内存)而不是 RAM 中。有关更多信息,请参见此处。
PROCFILE
高性能/proc
(也可以是任何)文件解析器和文本标记器。它通过保持文件打开并调整其缓冲区以在一次调用中读取整个文件来实现其性能(这也是 Linux 内核所要求的)。有关更多信息,请参见此处。
STRING
字符串互联网机制,用于字符串重复数据删除和索引(使用 JudyHS 数组),针对多线程使用进行了优化。有关更多信息,请参见此处。
ARL
自适应可度假村列表 (ARL) 是一种非常快速的列表迭代器,它按照在输入列表中找到的相同顺序保留列表中的预期项目。因此,第一次迭代有点慢,但所有后续迭代都完美对齐以获得最佳性能。有关更多信息,请参见此处。
BUFFER
灵活的文本缓冲区管理系统,允许 Netdata 自动处理动态大小的文本缓冲区分配。 Netdata API 使用相同的机制生成一致的 JSON 输出。有关更多信息,请参见此处。
SPINLOCK
与 POSIX MUTEX
和RWLOCK
类似,但速度更快,基于原子操作,内存影响显着更小,同时可移植。
PGC
一个缓存层,可用于缓存任何类型的时间相关数据,具有自动索引(基于 JudyL 数组树)、内存管理、驱逐、刷新、压力管理。这在dbengine
中被广泛使用。有关更多信息,请参见此处。
上述以及更多其他内容使 Netdata 开发人员能够快速、充满信心地开发应用程序。 Netdata 中的大部分业务逻辑都是上述内容的混合工作。
Netdata 数据收集插件可以用任何语言开发。我们的大多数应用程序收集器都是用 Go 开发的。
当然是!我们尽力确保这一点!
我们知道 Netdata 是一个安装在全球数百万生产系统上的软件。因此,对于我们 Netdata 来说,尽可能安全非常重要:
我们遵循开源安全基金会最佳实践。
在安全设计方面,我们非常注重细节。查看我们的安全设计。
Netdata 是一个流行的开源项目,经常受到许多安全分析师的测试。
另请查看我们迄今为止发布的安全政策和建议。
不,不会!我们保证这会很快!
尽管每个 Netdata 代理都是打包到单个应用程序中的完整监控解决方案,并且尽管 Netdata每秒收集每个指标并为每个指标训练多个 ML 模型,但您会发现 Netdata 具有惊人的性能!在许多情况下,它的性能优于其他功能少得多或数据收集率低得多的监控解决方案。
这是您应该期待的:
对于生产系统,每个具有默认设置(启用所有功能、ML、运行状况、数据库)的 Netdata 代理应消耗一个核心约 5% 的 CPU 利用率以及约 150 MiB 或 RAM。
通过使用 Netdata 父级并将所有指标流式传输到该父级,您可以禁用 ML 和运行状况并在子级上使用临时数据库(如alloc
),从而导致单核 CPU 利用率约 1% 和 RAM 100 MiB。当然,这些取决于收集的指标数量。
对于 Netdata Parent,对于每秒收集的大约 1 到 200 万个指标,我们建议使用具有 16 核和 32GB RAM 的服务器。其中不到一半将用于数据收集和机器学习。其余的将可供查询。
Netdata 拥有广泛的内部工具来帮助我们揭示消耗的资源是如何使用的。所有这些都可以在仪表板的“网络数据监控”部分中找到。根据您的使用案例,有许多选项可以优化资源消耗。
即使您需要在极其脆弱的嵌入式或物联网系统上运行 Netdata,您也会发现 Netdata 可以调整为非常高性能。
你需要多少就多少!
Netdata 支持分层,以对过去的数据进行下采样并节省磁盘空间。使用默认设置,它具有三层:
tier 0
,具有高分辨率、每秒数据。
tier 1
,中等分辨率,每分钟数据。
tier 2
,低分辨率,每小时数据。
所有层在数据收集期间并行更新。增加为 Netdata 提供的磁盘空间,以获得更长的指标历史记录。根据时间范围和请求的分辨率,在查询时自动选择层。
Netdata 旨在扩展并可以处理大量数据。
通过代理的流功能,我们可以支持监控临时服务器,但也允许创建“监控岛”,其中指标聚合到一些服务器(网络数据父级)以提高保留率或卸载生产系统。
?此外,Netdata Cloud 提供几乎无限的水平可扩展性。它在查询时将您拥有的所有 Netdata 父级“合并”到一个统一的基础设施中。 Netdata Cloud 本身可能是有史以来最大的单一安装监控平台,目前监控约 100k 在线服务器,其中每天约有 10k 台服务器更改状态(添加/删除)!
示例:以下图表来自单个 Netdata 父级。正如您所看到的,244 个节点向其传输约 20k 正在运行的容器的指标。在这个特定的图表上,每个容器有三个维度,因此总共执行了大约 60k 时间序列查询来呈现它。
是的,你可以!
Netdata Agent 旨在跨时间分布磁盘写入。每个指标每 17 分钟(1000 秒)刷新到磁盘,但指标以几乎恒定的速率跨时间均匀刷新。此外,指标被打包到我们称为extents
的更大块中,并在保存之前使用 ZSTD 进行压缩,以最大限度地减少 I/O 操作的数量。
Netdata Agent 还为其所有数据库操作采用直接 I/O。通过管理自己的缓存,Netdata 避免了系统缓存负担过重,从而促进与其他应用程序的和谐共存。
单节点代理(不是父节点)应具有大约 50 KiB/s 或更低的恒定写入速率,每分钟都有一些高于该值的峰值(第 1 层的刷新),每小时会有更高的峰值(第 2 层的刷新)。
健康警报和机器学习运行查询来评估其表达式并从指标模式中学习。这些也随着时间的推移而传播,因此读取率也应该几乎恒定。
为了使 Netdata 完全不使用磁盘,我们建议如下:
使用数据库模式alloc
或ram
禁用将指标数据写入磁盘。
配置流式传输以将所有指标实时推送到 Netdata 父级。 Netdata Parent 将在磁盘上维护该节点的指标。
在此节点上禁用 ML 和运行状况。 Netdata Parent 将为该节点执行这些操作。
使用 Netdata Parent 访问仪表板。
使用上述内容,生产系统上的 Netdata 代理将不使用磁盘。
Netdata 是一个“即用型”监控解决方案。 Prometheus 和 Grafana 是构建您自己的监控解决方案的工具。
Netdata 的速度也快得多,需要的资源也少得多,并且几乎不会对其运行的服务器造成任何压力。有关性能比较,请查看此博客。
首先,我们不得不说,作为时间序列数据库的 Prometheus 和作为可视化工具的 Grafana 都是出色的工具。
然而,我们认为这样的设置缺少一个关键要素:Prometheus 和 Grafana 设置假设您了解有关收集的指标的所有信息,并且深入了解它们的结构,应该对它们进行查询和可视化。
事实上,这样的设置存在很多问题。我们在现代堆栈中使用的大量技术、操作系统和应用程序使得任何一个人都不可能了解和理解任何事物的一切。我们定期从大型企业的 Netdata 用户那里得到评价,称 Netdata 设法揭示他们不知道的问题、异常情况和问题,而他们甚至没有办法查找或排除故障。
因此,Netdata 与 Prometheus 和 Grafana 的最大区别在于,我们认为该工具需要更好地了解其组件、应用程序及其监控的指标。
与 Prometheus 相比,Netdata 需要的每个指标不仅仅是名称、一些标签和随时间变化的值。 Netdata 中的指标是一种结构化实体,它以某种方式与其他指标相关联,并具有描述应如何组织、处理、查询和可视化的特定属性。我们称之为 NIDL(节点、实例、维度、标签)框架。
维护这样的索引是一个挑战:首先,因为收集的原始指标不提供此信息,所以我们必须添加它,其次因为我们需要在每个指标的生命周期内维护此索引,这与我们当前的数据库保留,一般是一年以上。
同时,由于数据库分层,Netdata 提供了比 Prometheus 更好的保留能力,由于流式传输,比 Prometheus 更容易扩展,支持异常检测,并且它有一个指标评分引擎,可以在需要时大海捞针。
与 Grafana 相比,Netdata 是完全自动化的。 Grafana 比 Netdata 具有更多的定制功能,但 Netdata 本身提供了功能齐全的仪表板,最重要的是,它为您提供了理解、分析、过滤、切片和切块数据的方法,而无需您编辑查询或了解基础指标可能具有的任何特殊性。
此外,为了在您需要大海捞针时为您提供帮助,Netdata 拥有由 Netdata 指标评分引擎提供的高级故障排除工具,使其能够根据任何给定时间范围内的异常率、差异或相似之处对指标进行评分。
不过,如果您已经熟悉 Prometheus 和 Grafana,Netdata 与它们可以很好地集成,并且我们有来自在生产中将 Netdata 与 Prometheus 和 Grafana 一起使用的用户的报告。
借助 Netdata,您的数据始终位于本地,并且您的指标始终是高分辨率的。
大多数商业监控提供商都面临着重大挑战:他们将所有指标集中到其基础设施中,这不可避免地是昂贵的。它引导他们进行以下一项或多项操作:
昂贵得不切实际
限制他们收集的指标数量
限制他们收集的指标的分辨率
因此,他们试图找到一个平衡点:收集尽可能少的数据,但收集足够的数据以从中获得有用的东西。
在 Netdata,我们以完全不同的方式看待监控:监控系统应该自下而上构建并具有丰富的洞察力,因此我们单独关注每个组件来收集、存储、检查和可视化与每个组件相关的所有内容,并且我们确保所有组件都受到监控。每个指标都很重要。
这就是为什么 Netdata 针对每个指标训练多个机器学习模型,完全基于它们自己的过去(不采样数据,不共享经过训练的模型),以根据每个组件使用的特定用例和工作负载来检测异常。
这也是 Netdata 警报附加到组件(实例)并配置动态阈值和滚动窗口而不是静态值的原因。
Netdata 的分布式特性有助于扩展这种方法:您的数据分布在基础设施内部,尽可能靠近边缘。 Netdata 不是一条数据通道。每个 Netdata 代理都是一个数据通道,它们一起构建一个庞大的分布式指标处理管道,确保您的所有基础设施组件和应用程序都受到监控并按其应有的方式运行。
Netdata 提供实时、全面的监控,并且无需任何自定义配置即可监控所有内容。
虽然 Nagios、Icinga、Zabbix 和其他类似工具功能强大且高度可定制,但它们的设置和管理可能很复杂。它们的灵活性通常是以易用性为代价的,特别是对于非系统管理员或对这些工具没有丰富经验的用户而言。此外,这些工具通常要求您提前知道要监视的内容并对其进行明确配置。
另一方面,Netdata 采用了不同的方法。它提供了“即用型”监控解决方案,注重简单性和全面性。它开箱即用地自动检测并开始监控许多不同的系统指标和应用程序,无需任何自定义配置。
与这些传统监控工具相比,Netdata:
提供实时、高分辨率的指标,而不是 Nagios、Icinga 和 Zabbix 等工具提供的通常为分钟级的粒度。
自动生成所收集数据的有意义、有组织且交互式的可视化。与您必须手动创建和组织图表和仪表板的其他工具不同,Netdata 会为您处理这一切。
将机器学习应用于每个单独的指标以检测异常,提供比静态阈值更具洞察力和相关性的警报。
设计为分布式,因此您的数据分布在基础设施内部,尽可能靠近边缘。这种方法更具可扩展性,并且避免了单个集中式服务器的潜在瓶颈。
具有更现代和用户友好的界面,允许任何人(不仅仅是经验丰富的管理员)轻松评估其系统的运行状况和性能。
即使您已经在使用 Nagios、Icinga、Zabbix 或类似工具,您也可以将 Netdata 与它们一起使用,通过实时洞察和用户友好的仪表板来增强现有的监控功能。
Netdata 旨在提供全面的见解,但我们知道信息的丰富性有时可能会让人感到不知所措。以下是有关如何有效导航和使用 Netdata 的一些提示...
Netdata确实是一个非常全面的监控工具。它旨在为您提供尽可能多的有关您的系统和应用程序的信息,以便您可以了解并解决出现的任何问题。然而,我们知道,数据量有时可能令人难以承受。
以下是有关如何管理和浏览这些丰富信息的一些建议:
从指标仪表板开始
Netdata 的指标仪表板提供系统状态的高级摘要。我们几乎在每个部分都添加了摘要图块,您可以揭示更重要的信息。这是一个很好的起点,因为它可以帮助您一目了然地识别任何主要问题或趋势。
使用搜索功能
如果您正在寻找特定信息,可以使用搜索功能来查找相关指标或图表。这可以帮助您避免滚动浏览所有数据。
定制您的仪表板
Netdata 允许您创建自定义仪表板,这可以帮助您专注于对您最重要的指标。登录 Netdata,您可以在其中拥有自定义仪表板。 (也即将出现在代理仪表板中)
利用 Netdata 的异常检测
Netdata 使用机器学习来检测指标中的异常情况。这可以帮助您在潜在问题变成重大问题之前识别它们。我们在仪表板目录上方添加了一个AR
按钮,用于显示每个部分的异常率,以便您可以发现需要注意的内容。
利用 Netdata 的文档和博客
Netdata 拥有大量文档,可以帮助您了解不同的指标以及如何解释它们。您还可以在那里找到教程、指南和最佳实践。
请记住,没有必要立即了解每个指标或图表。 Netdata 是一个强大的工具,可能需要一些时间才能充分探索和理解其所有功能。从基础知识开始,当您对该工具更加熟悉时,逐渐深入研究更复杂的指标。
Netdata Cloud 提供 Netdata 提供的全套特性和功能,包括免费社区层。
虽然我们的默认入职流程鼓励用户利用 Netdata Cloud,包括免费试用我们的完整业务产品一个月,但这不是强制性的。用户可以完全绕过此过程,仍然使用 Netdata 代理和 Netdata UI,而无需注册 Netdata Cloud。
Netdata Agent 仪表板和 Netdata Cloud 仪表板相同。尽管如此,Netdata Cloud 仍提供了 Netdata Agent 所不具备的附加功能。这些包括:
从任何地方访问您的基础设施。
使用 SSO 来保护敏感功能。
可自定义(登录 Netdata Cloud 后,自定义仪表板和其他设置将保留)
从 UI 配置警报和数据收集
安全性(基于角色的访问控制)。
水平可扩展性(将多个独立父级“混合”在一个统一的基础设施中)
集中发送警报通知(即使涉及多个独立家长)
用于警报通知的移动应用程序
我们鼓励您通过购买 Netdata Cloud 订阅来支持 Netdata。成功的 Netdata 是不断发展和改进的 Netdata,为我们所有人提供更简单、更快、更容易的监控。
对于需要完全本地部署解决方案的组织,我们提供用于本地安装的 Netdata Cloud。联系我们了解更多信息。
您的隐私是我们的首要任务。作为我们改进 Netdata 承诺的一部分,我们依赖来自选择启用该功能的用户的匿名遥测数据。这些数据为我们的决策过程提供了极大的信息,并为 Netdata 的未来发展做出了贡献。
如果您希望禁用遥测,我们的安装指南中提供了相关说明。
Netdata 处于不断增长和演变的状态。指导这一发展的决策理想地植根于数据。通过分析匿名遥测数据,我们可以回答诸如“哪些功能被频繁使用?”、“我们如何确定潜在新功能的优先级?”等问题。以及“Netdata 的哪些元素对我们的用户最重要?”
通过启用匿名遥测,用户间接地为制定 Netdata 的路线图做出了贡献,提供了宝贵的信息,帮助我们确定项目和社区工作的优先顺序。
我们知道,出于隐私或监管原因,并非所有环境都允许遥测。为了满足这一点,我们简化了禁用遥测的过程:
在安装过程中,您可以将--disable-telemetry
附加到我们的kickstart.sh
脚本中,或者
创建文件/etc/netdata/.opt-out-from-anonymous-statistics
,然后重新启动 Netdata。
这些步骤将禁用 Netdata 安装的匿名遥测功能。
请注意,即使禁用遥测,Netdata 仍然需要 Netdata 注册表来实现警报通知的号召性用语 (CTA) 功能。当您单击警报通知时,它会将您重定向到 Netdata 注册表,然后该注册表将您的 Web 浏览器定向到发出警报的特定 Netdata 代理以进行进一步故障排除。当您访问代理的仪表板时,Netdata 注册表会了解代理的 URL。
任何网络数据代理都可以充当网络数据注册表。指定一个 Netdata 代理作为您的注册表,我们的全球 Netdata 注册表将不再使用。有关这方面的更多信息,请参阅本指南。
Netdata 是一个广泛采用的项目...
浏览 GitHub 上的 Netdata stargazers,发现来自荷兰银行、AMD、亚马逊、百度、Booking.com、思科、达美航空、Facebook、谷歌、IBM、英特尔、罗技、Netflix、诺基亚、高通等知名公司和企业的用户、Realtek Semiconductor Corp、Redhat、Riot Games、SAP、Samsung、Unity、Valve 等。
Netdata 在学术界也得到了广泛的应用,著名机构包括纽约大学、哥伦比亚大学、新泽西大学、首尔国立大学、伦敦大学学院等。
而且,Netdata 还被全球许多政府组织使用。
简而言之,Netdata 被证明具有无价的价值:
基础设施密集型组织
例如托管/云提供商和拥有数百或数千个节点的公司,他们需要高分辨率、实时监控解决方案来全面查看其所有组件和应用程序。
技术运营商
需要标准化、全面的解决方案来实现全天候运营的客户。 Netdata 不仅促进运营自动化并为其运营工程师提供受控访问,而且随着时间的推移还可以增强技能发展。
科技初创公司
从一开始就寻求功能丰富的监控解决方案的人。
自由职业者
他们寻求简单、高效和直接的解决方案,而又不牺牲性能和结果。
专业系统管理员和 DevOps
他们欣赏细节并从头开始理解整体监控的价值。
其他人
我们所有人都厌倦了监控行业的低效率,希望有令人耳目一新的变化和呼吸新鲜空气。 ?
Netdata Agent是开源的,但整个 Netdata 生态系统是一个混合解决方案,结合了开源和闭源组件。
开源意味着与世界共享知识产权,在 Netdata,我们全心全意地信奉这一理念。
Netdata Agent是我们生态系统的核心,也是我们所有可观察性功能背后的引擎,是完全开源的。 Netdata Agent 已获得 GPLv3+ 许可,代表了我们对各种可观测性技术的开源创新的承诺,包括数据收集、数据库设计、查询引擎、可观测性数据建模、机器学习和无监督异常检测、高性能边缘计算、实时监控等。
Netdata Agent 是我们送给世界的礼物,确保每个人都可以免费使用我们开发的尖端技术。
然而,作为一家私营公司,我们还需要将开源软件货币化,以证明产品与市场的契合性并维持我们的增长。
传统上,开源项目通常使用开放核心模型,其中软件的基本版本是开源的,并且为商业闭源版本保留附加功能。这种方法可能会限制先进创新的获取,因为其中大多数仍然是闭源的。
在 Netdata,我们采取了略有不同的路径。我们不会创建我们产品的单独企业版本。相反,所有用户(无论是商业用户还是非商业用户)都使用相同的 Netdata 代理,确保我们所有的可观察性创新始终是开源的。
要体验 Netdata 生态系统的全部功能,用户需要将开源组件与我们的闭源产品结合起来。完整的产品仍然可以免费使用。
闭源组件包括:
Netdata UI :这是闭源的,但可以免费与 Netdata Agents 和 Netdata Cloud 一起使用。它还可以通过 CDN 公开提供。
Netdata Cloud :一种商业产品,可作为本地安装和 SaaS 解决方案使用,并具有免费社区层。
通过平衡开源和闭源组件,我们确保所有用户都能获得我们的创新成果,同时保持我们作为一家公司的发展和创新能力。
Netdata 通过订阅 Netdata Cloud 的高级功能以及销售 Netdata Cloud 的本地和私有版本来产生收入。
Netdata 通过以下活动产生收入:
Netdata 云订阅
我们项目愿景的直接资金来自订阅 Netdata Cloud 高级功能的用户。
Netdata 本地云或私有云
购买 Netdata Cloud 的本地或私有版本可支持我们的财务增长。
我们的开源社区和免费访问 Netdata Cloud 通过以下方式为 Netdata 做出贡献:
Netdata云社区使用
Netdata Cloud的免费使用证明了其市场相关性。虽然这不会产生收入,但它增强了新用户之间的信任,并有助于确保适当的项目资金。
用户反馈
反馈,尤其是问题和错误报告,是非常宝贵的。它引导我们开发出更有弹性、更高效的产品。这也不是收入来源,但对我们项目的发展至关重要。
匿名遥测见解
启用匿名遥测的用户可以帮助我们在完善和增强 Netdata 方面做出数据明智的决策。这不是收入来源,但了解使用哪些功能以及如何使用,有助于为每个人构建更好的产品。
我们不会直接或间接地将用户或“设备启发式”数据货币化。从社区成员收集的任何数据仅用于上述目的。
当技术密集型组织和运营商出于监管或业务要求而需要整个本地或私有 Netdata 套件并捆绑顶级支持时,Netdata 的财务就会增长。对于所有相关方来说,这是一个双赢的案例:这些公司获得了经过实战检验、强大且可靠的解决方案,而帮助我们构建该产品的更广泛的社区则免费享受它。
Netdata 的文档可在Netdata Learn上找到。
该网站还提供许多指南,帮助新用户更好地了解如何收集指标、通过图表排除故障、导出到外部数据库等。
Netdata 是一个包容性的开源项目和社区。请阅读我们的行为准则。
加入网络数据社区:
在 Discord 上与我们和其他社区成员聊天。
在 GitHub 讨论上发起讨论。
在我们的社区论坛中打开一个主题。
见面
Netdata 团队和社区成员定期举行在线聚会。
欢迎您加入我们!单击此处查看时间表。
您还可以在以下位置找到 Netdata:
推特 | YouTube |红迪网 |领英 |堆栈共享 |产品搜索 |谴责| Facebook
贡献对于开源项目的成功至关重要。换句话说,我们需要您的帮助来保持 Netdata 的伟大!
什么是贡献?以下所有内容对于 Netdata 都非常有价值:
让我们知道您认为应该标准化的最佳实践
Netdata 应该开箱即用地检测尽可能多的基础设施问题。通过分享您的知识和经验,您可以帮助我们构建一个监控解决方案,该解决方案融入了有关基础设施监控的所有最佳实践。
如果 Netdata 不适合您的用例,请告诉我们
我们的目标是支持尽可能多的用例,您的反馈非常宝贵。打开 GitHub 问题,或启动有关该问题的 GitHub 讨论,讨论您希望如何使用 Netdata 以及您需要什么。
尽管我们无法实现所有可以想象的事情,但我们尝试优先开发社区常见的用例,这些用例与我们希望 Netdata 发展的方向相同,并且与我们的路线图保持一致。
支持其他社区成员
加入我们在 GitHub、Discord 和 Reddit 上的社区。一般来说,Netdata 相对容易设置和配置,但人们可能仍然需要一点点推动正确的方向才能有效地使用它。支持其他会员本身就是一个巨大的贡献!
添加或改进您需要的集成
集成的开发往往更加容易和简单。如果您想向 Netdata 贡献代码,我们建议您从所需的集成开始,但 Netdata 目前不支持这些集成。
有关贡献的一般信息:
检查我们的安全政策。
发现错误?打开 GitHub 问题。
请阅读我们的贡献指南,其中包含您为 Netdata 做出贡献所需的所有信息,例如改进我们的文档、参与社区以及开发新功能。我们已尽可能做到无摩擦,但如果您需要帮助,只需在我们的社区论坛上联系我们即可!
包维护者应阅读有关从源代码构建 Netdata 的指南,以获取有关从源代码构建每个 Netdata 组件并准备包的说明。
Netdata生态系统由三个关键部分组成:
Netdata Agent :Netdata Agent 是 Netdata 生态系统的核心,是一个开源工具,必须安装在 Netdata 监控的所有系统上。它提供了广泛的基本功能,包括通过各种插件进行数据收集、嵌入式高性能时间序列数据库 (dbengine)、由边缘训练的机器学习支持的无监督异常检测、警报和通知以及查询和评分具有相关 API 的引擎。此外,它还支持将数据导出到第三方监控系统等功能。
Netdata Agent 在 GPLv3+ 许可证下发布,并重新分发了 Netdata Agent 第三方许可证中列出的其他几个开源工具和库。
Netdata Cloud :一个商业闭源组件,Netdata Cloud 通过提供水平可扩展性、集中警报通知调度(包括移动应用程序)、用户管理、基于角色的访问控制等来增强开源 Netdata Agent 的功能企业级功能。它既可以作为 SaaS 解决方案使用,也可以用于本地部署,还提供免费使用的社区层。
Netdata UI :Netdata UI 是闭源的,处理与指标、日志和其他收集的数据相关的所有可视化和仪表板功能,以及 Netdata 生态系统的中央配置和管理。它为 Netdata Agent 和 Netdata Cloud 提供服务。 Netdata UI 以二进制形式与 Netdata 代理一起分发,并可通过 CDN 公开访问,并根据 Netdata 云 UI 许可证 1 (NCUL1) 进行许可。它集成了第三方开源组件,详细信息请参见 Netdata UI 第三方许可证。
Netdata提供的二进制安装包包括Netdata Agent和Netdata UI。由于Netdata Agent 是开源的,因此它经常由第三方(例如Linux 发行版)打包,不包括闭源组件(不包括Netdata UI)。虽然他们的软件包在提供功能齐全的监控解决方案所需的后端和 API 方面仍然有用,但我们建议使用我们提供的安装包来体验 Netdata 的完整功能集。