Netdata介绍

  • Netdata 是一个免费、开源、实时、专业的服务器监控工具,它以可视化的形式实时展现监控主机的性能变化,提供了一个交互式 Web 界面来查看您的服务器指标。它可以帮助我们了解监控主机的系统或应用程序中正在发生的事情以及刚刚发生的事情,并且它还可以安装在任何物理服务器、虚拟机、容器和物联网设备上。

  • 界面炫酷、监控项目全面,适合做大屏监控(酷炫装逼)等等~

  • 最新版本v1.46.0-129-nightly监控截图(明亮主题,浏览器翻译中文。)

可监控内容

  • CPU的使用率,中断,软中断和频率(总量和每个单核)

  • RAM,互换和内核内存的使用率(包括KSM和内核内存deduper)

  • 硬盘输入/输出(每个硬盘的带宽,操作,整理,利用等)

  • IPv4&IPv6网络(数据包,错误,分片)

  • Netfilter/iptables Linux防火墙(连接,连接跟踪事件,错误等)

  • 进程(运行,受阻,分叉,活动等)

  • NFS文件服务器

  • 网络服务质量

  • 应用程序,通过对进程树进行分组(CPU,内存,硬盘读取,硬盘写入,交换,线程,管道,套接字等)

  • Apache Web服务器状态(v2.2, v2.4)

  • Mysql数据库(多台服务器,单个显示:带宽,查询/s, 处理者,锁,问题,临时操作,连接,二进制日志,线程,innodb引擎等)

缺点

集群监控

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

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

  • netdata.cloud

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

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

  • stream

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

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

  • 此段引用网络文章

原文地址:https://bbs.huaweicloud.com/blogs/322092

手动安装教程

docker-compose方式安装

  1. 演示以在群晖NAS系统上安装为例
    (其他系统请自行安装好最新版本Docker、docker-compose)

  2. 打开群晖的SSH功能,使用终端软件进行连接,并切换到root状态下。

  3. 进入群晖的docker文件夹(你想将容器数据存储到哪就进哪个文件夹)

    cd /volume1/docker
  4. 创建项目文件夹及子文件夹

    mkdir -p netdata/{netdata,lib,cache}
  5. 进入项目文件夹

    cd netdata
  6. 编辑docker-compose.yml文件

    vi docker-compose.yml
  7. 按字母 i 键进入编辑模式,复制并修改下面的配置文件,粘贴到终端,按Esc键退出编辑模式,输入 :wq 退出并保存。

    version: '3'
    services:
      netdata:
        image: netdata/netdata
        container_name: netdata
        pid: host
        network_mode: host    #采用host网络模式
        restart: unless-stopped
        cap_add:
          - SYS_PTRACE
          - SYS_ADMIN
        security_opt:
          - apparmor:unconfined
        volumes:
          - ./netdata:/etc/netdata    #可将左侧的./netdata文件夹换成完整的文件夹路径
          - ./lib:/var/lib/netdata    #可将左侧的./lib文件夹换成完整的文件夹路径
          - ./cache:/var/cache/netdata    #可将左侧的./cache文件夹换成完整的文件夹路径
          - /:/host/root:ro,rslave
          - /etc/passwd:/host/etc/passwd:ro
          - /etc/group:/host/etc/group:ro
          - /etc/localtime:/etc/localtime:ro
          - /proc:/host/proc:ro
          - /sys:/host/sys:ro
          #- /etc/os-release:/host/etc/os-release:ro    #如果你是其他Linux系统请删除#符合,取消注释。这条在群晖上不能用。
          - /var/log:/host/var/log:ro
          - /var/run/docker.sock:/var/run/docker.sock:ro
    
  8. 对项目文件夹设置读写权限为everyone(容器数据文件存放在哪就设置哪个文件夹)

    chmod -R 777 /volume1/docker/netdata
  9. 执行命令,启动docker-compose文件,拉取镜像并创建容器。

    docker-compose up -d
  10. 查看正在运行的项目容器

    docker-compose ps

