Netdata系统和应用程序的分布式,实时,性能和健康监控。它是您在所有系统和容器上安装的高度优化的监视代理程序。

Netdata 使用高度交互的Web仪表板实时提供其运行的系统(包括Web服务器,数据库,应用程序)上发生的所有事情的无与伦比的见解。它可以自动运行,无需任何第三方组件,也可以集成到现有的监控工具链(Prometheus,Graphite,OpenTSDB,Kafka,Grafana等)。

Netdata是快速有效的,设计成在所有的系统(永久运行物理虚拟服务器,容器的IoT装置),而不破坏它们的核心功能。

Netdata是免费的开源软件,目前可在LinuxFreeBSDMacOS上运行

图片

偷看2018-11-11 02-40

典型的netdata仪表板,以1:1的时间安排。可以通过拖动图表来平移图表,使用SHIFT+ 放大/缩小图表mouse wheel,可以选择使用SHIFT+ 放大的区域mouse selection。Netdata具有高度的交互性和实时性,经过优化可以完成工作!

我们有几个在线演示来体验它:https://my-netdata.io

用户群

Netdata被全世界数十万用户使用。查看我们的GitHub观察者列表。你会发现在亚马逊Atos百度思科系统思杰德国电信DigitalOcean, ElasticEPAM Systems爱立信谷歌GrouponHortonworks惠普华为, IBM微软NewRelicNvidia红帽SAPSelectelTicketMaster, Vimeo等等!

Docker拉扯

我们为最常见的架构提供docker镜像。这些是docker hub报告的统计信息:

图片

为何选择Netdata

Netdata采用完全不同的监控方法。

Netdata是您在所有系统上安装的监视代理程序。它是:

  • 一个度量收集器 -进行系统和应用度量(包括网络服务器,数据库,容器等)

  • 时间序列数据库 -存储在内存(当它运行不接触磁盘)

  • 一个指标可视化 -超快速的,互动的,现代的,异常检测优化

  • 一个警报通知引擎 -先进的看门狗检测性能和可用性问题

以上所有内容都是在非常灵活,极其模块化的分布式应用程序中打包在一起的。

这就是netdata与其他监控解决方案的比较:

netdata其他(开源和商业)
高分辨率指标(1s粒度)低分辨率指标(最佳粒度为10秒)
监控所有内容,每个节点有数千个指标只监控几个指标
UI速度超快,针对异常检测进行了优化UI仅适用于抽象视图
有意义的演示,以帮助您了解指标您必须在开始之前了解指标
立即安装并获得结果需要做长的准备才能获得任何有用的结果
用它来解决性能问题使用它们来获取过去表现的统计数据
杀死控制台以跟踪性能问题始终需要控制台进行故障排除
需要零专用资源需要大量专用资源

Netdata是开源的免费的,超快速的,非常容易的,完全开放的,非常高效的, 灵活的和可集成的。

它由SysAdminsDevOpsDevelopers设计,用于解决性能问题,而不仅仅是可视化指标。

新闻

Nov 22nd, 2018netdata v1.11.1发布!

  • 改进了内部数据库以支持64位以上的值。

  • 新的数据采集插件:openldaptornvidia_smi

  • 改进了数据采集插件:netdata现在支持监控网络接口别名smartd_logcpufreqsensors

  • 健康监控改进:恢复网络接口拥塞警报alerta.ioconntrack_max

  • my-netdata菜单已经过重构。

  • 包装:openrc服务定义得到了一些改进。


Sep 18, 2018netdata有自己的组织

Netdata曾经是一个firehol.org项目,可以访问firehol/netdata

Netdata现在有自己的github组织netdata,所以现在所有的github URL netdata/netdata。旧的github URL,repo克隆,分叉等会自动重定向到新的repo。

这个怎么运作

Netdata是一种高效,高度模块化的度量管理引擎。其无锁设计使其成为指标并发操作的理想选择。

图片

这是它的工作原理:

