请访问我的独立博客查看文章: http://blog.ywheel.com/post/2017/03/26/netdata/
由于工作的关系,最近在思考如何做集群、服务器的监控。在网上东转转西转转,偶然发现了一个单机监控的2016新秀Netdata,眼前着实为之一亮。 令人印象非常之深刻的个主要特性:
官网地址在这里: https://my-netdata.io/ , 在The state of the Octoverse 2016 也能看到他的身影:
从Github上能够看到netdata的主要功能,主要有几点(详细的可查看github上的说明):
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的安装非常简单,支持几乎所有的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也很简单,按照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一下.
Netdata也可以后台服务收集监控指标,多服务器的监控指标汇总到前台展示,或者归档汇总后提供给其他工具如grafana, 如下图:
Netdata支持如下几个backends:
并能够提供3种计算模式:
具体的可以到netdata wiki查看。利用这种方式,应该也较容易能够折腾出来一个集群监控的解决方案,并且netdata和grafana的界面看起来都非常的酷炫(又一次印证了一个观点:大屏监控系统就得是暗色系!)
看到roadmap里面提到:monitor more applications (hadoop and friends, postgres, etc). 也希望hadoop这方面的监控能早日实现,又可以多一个可选方案啦~