Linux服务器监控的神器:Netdata

原创 2017年03月27日 01:12:46

请访问我的独立博客查看文章: http://blog.ywheel.cn/post/2017/03/26/netdata/

由于工作的关系,最近在思考如何做集群、服务器的监控。在网上东转转西转转,偶然发现了一个单机监控的2016新秀Netdata,眼前着实为之一亮。 令人印象非常之深刻的个主要特性:

  1. 界面酷炫,实时监控
  2. 零配置,即装即用

官网地址在这里: https://my-netdata.io/ , 在The state of the Octoverse 2016 也能看到他的身影:

github octoverse 2016

Netdata feature

Github上能够看到netdata的主要功能,主要有几点(详细的可查看github上的说明):

  1. interactive bootstrap dashboards, 酷炫(主要是dark主题,light主题就没这感觉了)
  2. 匪夷所思的快。。。所有请求每个metreic都在0.5ms内响应,即便是一台烂机器
  3. 非常高效,每秒采集数千个指标,但仅占cpu单核1%,少量MB的内存以及完全没有磁盘IO
  4. 提供复杂的、各种类型的告警,支持动态阈值、告警模板、多种通知方式等
  5. 可扩展,使用自带的插件API(比如bash, python, perl, node.js, java, go, ruby等)来收集任何可以衡量的数据
  6. 零配置:安装后netdata会自动的监测一切
  7. 零依赖:netdata有自己的web server, 提供静态web文件和web API
  8. 零维护:只管跑上!
  9. 支撑多种时间序列后端服务,比如graphite, opentsdb, prometheus, json document DBs

Netdata监控项也很多,比如CPU, 内存,磁盘,网络这些基础的之外,还可以有IPC, netfilter/iptables Linux firewall, fping, Processes, NFS, Network QoS, Applications, Apache web server, Nginx, Tomcat, mysql, postgres, redis, mongodb, elasticsearch, SNMP devices等等。

Netdata install

Netdata的安装非常简单,支持几乎所有的Linux版本。刚好我还有一个用于来科学上网的EC2机器是Unbutu系统,果断登上去尝试。

安装准备

Netdata提供了一个非常简便的安装方法,我的Unbutu系统只需要执行下面的命令即可完成安装netdata所依赖的各种东西:

curl -Ss 'https://raw.githubusercontent.com/firehol/netdata-demo-site/master/install-required-packages.sh' >/tmp/kickstart.sh && bash /tmp/kickstart.sh -i netdata

注意,上面的命令是安装基本的部分,不包括mysql / mariadb, postgres, named, hardware sensors and SNMP. 如果要完整安装,则需要执行下面的命令:

curl -Ss 'https://raw.githubusercontent.com/firehol/netdata-demo-site/master/install-required-packages.sh' >/tmp/kickstart.sh && bash /tmp/kickstart.sh -i netdata-all

安装Netdata

安装Netdata也很简单,按照wiki的说明即可:

# download it - the directory 'netdata' will be created
git clone https://github.com/firehol/netdata.git --depth=1
cd netdata

# run script with root privileges to build, install, start netdata
./netdata-installer.sh

注意上面要使用root权限,执行命令后的提示信息也很丰富有趣,比如刚开头是这样的:

$ sudo ./netdata-installer.sh 

  ^
  |.-.   .-.   .-.   .-.   .  netdata                                        
  |   '-'   '-'   '-'   '-'   real-time performance monitoring, done right!  
  +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->


  You are about to build and install netdata to your system.

  It will be installed at these locations:

   - the daemon     at /usr/sbin/netdata
   - config files   in /etc/netdata
   - web files      in /usr/share/netdata
   - plugins        in /usr/libexec/netdata
   - cache files    in /var/cache/netdata
   - db files       in /var/lib/netdata
   - log files      in /var/log/netdata
   - pid file       at /var/run/netdata.pid
   - logrotate file at /etc/logrotate.d/netdata

  This installer allows you to change the installation path.
  Press Control-C and run the same command with --help for help.

安装结束的最后几行是这样的:

Uninstall script generated: ./netdata-uninstaller.sh
Update script generated   : ./netdata-updater.sh

netdata-updater.sh can work from cron. It will trigger an email from cron
only if it fails (it does not print anything if it can update netdata).
Run this to automatically check and install netdata updates once per day:

ln -s /home/ubuntu/netdata/netdata-updater.sh /etc/cron.daily/netdata-updater.sh

 --- We are done! --- 

  ^
  |.-.   .-.   .-.   .-.   .-.   .  netdata                          .-.   .-
  |   '-'   '-'   '-'   '-'   '-'   is installed and running now!  -'   '-'  
  +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->

  enjoy real-time performance and health monitoring...