功能描述文档
搜集多个独立的数据收集工作者正在使用每个应用程序的最佳协议从其来源收集指标,并将指标推送到数据库。每个数据收集工作者都对其收集的指标具有无锁写入权限。collectors
商店度量标准存储在循环数据库(环形缓冲区)的RAM中,使用自定义浮点数来实现最小占用空间。database
校验无锁独立监视程序正在评估对收集的度量标准的运行状况检查,触发警报,维护运行状况事务日志以及分派警报通知。health
无锁独立工作人员会在收集后立即将指标全部详细地实时传输到远程netdata服务器。streaming
档案无锁独立工作者正在对指标进行下采样并将其推送到后端时间序列数据库。backends
询问多个独立工作者连接到内部Web服务器,为API请求提供服务,包括数据查询。web/api

结果是一个高效,低延迟的系统,支持每个指标上的多个读者和一个作者。

资料图

这是netdata功能集和体系结构的高级概述。
单击它以与其交互(它具有文档的直接链接)。

图片

特征

手指视频

这是您对Netdata的期望:

一般

  • 1s粒度 - 所有指标的最高分辨率。

  • 无限制指标 - 收集所有可用指标,越多越好。

  • 单核的1%CPU利用率 - 超快速,令人难以置信的优化。

  • 几MB的RAM - 默认情况下它使用25MB RAM。你的大小。

  • 零磁盘I / O - 运行时,它不会加载或保存任何内容(除了erroraccess日志)。

  • 零配置 - 自动检测所有内容,每个服务器开箱即可收集多达10000个指标。

  • 零维护 - 你只需运行它,它完成其余的工作。

  • 零依赖 - 它甚至是它自己的Web服务器,因为它的静态Web文件和它的Web API(尽管它的插件可能需要额外的库,具体取决于所监视的应用程序)。

  • 扩展到无限 - 您可以将其安装在所有服务器,容器,VM和IoT上。默认情况下,度量标准不是集中式的,因此没有限制。

  • 几种操作模式 - 自主主机监控(默认),无头数据采集器,转发代理,存储和转发代理,中央多主机监控,所有可能的配置。每个节点可能具有不同的度量标准保留策略,无论是否使用运行状况监视

健康监测和警报

  • 先进的警报 - 带有数百个警报,开箱即用!支持动态阈值,滞后,警报模板,多种基于角色的通知方法。

  • 声明:alerta.io,亚马逊SNS,discordapp.com,电子邮件,flock.com,国税局,kavenegar.com,messagebird.com,pagerduty.com,pushbullet.com,pushover.net,rocket.chat,slack.com,系统日志,telegram.org,twilio.com,网站。

集成

  • 时间序列DBS -可以存档其度量graphiteopentsdbprometheus,JSON文档DB中,在相同或较低分辨率(低级:防止它从这些服务器拥塞由于收集的数据量)。

可视化

  • 令人惊叹的交互式仪表板 - 鼠标,触摸板和触摸屏友好的2个主题:( slate黑暗)和white

  • 惊人的快速可视化 - 即使在低端硬件上,每个度量标准的响应时间不到1毫秒。

  • 视觉异常检测 - 仪表板经过优化,可直观地检测异常情况。

  • 可嵌入 - 其图表可嵌入您的网页,维基和博客中。您甚至可以使用Atlassian的Confluence作为监控仪表板。

  • 可自定义 - 可以使用简单的HTML(无需Javascript)构建自定义仪表板。

正面和负面的价值观

为了改善图表清楚起见,netdata仪表板呈现阳性值用于表示指标readinputinboundreceived的值来表示的指标writeoutputoutboundsent

正和负的值

Netdata图表显示网络接口的带宽和数据包。received是积极的,sent是消极的。

自动缩放的y轴

Netdata图表会自动垂直缩放,以显示可见时间范围内每个指标的变化。

非从零开始

基于零的stacked图表,area在选择单个维度时自动切换到自动缩放图表。

图表是同步的

netdata仪表板上的图表彼此同步。没有主图表。任何图表都可以随时平移或缩放,其他所有图表都会跟随。

图表-被同步

通过用鼠标拖动图表来平移图表。当鼠标指针在图表上时,图表可以用SHIFT+ 放大/缩小mouse wheel

当通过my-netdata菜单导航时,可见时间范围(平移和缩放)从netdata服务器传播到netdata服务器。

突出显示的时间范围

为了改善跨图表的视觉异常检测,用户可以在所有图表上突出显示时间范围(通过按ALTmouse selection)。

强调-时间表