访问Netdata

  1. 打开浏览器,以群晖的IP+设置的端口(默认19999)进行访问。
    以本机为例:http://192.168.2.195:19999
    稍微等待几秒等它自己加载出来即可显示

  2. 默认是英文界面,你可以在此界面查看你监控设备的所有实时信息。

  3. 如果你使用的是其他系统,请在系统防火墙放开访问端口。

    #Centos7命令
    
    firewall-cmd --zone=public --add-port=19999/tcp --permanent
    firewall-cmd --reload
    
    
    #Ubuntu命令
    
    sudo ufw allow 19999
  4. 完成后先清空浏览器缓存,再请刷新网页,即可显示中文界面。

汉化Netdata

  1. 继续使用终端软件,按照下面的方法进行汉化。

    汉化图文教程地址:https://mp.weixin.qq.com/s/M9GT33VQNz0BtMF0JFhiXQ
    汉化图文教程使用文件地址(gitee):https://gitee.com/DXLinux/Netdata-chinese-patch
    汉化图文教程使用文件地址(GitHub):https://github.com/DX-Kevin/Netdata-chinese-patch
    
    netdata 简中汉化(适用于netdata版本:v1.32.1-37-nightly)(实测可在最新版上通用,与前面的汉化效果一样。)文件地址:https://gitee.com/user-zy/netdata_zh
  2. 使用上面的方法在复制文件到容器内部时(群晖上测试)会提示存储空间不足
    可先将进入容器内部把指定文件删除,再使用vi命令手动复制文件的代码(以文本文档的方式打开文件)粘贴上去并保存,退出再重启容器生效。

  3. 之所以不重复写汉化教程,一是缺少最新版的汉化文件,二是我个人觉得汉化后的界面不如原版。
    数据总共就这么点,看看关键词就行了,实在看不懂的打开浏览器进行翻译也是差不多的效果,不耽误理解。

添加集群监控

方式一(在线集群)

  1. 前往Netdata官网注册一个账户

    https://www.netdata.cloud/
  2. 创建一个空间

  3. 点击Add nodes,选择一个安装节点的方式(演示用docker-compose方式)。

  4. 按照本教程进行安装

  5. 安装完毕即自动连接到你的Netdata账户下,在线查看所有节点信息。

  6. 本地的依旧是使用端口进行访问单个节点

  7. 添加其他Linux节点如提示mount错误信息,可先执行下面的命令

    mount --make-shared  /
  8. 再执行下面的监控容器模板命令

    version: '3'
    services:
      netdata:
        image: netdata/netdata:stable
        container_name: netdata
        pid: host
        network_mode: host
        restart: unless-stopped
        cap_add:
          - SYS_PTRACE
          - SYS_ADMIN
        security_opt:
          - apparmor:unconfined
        volumes:
          - netdataconfig:/etc/netdata
          - netdatalib:/var/lib/netdata
          - netdatacache:/var/cache/netdata
          - /:/host/root:ro,rslave    #提示mount挂载错误的是这一条映射命令
          - /etc/passwd:/host/etc/passwd:ro
          - /etc/group:/host/etc/group:ro
          - /etc/localtime:/etc/localtime:ro
          - /proc:/host/proc:ro
          - /sys:/host/sys:ro
          #- /etc/os-release:/host/etc/os-release:ro    #在群晖NAS上这一条需要注释掉
          - /var/log:/host/var/log:ro
          - /var/run/docker.sock:/var/run/docker.sock:ro
        environment:
          - NETDATA_CLAIM_TOKEN=_58mpbTF7PWR9eQeQ_8XmbL4***************************01I7gav1Xkx4i5v1xKcipPvSTSBjdoBQQnMuAgsZi2qZErMQ
          - NETDATA_CLAIM_URL=https://app.netdata.cloud
          - NETDATA_CLAIM_ROOMS=7d4e************************880a86755
    volumes:
      netdataconfig:
      netdatalib:
      netdatacache:
    
  9. 容器成功启动后即可自动连接到你的Netdata账户,在线查看监控。

项目地址

功德+1(狗子).gif

👇👇👇