安装完后,还可以根据wiki所说的配置开机启动,照做之后执行service netdata start启动服务,可以访问http://localhost:19999/ 看到监控界面。随后去AWS控制台放通19999端口,我的EC2机器的监控系统就大功告成啦!

由此看出,Netdata的安装非常之简单,只有几行命令,而且根本无需配置。

监控页面

再来看看监控页面,除了配色酷炫,监控项种类繁多之外,页面元素的实时响应、告警设置等都极具亮点。为了更好的展示页面,在这里会盗用github上netdata官方的几个动态图来show一下.

System overview

System overview

Disks

Disks

Network interfaces

Network

Alarms

Alarms

Netdata backend

Netdata也可以后台服务收集监控指标,多服务器的监控指标汇总到前台展示,或者归档汇总后提供给其他工具如grafana, 如下图:

netdata backend

Netdata支持如下几个backends:

  • 1) graphite;
  • 2) opentsdb;
  • 3) json document DBs.

并能够提供3种计算模式:

  • 1) as collected;
  • 2)average;
  • 3) sum or volume。

具体的可以到netdata wiki查看。利用这种方式,应该也较容易能够折腾出来一个集群监控的解决方案,并且netdata和grafana的界面看起来都非常的酷炫(又一次印证了一个观点:大屏监控系统就得是暗色系!)

看到roadmap里面提到:monitor more applications (hadoop and friends, postgres, etc). 也希望hadoop这方面的监控能早日实现,又可以多一个可选方案啦~

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

NetBeans 中文输入法词语候选区不跟随光标

系统是WIN7 64位,使用NETBEANS开发IDE的时候,输入法光标不能跟随。 搜狗、谷歌输入法都不可以。 搜索发现微软自己另外的一个输入法兼容性好,Engkoo微软英库输入法。 官方网址:...
  • crx05
  • crx05
  • 2016-07-12 16:51
  • 529

linux web监控服务器资源工具 netdata

具体的netdata介绍请参照GIT:https://github.com/firehol/netdata/wiki 以下只介绍centos下的netdata的安装与使用: 1、安装Netdata...

TcMalloc,A Big Surprise!

Tcmalloc早有耳闻,没有进行过细节的了解,直到最近有同事在几个模块中使用,才领略到它的强大! 场景: 模块多线程并发处理输入数据,大量使用各种STL容器,运行内存30G。 程序重启,导入历...
  • yfkiss
  • yfkiss
  • 2011-10-25 00:00
  • 19606

从零开始玩转JMX(一)——简介和Standard MBean

JMX的全称为Java Management Extensions. 顾名思义,是管理Java的一种扩展。这种机制可以方便的管理、监控正在运行中的Java程序。常用于管理线程,内存,日志Level,服...

设计模式---装饰模式(Decorator)

装饰模式是为已有功能动态地添加更多功能的一种模式。当系统需要新功能时,一般做法是向旧的类中添加新的代码,这些新加的代码通常影响了原有类的核心职责或行为,在主类中加入新的字段、方法或是逻辑,从而增加了主...

程序员的八重境界

看到一篇有趣的文章The Eight Levels of Programmers。以前似乎看过不少这种程序员的多少个级别、境界,但这篇语言很风趣,而且分类比较细化,让人觉得挺合情合理、无法反驳的。绝大...
  • dc_726
  • dc_726
  • 2017-08-31 04:58
  • 27002

Outlook VBA自动处理邮件

需求描述 公司里面每天都会有很多邮件,三分之一都是不需要看的,Outlook的过滤功能不错,都可以处理掉。还有些邮件,根据正文或者附件做一下处理自动转发出去就行了。于是上网搜集了一些资料,写个了...

设计模式---建造者模式

在Gof的23种设计模式中对Builder Pattern的定义是:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 从程序角度来说,就是在基类定义某种事物创建的过程或业务流...

Android开发和安全系列工具

取证工具 * [bandicoot] (https://github.com/yvesalexandre/bandicoot) - 一个Python工具箱,用于分析手机元数据。它提供了一个完...

Android检查更新下载安装

检查更新是任何app都会用到功能,任何一个app都不可能第一个版本就能把所有的需求都能实现,通过不断的挖掘需求迭代才能使app变的越来越好。检查更新自动下载安装分以下几个步骤: 请求服务器判断是否有最...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)