通过在任何图表上按ALT+ 可以给出突出显示的时间范围mouse selection。Netdata将在所有图表上突出显示相同的范围。

当通过my-netdata菜单导航时,突出显示的范围从netdata服务器传播到netdata服务器。

它监控什么

Netdata数据收集是可扩展的 - 您可以监控任何可以获得指标的内容。它的Plugin API支持所有编程语言(任何东西都可以是netdata插件,BASH,python,perl,node.js,java,Go,ruby等)。

  • 为了获得更好的性能,大多数与系统相关的插件(cpu,内存,磁盘,文件系统,网络等)都已编写完成C

  • 为了更快的开发和更轻松的贡献,大多数与应用程序相关的插件(数据库,Web服务器等)都已编写python

APM(应用程序性能监控)

  • statsd - netdata是一个功能齐全的statsd服务器。

  • Go expvar - 使用expvar包收集用Go编程语言编写的应用程序公开的度量标准。

  • Spring Boot - 运行Java Spring Boot应用程序,通过使用Spring Boot库中包含的Spring Boot Actuator来公开其指标。

  • uWSGI - 从uWSGI应用程序收集性能指标。

系统资源

  • CPU利用率 - 总 CPU和每核CPU使用率。

  • 中断 - 总CPU和每核CPU中断。

  • SoftIRQs - 总核心和每核心SoftIRQs。

  • SoftNet - 与网络活动相关的总核心和每核心SoftIRQ。

  • CPU限制 - 收集每个CPU的CPU限制。

  • CPU Frequency - 收集当前CPU频率。

  • CPU空闲 - 收集每个处理器状态所花费的时间。

  • IdleJitter - 测量CPU延迟。

  •  - 随机数池,在密码学中使用。

  • 进程间通信 - IPC - 如信号量和信号量数组。

记忆

  • ram - 收集有关RAM使用情况的信息。

  • swap - 收集有关交换内存使用情况的信息。

  • 可用内存 - 收集可用于用户空间进程的RAM量。

  • 已提交的内存 - 收集提交给用户空间进程的RAM量。

  • 页面错误 - 收集系统页面错误(主要和次要)。

  • writeback memory - 收集系统脏内存和回写活动。

  • 巨大的页面 - 收集用于大页面的RAM量。

  • KSM - 收集有关内核相同合并(内存重复数据删除)的信息。

  • Numa - 在支持它的系统上收集Numa信息。

  • slab - 收集有关Linux内核内存使用情况的信息。

磁盘

  • 块设备 - 每个磁盘:I / O,操作,积压,利用率,空间等。

  • BCACHE - SSD缓存设备的详细性能。

  • DiskSpace - 监视磁盘空间使用情况。

  • mdstat - 软件RAID。

  • hddtemp - 磁盘温度。

  • smartd - 磁盘SMART值。

  • 设备映射器 - 命名磁盘。

  • Veritas Volume Manager - 命名磁盘。

  • megacli - 适配器,物理驱动器和电池统计信息。

  • adaptec_raid - 逻辑和物理设备运行状况指标。

文件系统

  • BTRFS - 详细的磁盘空间分配和使用情况。

  • Ceph - OSD使用,池使用,对象数量等

  • NFS文件服务器和客户端 - NFS v2,v3,v4:I / O,缓存,预读,RPC调用

  • Samba - Samba SMB2文件共享的性能指标。

  • ZFS - 详细的性能和资源使用情况。

联网

  • 网络堆栈 - 关于网络堆栈的所有内容(所有协议的IPv4和IPv6:TCP,UDP,SCTP,UDPLite,ICMP,多播,广播等)和所有网络接口(每个接口:带宽,数据包,错误,丢弃) 。

  • Netfilter - 关于netfilter连接跟踪器的一切。

  • SynProxy - 收集有关Linux SYNPROXY(DDoS)的性能数据。

  • NFacct - 从iptables收集会计数据。

  • 网络QoS -tc实时可视化网络类的唯一工具

  • FPing - 测量任意数量主机之间的延迟和数据包丢失。

  • ISC dhcpd - 池利用率,租约等

  • AP - 收集Linux接入点性能数据(hostapd)。

  • SNMP - 也可以监视SNMP设备(尽管您需要配置这些设备)。

  • port_check - 检查TCP端口的可用性和响应时间。

