对于维护、管理Linux系统来说,它的性能监控非常重要,特别是实时监控数据,这个数据有利于我们判断服务器的负载压力,及时调整资源调配,也有助于更好的服务于业务。所以,今天给大家安利一款Linux性能实时监测工具:Netdata。 先搞张效果图大家先looklook〔微笑〕 Netdata介绍 Netdata是一款Linux系统性能实时监控工具。是一个高度优化的Linux守护进程,可以对Linux系统、应用程序(包括但不限于Web服务器,数据库等)、SNMP服务等提供实时的性能监控。 Netdata用可视化的手段,将其被监控的信息展现出来,以便你清楚的了解到你的系统、程序、应用的实时运行状态,而且还可以与Prometheus,Graphite,OpenTSDB,Kafka,Grafana等相集成。 Netdata是免费的开源软件,目前可在Linux,FreeBSD和macOS以及从它们衍生的其他系统(例如Kubernetes和Docker)上运行。 Netdata仓库地址:https:github。comnetdatanetdataNetdata特性友好、美观的可视化界面可自定义的控制界面安装快速且高效配置简单,甚至可零配置零依赖可扩展,自带插件API支持的系统平台广Netdata是如何工作的? Netdata是一个高效,高度模块化的指标管理引擎。它的无锁设计使其非常适合度量标准上的并发操作。 上图的各个组件的作用描述,有兴趣的可以参考官方的说明,这里不再赘述了。Netdata可监控什么? Netdata可以收集来自200多种流行服务和应用程序的指标,以及数十种与系统相关的指标,例如CPU,内存,磁盘,文件系统,网络等。我们将这些收集器称为,它们由插件管理,该插件支持多种编程语言,包括Go和Python。 流行的收集器包括Nginx,Apache,MySQL,statsd,cgroups(容器,Docker,Kubernetes,LXC等),Traefik,Web服务器access。log文件等。 详细的支持列表请参考下面的说明:https:github。comnetdatanetdatablobmastercollectorsCOLLECTORS。mdNetdata安装 (1)直接安装 首先需要更新升级系统内核和一些依赖库文件〕yumupdatey 执行完更新操作后,直接执行下面的命令进行安装Netdata。〕bash(curlSshttps:mynetdata。iokickstart。sh) 然后,程序会自动执行安装动作,去下载一系列的包进行安装,中间需要确认操作一次,如下: 可能会由于访问国外的资源,和根据你的网络关系,等待的时间或长或短。 一些关键的信息,从安装过程中也是可以看的出来的,如下图。 从上图信息可以看出访问方法,启动、停止服务的命令。 安装完成如下图 显示Netdata已经启动完成,我们可以使用命令来查看一下是否启动完成?〕lsofi:19999COMMANDPIDUSERFDTYPEDEVICESIZEOFFNODENAMEnetdata14787netdata4uIPv4279950t0TCP:dnpsec(LISTEN)netdata14787netdata5uIPv6279960t0TCP:dnpsec(LISTEN)〕psefgrepnetdatanetdata147871223:24?00:00:06usrsbinnetdataPvarrunnetdatanetdata。pidDnetdata1480014787023:24?00:00:00usrsbinnetdataspecialspawnservernetdata1495414787023:24?00:00:01bashusrlibexecnetdataplugins。dtcqoshelper。sh1netdata1497414787023:24?00:00:02usrbinpythonusrlibexecnetdataplugins。dpython。d。plugin1root1497514787123:24?00:00:04usrlibexecnetdataplugins。debpf。plugin1netdata1497614787023:24?00:00:01usrlibexecnetdataplugins。dgo。d。plugin1netdata1497714787123:24?00:00:05usrlibexecnetdataplugins。dapps。plugin1root152771149023:29pts000:00:00grepcolorautonetdata (2)Docker方式安装 首先准备Docker环境,然后直接执行下面的命令即可完成安装操作。dockerrundnamenetdatap19999:19999vnetdatalib:varlibnetdatavnetdatacache:varcachenetdatavetcpasswd:hostetcpasswd:rovetcgroup:hostetcgroup:rovproc:hostproc:rovsys:hostsys:rovetcosrelease:hostetcosrelease:rorestartunlessstoppedcapaddSYSPTRACEsecurityoptapparmorunconfinednetdatanetdata 安装完成后,就可以通过下面的方式进行访问了。 界面展示 (1)总体数据界面 (2)内存 (3)CPU (4)磁盘 (5)网络 (6)应用 (7)网络接口 (8)数据同步功能 Netdata仪表板上的图表彼此同步,没有主图表。可以随时平移或缩放任何图表,其他所有图表也将随之出现。 通过使用鼠标拖动可以平移图表。当鼠标指针悬停在图表上时,可以使用SHIFT放大缩小mousewheel图表。Netdata强大之处 之所以如此强大,是因为它与各类应用的配合与支持,直接上图说明: Netdata集群管理方案 上面展示的只是单一服务器的监控数据,而且netdata有一个缺点就是所有被监控的服务器都需要安装agent,所以,这里就是出现一个问题,就是如何将监控数据统一管理与展示? netdata官方并没设计主从模式,像zabbix那样,可以一台做为主服务器,其它的做为从服务器,将数据收集到主服务器统一处理与展示,但是,官方也给出了相关的解决方案。netdata。cloud 使用自带的netdata。cloud,也就是每一个安装节点WEB界面右上角的signin。只要我们使用同一个账号登录netdata。cloud(需要kexue上网),之后各个节点之间就可以轻松通过一个账号控制。每个节点开启19999端口与允许管理员查看数据,然后控制中心通过前端从各节点的端口收集的数据,传给netdata。cloud记录并展示。 这是一种被动的集群监控,本质上还是独立的机器,且不方便做自定义的集群dashboard。stream插件 所以,为了解决上面这种方案的弊端,netdata又提供了另一种方法,将各节点的数据集中汇总到一台(主)服务器,数据处理也在这台服务器上,其它节点无需开放19999端口。算是一种主动传输模式,把收集到的数据发送到主服务器上,这样在主服务器上可以进行自定义的dashboard开发。 缺点:主服务器流量、负载都会比较大(在集群服务器数量较多的情况下),如果主服务器负载过高,我们可以通过设置节点服务器的数据收集周期(updateevery)来解决这个问题。Netdata集群监控配置 对于streaming的配置不熟悉的可以参考官方的文档说明:https:docs。netdata。cloudstreaming (1)节点服务器配置〕cdetcnetdatanetdata〕vimnetdata。conf修改配置如下〔global〕memorymodenonehostname〔建议修改成你的主机名〕〔web〕modenone 然后,在etcnetdata目录下新建一个文件stream。conf,然后将其配置为如下:〔stream〕enabledyesdestinationMASTERSERVERIP:PORTapikeyxxxxxxxxxxxxxxxxxxxx参数说明如下 destinationMASTERSERVERIP:PORT主服务器地址与端口 apikey必需为uuid的字符串,Linux系统中可以使用下面的命令自动生成。netdata〕uuidgen480fdc8cd1ac4d6faa26128eba744089 配置完成之后,需要重启节点的netdata服务即可完成整个配置。〕systemctlrestartnetdata (2)主服务器配置 在netdata。conf的同一目录下新建stream。conf并写入如下配置:〔APIKEY〕〔480fdc8cd1ac4d6faa26128eba744089〕enabledyesdefaulthistory3600defaultmemorymodesavehealthenabledbydefaultautoallowfrom〔APIKEY〕enabledyesdefaulthistory3600defaultmemorymodesavehealthenabledbydefaultautoallowfrom其中,APIKEY对应节点服务器的apikey(字符串),allowfrom可以设置数据流的允许来源以保证安全。 如果有多个节点服务器,则一起写在stream。conf里面 完成配置后重启netdata:systemctlrestartnetdata 所有的配置完成后,就可以在主服务器的WEB界面右上角看到下拉菜单(主机名),点击即可看到相关的监控信息了。 如果需要自定义控制面板,可以参考官方的文档,去修改xml文件。原文地址:https:docs。netdata。cloudwebguicustom 到这里,这款实用、酷炫的服务器性能实时监控工具就介绍完了。