概述
开源运维监控框架Netdata——实时监控系统性能
作为一个Linux的SA,很有必要掌握一个专门的系统监控工具,以便能随时了解系统资源的占用情况。下面就介绍下一款Linux性能实时监测工具-Netdata,它是Linux系统实时性能监测工具,以web的可视化方式展示系统及应用程序的实时运行状态(包括cpu、内存、硬盘输入/输出、网络等linux性能的数据)
。Netdata的web前端响应很快,而且不需要Flash插件。 UI很整洁,保持着 Netdata 应有的特性。第一眼看上去,你能够看到很多图表,幸运的是绝大多数常用的图表数据(像 CPU,RAM,网络和硬盘)都在顶部。如果你想深入了解图形化数据,你只需要下滑滚动条,或者点击在右边菜单的项目。通过每个图表的右下方的按钮,Netdata还能控制图表的显示,重置,缩放。Netdata文档地址:https://github.com/firehol/netdata/wiki
Netdata用可视化的手段,将被监测者最细微的细节,展现了出来。这样便可以清晰地了解linux系统和应用程序此时的状况。
特点
- 界面优美:使用 Bootstrap 开发框架
- 界面自定义:可以使用简单的 HTML 语言定制界面
- 高效快速:程序核心使用 C语言编写,效率高
- 零配置:默认配置足够使用,安装完成就可以使用
- 零依赖:它的静态网络文件和网络接口拥有自己的网络服务器
- 可扩展:用它自身的插件 API,可以检测任何可以衡量的数据
- 可嵌入:可以在任何 Linux 内核可以运行的地方使用
安装
netdata项目地址:https://github.com/ktsaou/netdata
Linux手动安装(本次使用CentOS7系统)
一键安装
官方提供一键安装程序,使用于任何Linux系统
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
程序会自动执行安装动作,去下载一系列的包进行安装,中间需要需要你按回车以进行下一步,可能会由于访问国外的资源,和根据你的网络关系,等待的时间或长或短。
安装成功!
下载源码/安装
环境准备
#Debian/Ubuntu
apt-get install zlib1g-dev uuid-dev libmnl-dev gcc make git autoconf autoconf-archive autogen automake pkg-config curl
#Fedora
dnf install zlib-devel libuuid-devel libmnl-devel gcc make git autoconf autoconf-archive autogen automake pkgconfig curl findutils
#CentOS/Red Hat Enterprise Linux
yum install autoconf automake curl gcc git libmnl-devel libuuid-devel lm-sensors make MySQL-python nc pkgconfig python python-psycopg2 PyYAML zlib-devel
安装
git clone https://github.com/ktsaou/netdata.git
cd netdata
./netdata-installer.sh
指定安装目录
./netdata-installer.sh --install /opt
ERROR
可能出现configure: error: libuv required but not found. Try installing 'libuv1-dev' or 'libuv-devel'.
错误
解决办法:
[root@izt4nd netdata]# yum search libuv-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
======================================== N/S matched: libuv-devel =========================================
libuv-devel.x86_64 : Development libraries for libuv
Name and summary matches only, use "search all" for everything.
[root@izt4nd netdata]# yum -y install libuv-devel.x86_64
重新安装即可
开机自启动
安装完成后,在netdata/system
目录中,包含有netdata的启动脚本和配置文件。
方法1:systemd
如果服务运行,先kill掉
killall netdata
cp system/netdata.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable netdata
systemctl start netdata
方法2:init.d
#For CentOS/Red Hat
cp system/netdata-init-d /etc/init.d/netdata
chmod +x /etc/init.d/netdata
chkconfig --add netdata
chkconfig netdata on
#For Ubuntu
cp system/netdata-init-d /etc/init.d/netdata
chmod +x /etc/init.d/netdata
upload-rc.d netdata defaults
使用&&卸载
福昕PDF阅读器默认端口19999,可能会造成无法访问,卸载或修改netdata默认端口即可解决
本机访问:http://localhost:19999
访问配置文件:http://localhost:19999
完成安装后,netdata/
目录下会生成卸载脚本
cd netdata
./netdata-uninstaller.sh -force
Netdata的访问,http://localhost:19999 运行动态效果图如下:
netdata有一下几个常用命令:
# 停止
systemctl stop netdata
# 启动
systemctl start netdata
# 重启
systemctl restart netdata
# 开机启动
systemctl enable netdata
#卸载netda:
sudo bash /usr/libexec/netdata-uninstaller.sh
Netdata集群管理方案
上面展示的只是单一服务器的监控数据,而且netdata有一个缺点就是所有被监控的服务器都需要安装agent,所以,这里就是出现一个问题,就是如何将监控数据统一管理与展示?
netdata官方并没设计主从模式,像zabbix那样,可以一台做为主服务器,其它的做为从服务器,将数据收集到主服务器统一处理与展示,但是,官方也给出了相关的解决方案。
1、netdata.cloud
使用自带的 netdata.cloud,也就是每一个安装节点WEB界面右上角的signin。只要我们使用同一个账号登录netdata.cloud(需要kexue上网),之后各个节点之间就可以轻松通过一个账号控制。每个节点开启19999端口与允许管理员查看数据,然后控制中心通过前端从各节点的端口收集的数据,传给netdata.cloud记录并展示。
这是一种被动的集群监控,本质上还是独立的机器,且不方便做自定义的集群dashboard。
2、stream 插件
所以,为了解决上面这种方案的弊端,netdata又提供了另一种方法,将各节点的数据集中汇总到一台(主)服务器,数据处理也在这台服务器上,其它节点无需开放19999端口。 算是一种主动传输模式,把收集到的数据发送到主服务器上,这样在主服务器上可以进行自定义的dashboard开发。
缺点:主服务器流量、负载都会比较大(在集群服务器数量较多的情况下),如果主服务器负载过高,我们可以通过设置节点服务器的数据收集周期(update every)来解决这个问题。
Netdata集群监控配置
很多文章都只是介绍了其安装与一些界面的展示结果,并没有提供集群监控这一解决方案与其具体的配置,民工哥也是查了很多的资料,现在将其配置过程分享给大家。
对于streaming的配置不熟悉的可以参考官方的文档说明:https://docs.netdata.cloud/streaming/
1、节点服务器配置
[root@CentOS7-1 ~]# cd /etc/netdata/
[root@CentOS7-1 netdata]# vim netdata.conf
#修改配置如下[global]
memory mode = none hostname = [建议修改成你的主机名]
[web]
mode = none
然后,在/etc/netdata/目录下新建一个文件stream.conf,然后将其配置为如下:
[stream]
enabled = yes
destination = MASTER_SERVER_IP:PORT
api key = xxxx-xxxx-xxxx-xxxx-xxxx
#参数说明如下
destination = MASTER_SERVER_IP:PORT 主服务器地址与端口
api key 必需为uuid的字符串,Linux系统中可以使用下面的命令自动生成。
[root@CentOS7-1 netdata]# uuidgen
480fdc8c-d1ac-4d6f-aa26-128eba744089
配置完成之后,需要重启节点的netdata服务即可完成整个配置。
[root@CentOS7-1 ~]# systemctl restart netdata
2、主服务器配置
在netdata.conf的同一目录下新建stream.conf并写入如下配置:
[API_KEY]/[480fdc8c-d1ac-4d6f-aa26-128eba744089]
enabled = yes
default history = 3600
default memory mode = save
health enabled by default = auto
allow from = *
[API_KEY] enabled = yes
default history = 3600
default memory mode = save
health enabled by default = auto
allow from = *
#其中,API_KEY对应节点服务器的api key(字符串),allow from可以设置数据流的允许来源以保证安全。
#如果有多个节点服务器,则一起写在stream.conf里面
完成配置后重启netdata:
systemctl restart netdata
所有的配置完成后,就可以在主服务器的WEB界面右上角看到下拉菜单(主机名),点击即可看到相关的监控信息了。
最后
以上就是如意哈密瓜为你收集整理的开源运维监控框架Netdata——实时监控系统性能的全部内容,希望文章能够帮你解决开源运维监控框架Netdata——实时监控系统性能所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复