虚拟专用网

  • Open××× - 收集每个隧道的状态。

  • LibreSwan - 收集每个IPSEC隧道的指标。

  • Tor - 收集Tor流量统计信息。

流程

  • 系统进程 - 运行,阻止,分叉,活动。

  • 应用程序 - 通过对进程树进行分组并报告CPU,内存,磁盘读取,磁盘写入,交换,线程,管道,套接字 - 每个进程组。

  • systemd - 使用CGROUPS监视系统服务。

用户

  • 用户和用户组资源使用情况 - 通过汇总每个用户和组的进程树,报告:CPU,内存,磁盘读取,磁盘写入,交换,线程,管道,套接字

  • logind - 收集连接的会话,用户和席位。

容器和VM

  • 容器 - 使用CGROUPS(systemd-nspawn,lxc,lxd,docker,kubernetes等)收集各种容器的资源使用情况。

  • libvirt虚拟机 - 使用CGROUPS收集各种虚拟机的资源使用情况。

  • dockerd - 收集码头工人健康指标。

Web服务器

  • Apache和lighttpd -mod-status(v2.2,v2.4)和缓存日志统计信息,适用于多个服务器。

  • IPFS - 带宽,同行。

  • LiteSpeed - 读取litespeed rtreport文件以收集指标。

  • Nginx -stub-status,适用于多台服务器。

  • Nginx + - 连接到多个nginx_plus服务器(本地或远程)以收集实时性能指标。

  • PHP-FPM - 多个实例,每个实例报告连接,请求,性能等。

  • Tomcat - 访问,线程,空闲内存,卷等。

  • Web服务器access.log文件 - 实时提取,Web服务器和代理性能指标,并应用多个运行状况检查等。

  • HTTP检查 - 检查一个或多个Web服务器的HTTP状态代码和返回的内容。

代理,平衡器,加速器

  • HAproxy - 带宽,会话,后端等

  • Squid - 多个服务器,每个服务器都显示:客户端带宽和请求,服务器带宽和请求。

  • Traefik - 连接到多个traefik实例(本地或远程)以收集API指标(响应状态代码,响应时间,平均响应时间和服务器正常运行时间)。

  • 清漆 - 线程,会话,命中,对象,后端等。

  • IPVS - 从Linux IPVS负载均衡器收集指标。

数据库服务器

  • CouchDB - 读/写,请求方法,状态代码,任务,复制,每db等。

  • MemCached - 多个服务器,每个服务器显示:带宽,连接,项目等。

  • MongoDB - 操作,客户端,事务,游标,连接,断言,锁等。

  • MySQL和mariadb - 多个服务器,每个服务器都显示:带宽,查询/处理程序,锁,问题,tmp操作,连接,binlog指标,线程,innodb指标等。

  • PostgreSQL - 多个服务器,每个服务器显示:每个数据库统计信息(连接,元组读取 - 写入 - 返回,事务,锁定),后端进程,索引,表,预写,后台编写器等。

  • 代理SQL - 收集代理SQL后端和前端性能指标。

  • Redis - 多个服务器,每个服务器显示:操作,命中率,内存,密钥,客户端,从属。

  • RethinkDB - 连接到多个rethinkdb服务器(本地或远程)以收集实时指标。

消息代理

  • beanstalkd - 全球和每管监测。

  • RabbitMQ - 性能和健康指标。

搜索和索引

  • ElasticSearch - 搜索和索引性能,延迟,计时,集群统计,线程统计等。

DNS服务器

  • bind_rndc - 解析named.stats转储文件以收集实时性能指标。支持9.6之后的所有版本的bind。

  • dnsdist - 绩效和健康指标。

  • ISC绑定(命名) - 多个服务器,每个服务器显示:客户端,请求,查询,更新,故障和每个视图度量标准。支持9.9.10之后的所有版本的bind。

  • NSD - 查询,区域,协议,查询类型,传输等。

  • PowerDNS - 查询,答案,缓存,延迟等。

  • 未绑定 - 性能和资源使用指标。

  • dns_query_time - DNS查询时间统计信息。

时间服务器

  • chrony - 使用该chronyc命令收集chrony统计信息(频率,最后偏移,RMS偏移,残余频率,根延迟,根分散,偏斜,系统时间)。

  • ntpd - 连接到多个ntpd服务器(本地或远程)以提供系统变量和可选的对等变量的统计信息。

