NetData 入门

NetData 入门NetData 入门 Y Wolf 2020 05 06 文章目录 NetData 入门一 项目环境二 NetData 简介三 NetData 安装方法一方法二四 NetData 的基本操作五 卸载 NetData 五 NetData 的相关配置文件六 添加第三方扩展插件 NVIDIA SMI 在这里插入图片描述七 多设备监控方法一方法二节点服务器主服务器八 报警器九 将监控数据存入后端十 创建自定义监控界面一 项目环境系统 Ubuntu18 04 3LTS 官方说明文档 https learn n

NetData 入门

Y_Wolf(2020.05.06)

一、项目环境

  • 系统:Ubuntu 18.04.3 LTS
  • 官方说明文档:https://learn.netdata.cloud/docs/agent

二、NetData简介

NetData 是一个用于系统和应用的分布式实时性能和健康监控工具。它提供了对系统中实时发生的所有事情的全面检测。你可以在高度互动的 Web 仪表板中查看结果。使用 Netdata,你可以清楚地了解现在发生的事情,以及之前系统和应用中发生的事情。你无需成为专家即可在 Linux 系统中部署此工具。NetData 开箱即用,零配置、零依赖。只需安装它然后坐等,之后 NetData 将负责其余部分。


三、NetData安装

  • Netdata最简单的一种安装方式就是直接使用官方的脚本进行一键安装

    方法一

    bash <(curl -Ss https://my-netdata.io/kickstart-static64.sh) # Ubuntu的包管理器不确定有没有 sudo apt-get install netdata 
 当出现如下信息后,就代表安装成功了 bash ------------------------------------------------------------------------------- OK. NetData is installed and it is running (listening to *:19999). ------------------------------------------------------------------------------- INFO: Command line options changed. -pidfile, -nd and -ch are deprecated. If you use custom startup scripts, please run netdata -h to see the corresponding options and update your scripts. Hit http://localhost:19999/ from your browser. To stop netdata, just kill it, with: killall netdata To start it, just run it: /usr/sbin/netdata Enjoy! Uninstall script generated: ./netdata-uninstaller.sh 

这时我们只需要打开http://localhost:19999/就可以看到NetData的默认界面了

在这里插入图片描述

  • 如果上述方法安装不成功的话,也可以使用下面的方法自行安装

    方法二

    # 安装所需依赖项目 sudo apt-get install zlib1g-dev uuid-dev libuv1-dev liblz4-dev libjudy-dev libssl-dev libmnl-dev gcc make git autoconf autoconf-archive autogen automake pkg-config curl # 克隆NetData的git仓库 git clone https://github.com/netdata/netdata.git --depth=100 # 进入netdata目录 cd netdata/ # 执行安装脚本,并启动NetData sudo ./netdata-installer.sh 

四、NetData的基本操作

# 启动NetData服务,并设置开机启动 sudo systemctl enable netdata sudo systemctl start netdata # 重启服务 sudo systemctl restart netdata # 停止NetData服务 sudo systemctl stop netdata # 更新NetData服务(重新拉去,重新运行) cd netdata git pull sudo ./netdata-installer.sh 

五、卸载NetData

我们独立的卸载程序能够删除由Shell安装程序创建的Netdata安装。它不需要运行任何其他Netdata存储库文件。它所需要的只是一个.environment文件,该文件是在安装过程中创建的(使用Shell默认安装程序)并放入${NETDATA_USER_CONFIG_DIR}/.environment(默认情况下/etc/netdata/.environment)。该文件包含一些传递给我们的安装程序的参数,这些参数在卸载过程中是必需的。主要需要两个参数:

NETDATA_PREFIX NETDATA_ADDED_TO_GROUPS 

卸载工作流程如下所示:

  1. 查找您的.environment文件,这通常/etc/netdata/.environment是默认安装。
  2. 如果找不到该文件并想要卸载Netdata,则创建一个具有以下内容的新文件:
NETDATA_PREFIX = " 
     <安装前缀>
       " 
      # 将您用作参数的参数放置到shell已安装的--install标志中。否则应为空 NETDATA_ADDED_TO_GROUPS =" 
     <其他组>
       " 
      # 运行Netdata进程的用户的其他组 
  1. 运行netdata-uninstaller.sh如下:
    $ { 
           NETDATA_PREFIX} /usr/libexec/netdata/netdata-uninstaller.sh --yes --env <environment_file> 

[注]: 如果没有文件,现有安装可能仍需要下载文件。要在这种情况下执行卸载,请运行以下命令:

wget https://raw.githubusercontent.com/netdata/netdata/master/packaging/installer/netdata-uninstaller.sh chmod + x ./netdata-uninstaller.sh ./netdata-uninstaller.sh --yes --env <environment_file> 

默认environment_file值为/etc/netdata/.environment

[注]: 此卸载方法假定以前使用netdata-installer.sh或kickstart脚本进行安装。当前由软件包管理器安装Netdata时使用它可能会起作用或导致意外结果。如果是使用docker进行安装。

执行删除命令的过程中,它会让你确认有些文件是否需要删除,一般情况下,一路确定就可以了。

一切顺利的话,当你看到下面的画面就表示你已经安装成功了。

在这里插入图片描述


五、NetData的相关配置文件

NetData的核心配置可以通过cat /etc/netdata/netdata.conf或者http://127.0.0.1:19999/netdata.conf查看。

在这里插入图片描述

[注]: 上图矩形框部分内的为NetData的主要配置文件路径。

​ 如果觉得默认的仪表盘展示的图表太多,可以vim /etc/netdata/netdata.conf或者nano /etc/netdata/netdata.conf ,修改[plugins]中的配置。原配置文件中大部分默认开启的,如果我们不需要某些图表的话,可以将注释去掉,改为no。然后重启服务,就可以禁用相应的图表。

在这里插入图片描述

​ 禁用效果:

在这里插入图片描述

​ 如果觉得NetData占用的内存过大,也可以修改核心配置中的数据刷新率,来降低内存占用。

# 降低cpu占用: # 编辑:vim netdata.conf [global] update every = 2 # 或者只修改apps部分: [plugin:apps] update every = 2 

六、添加第三方扩展插件(NVIDIA-SMI)

[官方文档]: https://learn.netdata.cloud/docs/agent/collectors/python.d.plugin/nvidia_smi/

在新版NetData中,它自带nvidia显卡监控:

# vim /usr/lib/netdata/conf.d/python.d.conf nvidia_smi: yes 

[注]:但前提是你必须先确保安装好了nvidia-smi,且NVIDIA GPU必须支持该工具。

其次确保netdata用户可以执行/usr/bin/nvidia-smi或在您的二进制文件所在的任何位置。

生成配置文件:

# 使用官方提供的脚本,生成对用文件的配置文件 cd /etc/netdata sudo ./edit-config python.d/nvidia_smi.conf 

在这里插入图片描述

# 官方文档提供样例 loop_mode : yes # 默认为yes。 如果设置为yes,则使用-l选项在单独的线程中执行nvidia-smi。 poll_seconds : 1 # 默认为1。设置循环查询nvidia-smi工具的频率(秒数)。 

在这里插入图片描述


七、多设备监控

  • 方法一

    使用官方提供的平台NetData Cloud

    [官方文档]:https://learn.netdata.cloud/docs/agent/step-by-step/step-03

在这里插入图片描述

点击页面右上角的节点选项,即可进入官方平台。

在这里插入图片描述

通过邮箱或github账号,将设备与账号进行绑定。当我们使用平台绑定多个设备之后,就可以将多个设备的数据汇总到平台中进行浏览。

在这里插入图片描述

也可以使用左上角的下拉菜单进行自由切换。

在这里插入图片描述

[注]:虽然在官方文档中,作者一再强调,他们只会存储账号和绑定关系,但是仍然无法确定是否会发送服务器的状态给到其他人

  • 方法二

    可以使用为需要监控的服务器建立主从关系,将其他服务器的数据同一汇总到一台服务器进行浏览

    节点服务器

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

    [global] memory mode = none # 在此主机上禁用数据库。这也会禁用运行状况监视(没有数据库就无法进行运行状况监视) hostname = chenshaolang-MS-7817 # 修改配置名称 [web] mode = none # 禁用API(Netdata不会监听任何端口)。这也会禁用注册表(没有API的注册表将无法使用)。 

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

     [stream] enabled = yes destination = 127.0.0.1:19999 # 主服务器的ip地址 api key = 733d1bb7-91b1-4bcf-9a45-66ece # api key是一个uuid格式的字符串,可以使用uuidgen命令生成。主要是提供给主服务器使用 

    在这里插入图片描述

    重启服务:

     systemctl restart netdata 

    主服务器

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

    [733d1bb7-91b1-4bcf-9a45-66ece] # 刚才节点服务器生成的api key enabled = yes default history = 3600 default memory mode = save health enabled by default = auto allow from = * # allow from可以设置数据流的允许来源以保证安全。如 allow from = 127.0.0.1 仅允许该ip连接 

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

    重启服务:

     systemctl restart netdata 

    配置完后,我们就可以直接在主服务器上直接浏览所有节点服务器的情况了。

    [官方文档]:https://learn.netdata.cloud/docs/agent/streaming

在这里插入图片描述

[注]:右上方箭头处,证明我没有登录官方的平台就是先多服务器数据连通。


八、报警器

[官方文档]:https://learn.netdata.cloud/docs/agent/step-by-step/step-05

事实上在我们安装好NetData时,官方就已经为我们预设了很多的报警器。我们直接点击上方的Alarms就可以进入。

在这里插入图片描述

同时它会定时记录每个时间段服务器的状况,并声称快照。当发现警报时,可以通过查阅历史,点击直接进入放生警报时服务器的状态。

在这里插入图片描述

如上图,在5月4日的时候,系统发生了一次警报。通过点击,直接进入发生状况时,系统的状态。

在这里插入图片描述

[注]: 但是这个功能需要登录他们的平台才能跳转,或者将数据存入数据库或者其他第三方监控软件。如Graphite,OpenTSDB,Prometheus,AWS Kinesis Data Streams,MongoDB

九、将监控数据存入后端

[官方文档]:https://learn.netdata.cloud/docs/agent/step-by-step/step-09

# 首先先安装数据库 sudo apt-get install mongodb # 然后安装相关的依赖 sudo apt-get install libmongoc-1.0-0 libmongoc-dev # 在数据库中新建一个名叫netdata的数据库 use netdata # 并在里面创建一张名叫netdata_metrics的表 db.createCollection("netdata_metrics") 

然后在核心配置netdata.conf文件中,将数据发送到MongoDB后端的功能启用

在这里插入图片描述

接着Netdata配置目录中,运行sudo ./edit-config mongodb.conf并设置MongoDB URI,数据库名称和集合名称

在这里插入图片描述

然后重新启动NetData以启用MongoDB后端,当出现下面画面就表示配置成功,已经将数据存储进mongodb中。

在这里插入图片描述

在这里插入图片描述

[注]:这个之前按照官方文档的配置是不成功的,但是后面升级了pymongo,重启了一下就突然能用了。

pip3 uninstall pymongo bson

sudo pip3 install pymongo --upgrade

十、 创建自定义监控界面

[官方文档]:https://learn.netdata.cloud/docs/agent/step-by-step/step-08#why-should-i-create-a-custom-dashboard

NetData除了可以在默认的界面上进行相关图表的删除的添加之外,还支持自定义页面。

首先 我们在目录/usr/share/netdata/web下创建也页面custom-dashboard.html

 <html lang="en"> <head> <title>My custom dashboard 
           title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> <script> var netdataTheme = 'slate';  
            script>  
            <script type="text/javascript" src="http://localhost:19999/dashboard.js"> 
             script> <style> .wrap { 
              max-width: 1280px; margin: 0 auto; } h1 { 
              margin-bottom: 30px; text-align: center; } .charts { 
              display: flex; flex-flow: row wrap; justify-content: space-around; } .charts > div { 
              margin-bottom: 6rem; position: relative; }  
              style>  
               head> <body> <main class="wrap"> <h1>My custom dashboard 
                h1> <div class="charts">  
                <div data-netdata="system.cpu" data-after="-300" data-height="250px" data-width="calc(50% - 2rem)"> 
                 div> <div data-netdata="apps.cpu" data-after="-300" data-height="250px" data-width="calc(50% - 2rem)"> 
                  div> <div data-netdata="groups.cpu" data-after="-300" data-height="250px" data-width="calc(50% - 2rem)"> 
                   div> <div data-netdata="users.cpu" data-after="-300" data-height="250px" data-width="calc(50% - 2rem)"> 
                    div>  
                     div>  
                      main>  
                       body>  
                        html> 

然后修改这个页面文件的权限,NetData有权限去直接访问它

sudo chown netdata:netdata /usr/share/netdata/web/custom-dashboard.html

配置完后,就可以直接使用http://127.0.0.1:19999/custom-dashboard.html进行登录查看。

在这里插入图片描述


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/215399.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午2:00
下一篇 2026年3月18日 下午2:01


相关推荐

  • 笔记本电脑风扇嗡嗡声特别大的解决

    笔记本电脑风扇嗡嗡声特别大的解决

    2021年5月18日
    413
  • 微服务的优缺点

    微服务的优缺点优点 1 每个服务足够内聚 足够小 代码容易理解 这样能聚焦一个指定的业务功能或业务需求 2 开发简单 开发效率提高 一个服务可能就是专一的只干一件事 3 微服务能够被小团队单独开发 4 服务是低耦合的 5 能够是用不同的语言开发 6 易于和第三方集成 7 微服务易于被一个开发人员理解 修改和维护 这样小团队能够更关注自己的工作成果 无需通过合作就能实现价值 8 微服务允许你融合最新技术 9 微服务只是业务逻辑的代码 不会和 HTML CSS 或和其他页面混合 10 每个服务都有自己的存

    2026年3月17日
    2
  • 即梦ai如何生成手绘风格 即梦ai艺术滤镜应用方法

    即梦ai如何生成手绘风格 即梦ai艺术滤镜应用方法

    2026年3月13日
    5
  • stat 函数解析

    stat 函数解析stat 函数的简单使用 stat 函数是用来获取文件的各种属性的一个 linux 下的常用 API 函数 函数原型为 intstat constchar path structstat buf stat 定义如下 structstat dev tst dev 文件的设备编号 ino tst ino 节点 mode tst m

    2026年3月18日
    3
  • ringbuffer 无锁队列_javabytebuffer使用

    ringbuffer 无锁队列_javabytebuffer使用一、简介1、循环缓冲区的实现原理环形缓冲区通常有一个读指针和一个写指针。读指针指向环形缓冲区中可读的数据,写指针指向环形缓冲区中可写的缓冲区。通过移动读指针和写指针就可以实现缓冲区的数据读取和写入。在通常情况下,环形缓冲区的读用户仅仅会影响读指针,而写用户仅仅会影响写指针。如果仅仅有一个读用户和一个写用户,那么不需要添加互斥保护机制就可以保证数据的正确性。如果有多个读写用户访问环形缓冲区,那么必须…

    2025年9月5日
    8
  • why在重写equals时还必须重写hashcode方法

    why在重写equals时还必须重写hashcode方法

    2022年2月22日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号