Netdata部署与服务器集群监控

举报
brucexiaogui 发表于 2021/12/29 23:36:56 2021/12/29
【摘要】 Netdata部署与服务器集群监控 目录 官方链接基本部署集群监控 netdata.cloudstream 节点服务器主服务器集中管理自定义控制面板 官方链接 演示网页:https://my-netdata.io/ 官方首页:http://netdata.cloud/ 文档地址:http://doc...

Netdata部署与服务器集群监控

目录

官方链接

演示网页:https://my-netdata.io/
官方首页:http://netdata.cloud/
文档地址:http://docs.netdata.cloud
github地址:https://github.com/netdata/netdata#infographic
 

基本部署

官网提供了一个很强大的一键安装脚本(必须用bash运行),可以自动解决很多问题:

bash <(curl -Ss https://my-netdata.io/kickstart.sh)

 

但是这个脚本在安装时需要访问googleapis,因此在中国大陆地区,安装过程会被强制终端而失败。幸好开发者在github issue里面注意到了这个问题,因此,可以用下面这个命令来安装(必须在bash执行):

bash <(curl -Ss https://my-netdata.io/kickstart.sh) --stable-channel

 

这样整个安装过程都会从github获取资源(虽然还是很慢)。

在安装过程中,有时还会因为go.d.plugin超时而失败,解决方法:多试几次就好了。

安装完毕以后,访问IP:PORT即可,通常默认端口是19999

集群监控
国内大多数博文没有详细论述的是,如何在一个集群里面部署netdata从而实现集群监控。

首先需要明确的是,netdata本身不存在主从服务,在每一个节点上都需要完整部署netdata(按照上面的方法),所以说,netdata并不轻量。在每一个节点上都部署了netdata以后,就有两个方式实现集群监控了。

netdata.cloud
使用netdata自带的(在建的)netdata.cloud,也就是每一个节点控制面板右上角的那个signin。只要使用同一账号登陆到netdata.cloud(需要科学上网),各个节点之间就可以轻松通过一个账号控制。但是,它的缺点就在它的原理上:netdata.cloud只是帮你记录每个节点的信息,而控制面板在获取每个节点的数据的时候,是由前端直接从各个节点的19999端口获取数据的。也就是说,每个节点都必须要打开端口,开启dashboard,允许管理员查看数据。

可以说,这是一种被动的集群监控,本质上还是独立的机器,并且不方便做自定义的集群dashboard。

stream
为了解决上一种方法的问题,netdata同时提供了另外一种方法,流数据汇总到一台主服务器上。它本质上是主动汇总,数据处理全部在主服务器上进行,各个节点服务器不打开19999端口供查看,只是把收集到的数据发送到主服务器上。这样在主服务器上可以进行自定义的dashboard开发。

缺点在于,主服务器流量会比较大(如果集群很大的话),如果觉得主服务器流量过大,可以设置节点服务器的数据收集周期update every。

stream配置方法如下:
 

原文:https://docs.netdata.cloud/streaming/
 

节点服务器

修改netdata.conf中的如下配置:


  
  1. [global]
  2. memory mode = none
  3. hostname = [改成需要设置的主机标识名]
  4. [web]
  5. mode = none

同时在同一目录下新建stream.conf并写入如下配置:


  
  1. [stream]
  2. enabled = yes
  3. destination = IP:PORT
  4. api key = 11111111-2222-3333-4444-555555555555

其中,destination是主服务器的IP地址和netdata端口(默认19999),api key必须是一个uuid格式的字符串,可以在linux系统中用如下指令生成:

uuidgen

 

上面配置完成后,重启netdata服务:

systemctl restart netdata

 

主服务器

netdata.conf的同一目录下新建stream.conf并写入如下配置:


  
  1. [API_KEY]
  2. enabled = yes
  3. default history = 3600
  4. default memory mode = save
  5. health enabled by default = auto
  6. allow from = *

其中,API_KEY对应节点服务器的api keyallow from可以设置数据流的允许来源以保证安全。

如果有多个节点服务器,则一起写在stream.conf里面

完成配置后重启netdata:

systemctl restart netdata

 

集中管理

如果上述配置都正确,那么在浏览器打开主服务器的控制面板,在左上角主机名那里下拉菜单中就可以看到接入的其他节点。

如果有问题,请查看官网原文,查看日志进行调试。

自定义控制面板

原文地址:https://docs.netdata.cloud/web/gui/custom/
 

其实,默认的控制面板就已经非常好了,但是主要是集群监控的时候,能在一个大屏上看到所有服务器的运行情况,于是就需要自己定制一个dashboard。

netdata提供了dashboard.js,当然读者也可以使用其他控制面板。

有几个注意事项:

1、netdata默认的web目录在/usr/share/netdata/web,上传新的html文件以后需要把新文件的所有权改为用户netdata才可以运行:
 

chown netdata:netdata xxx.html

 
  1. 2需要引入dashboard.js:
<script type="text/javascript" src="./dashboard.js"></script>

 
  1. 3想要让整体的画风变为暗色系,只需要在html里面任何地方加上javascript代码
netdataTheme = "slate";

 

1.4图表的一般格式最好在参考官网的基础上,通过检查元素的方法查看默认控制面板的设置。
1.5图表元素的data-host属性如果是每个节点服务器独立监控的,那么填对应的ip和端口即可,如果是使用stream模式进行的集群监控,则按照如下配置方法:
ip:port是主服务器的ip和端口
主服务器自己的数据:
 

data-host="//ip:port/"

 

节点服务器:

data-host="//ip:port/host/[hostname]"

 
[hostname]是在节点服务器的配置文件中[global]下设置的hostname
 

此外,当然还可以引入Vue.js等前端库进行交互式设计啦!

转载自:https://blog.csdn.net/a1323933782/article/details/89190641

文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。

原文链接:brucelong.blog.csdn.net/article/details/95616946

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。