邮件服务器

  • Dovecot - POP3 / IMAP服务器。

  • Exim - 消息队列(排队的电子邮件)。

  • Postfix - 消息队列(条目,大小)。

硬件传感器

  • IPMI - 企业硬件传感器和事件。

  • lm-传感器 - 温度,电压,风扇,功率,湿度等

  • Nvidia - 收集Nvidia GPU的信息。

  • RPi - Raspberry Pi温度传感器。

  • w1sensor - 从连接的1-Wire传感器收集数据。

的UPS

  • apcupsd - 负载,充电,电池电压,温度,效用指标,输出指标

  • NUT - 负载,充电,电池电压,温度,实用程序指标,输出指标

  • Linux电源 - 收集 Linux上电源驱动程序报告的指标。

社交共享服务器

  • RetroShare - 连接到多个retroshare服务器(本地或远程)以收集实时性能指标。

安全

  • Fail2Ban - 监视fail2ban日志文件以检查所有活动jail的所有禁令。

身份验证,授权,记帐(AAA,RADIUS,LDAP)服务器

  • FreeRadius - 使用该radclient命令提供freeradius统计信息(身份验证,记帐,代理身份验证,代理记帐)。

电话服务器

  • opensips - 连接到opensips服务器(仅限localhost)以收集实时性能指标。

家用设备

  • SMA webbox - 连接到多个远程SMA网络盒,以收集光伏(太阳能)发电的实时性能指标。

  • Fronius - 连接到多个远程Fronius Symo服务器,以收集光伏(太阳能)发电的实时性能指标。

  • StiebelEltron - 使用其Internet服务网关(ISG Web)从Stiebel Eltron加热系统收集温度和其他指标。

游戏服务器

  • SpigotMC - 使用Minecraft远程控制台监控Spigot Minecraft服务器每秒钟的滴答数和在线玩家数量。

分布式计算

  • BOINC - 使用远程GUI RPC接口监视本地和远程BOINC客户端软件的任务状态。还为少数错误情况提供警报。

媒体流服务器

  • IceCast - 收集活动源的侦听器数量。

监控系统

  • Monit - 收集有关监控目标(文件系统,应用程序,网络)的指标。

供应系统

  • Puppet - 连接到多个Puppet Server和Puppet数据库实例(本地或远程)以收集实时状态指标。

您可以使用任何计算机语言编写从任何来源收集数据的插件,从而轻松扩展Netdata。


文档

netdata文档位于https://docs.netdata.cloud。但是你也可以在repo中找到它,所以只需在github上导航repo就可以找到所有的文档。

这是一个快速列表:

目录描述
installer在您的系统上安装netdata的说明。
docker使用docker安装netdata的说明。
daemon有关netdata守护程序及其配置的信息。
collectors有关数据收集插件的信息。
healthnetdata的运行状况监控如何工作,如何创建自己的警报以及如何配置警报通知方法。
streaming如何通过在它们之间传输指标来构建netdata服务器的层次结构。
backends指标到行业标准的时间序列数据库的长期归档,如prometheusgraphiteopentsdb
web/api了解如何查询netdata API及其支持的查询。
web/api/badges了解如何从实时数据生成徽章(SVG图像)。
web/gui/custom了解如何创建自定义netdata仪表板。
web/gui/confluence了解如何在Atlassian的Confluence上创建netdata仪表板。

您还可以检查所有其他目录。他们中的大多数都有大量的文档。

社区

我们欢迎捐款。所以,随时加入团队。

要报告错误或获得帮助,请使用GitHub问题。

您还可以在以下网址找到netdata:

  • Facebook的

  • 推特

  • OpenHub

  • Repology

  • StackShare

执照

netdata是GPLv3 +。

Netdata重新分发其他开源工具和库。请检查第三方许可证。

这有什么好处吗?

是。

当人们第一次听到新产品时,他们经常会问是否有任何好处。***新闻用户评论说:

自我注意:立即开始,所有raganwald项目将在自述文件中有一个“它是否有用?”部分,答案应为“是”。

所以,我们遵循传统......

真棒吗?

这些人似乎喜欢它