Docker 安装 Linux 系统可视化监控 Netdata

docker 安装 netdata

  • 前提准备
  • [Docker 两种方式部署 Netdata](#Docker 两种方式部署 Netdata)
    • [1、使用 docker run 命令运行 netdata 服务](#1、使用 docker run 命令运行 netdata 服务)
    • [2、使用 docker compose 运行 netdata 服务](#2、使用 docker compose 运行 netdata 服务)
  • [Netdata 服务可视化界面](#Netdata 服务可视化界面)
  • [Netdata 汉化处理](#Netdata 汉化处理)

前提准备

说明:此处使用 windows11 安装的 docker desktop & wsl2/apline 环境配置 netdata 服务。

Windows 11 安装 Docker Desktop ,请参考:https://mp.weixin.qq.com/s/vD8JDGM4ardqmcL9W0cp8Q

  • 拉取 netdata 镜像
bash 复制代码
docker pull netdata/netdata

此处为了方便后面部署速度快点,先拉取镜像到本地环境。

  • 创建 volume 挂载目录
bash 复制代码
# 在 E 盘下面创建 docker-volumes 文件夹
cd E:\docker-volumes 
# 创建 netdata 的挂载目录
mkdir -p /data/netdata/{netdatacache,netdatalib}

目录结构信息如下:

bash 复制代码
PS E:\docker-volumes> ls

    目录: E:\docker-volumes

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----          2024/4/5     22:25                data
-a----          2024/4/5     22:22            804 netdata-compose.yaml

Docker 两种方式部署 Netdata

1、使用 docker run 命令运行 netdata 服务

bash 复制代码
docker run -d --name=netdata \
  --container_name=netdata \
  --hostname=netdata \
  -p 19999:19999 \
  -v /data/netdata/netdatalib:/var/lib/netdata \
  -v /data/netdata/netdatacache:/var/cache/netdata \
  -v /etc/passwd:/host/etc/passwd:ro \
  -v /etc/group:/host/etc/group:ro \
  -v /proc:/host/proc:ro \
  -v /sys:/host/sys:ro \
  -v /etc/os-release:/host/etc/os-release:ro \
  --restart always \
  --cap-add SYS_PTRACE \
  --security-opt apparmor=unconfined \
  netdata/netdata

2、使用 docker compose 运行 netdata 服务

  • netdata-compose.yaml 文件编写如下:
yaml 复制代码
version: '3'
services:
  netdata:
    image: netdata/netdata
    container_name: netdata
    hostname: netdata
    restart: unless-stopped
    cap_add:
      - SYS_PTRACE
      - SYS_ADMIN
    security_opt:
      - apparmor:unconfined
    ports:
      - 19999:19999
    volumes:
      - ./data/netdata/netdataconfig/netdata:/etc/netdata
      - ./data/netdata/netdatalib:/var/lib/netdata
      - netdatacache:/var/cache/netdata
      - /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
      - /var/log:/host/var/log:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro

volumes:
  netdatalib:
  netdatacache:
  • 执行 docker compose 命令启动 netdata 服务:
bash 复制代码
PS E:\docker-volumes> docker compose -f .\netdata-compose.yaml up -d
[+] Running 1/2
 - Network docker-volumes_default  Created                                                                         0.3s
 ✔ Container netdata               Started                                                                         0.3s
PS E:\docker-volumes> docker compose ls
NAME                STATUS              CONFIG FILES
docker-volumes      running(1)          E:\docker-volumes\netdata-compose.yaml
  • docker desktop 运行情况
  • netdata 服务宿主资源监控

Netdata 服务可视化界面

  • 浏览器查看 netdata 可视化监控页面
bash 复制代码
http://localhost:19999/
  • System Overview
  • Memory
  • Disks
  • Mount Points
  • IP Virtual Server
  • Networking Stack
  • Users

Netdata 汉化处理

  • 下载汉化文件,我这直接 git 拉取
bash 复制代码
git clone https://gitee.com/DXLinux/Netdata-chinese-patch.git

[root@jeff netdata]# ll Netdata-chinese-patch/
total 836
-rwxr-xr-x 1 root root 125124 Aug  7 16:24 dashboard_info.js
-rwxr-xr-x 1 root root 379728 Aug  7 16:24 dashboard.js
-rwxr-xr-x 1 root root 134097 Aug  7 16:24 index.html
-rw-r--r-- 1 root root    720 Aug  7 16:24 install-Netdata-chinese-patch.sh
-rwxr-xr-x 1 root root  20223 Aug  7 16:24 install-Netdata-chinese.sh
-rwxr-xr-x 1 root root 182742 Aug  7 16:24 main.js
-rwxr-xr-x 1 root root   1503 Aug  7 16:24 README.md
  • 修改 dashboard.js 文件
bash 复制代码
[root@jeff Netdata-chinese-patch]# vi dashboard.js
  • 快速搜索定位 /NETDATA.jQuery,将 jquery 版本修改成 jquery-3.6.0.min.js
bash 复制代码
NETDATA.jQuery = NETDATA.serverStatic + 'lib/jquery-3.6.0.min.js';
  • 进入 netdata 容器
bash 复制代码
docker exec -it netdata bash
  • 切换到 web 目录下
bash 复制代码
cd /usr/share/netdata/web
  • dashboard_info.js、dashboard.js、index.html、main.js 这几个文件删除,退出容器
bash 复制代码
rm -rf dashboard_info.js
rm -rf dashboard.js
rm -rf index.html
rm -rf main.js
  • 再将汉化的 4 个文件拷贝进容器
bash 复制代码
docker cp dashboard_info.js ./data/netdata/web:/usr/share/netdata/web
docker cp dashboard.js ./data/netdata/web:/usr/share/netdata/web
docker cp index.html ./data/netdata/web:/usr/share/netdata/web
docker cp main.js ./data/netdata/web:/usr/share/netdata/web
  • 重启 netdata 容器
bash 复制代码
docker restart netdata

参考文章:

  • 官方文档,https://learn.netdata.cloud/docs/netdata-agent/installation/docker
  • Linux 安装系统可视化监控工具 Netdatahttps://blog.csdn.net/ChaITSimpleLove/article/details/137400396
相关推荐
程序员老赵2 小时前
Docker 部署 Redmine:老牌开源项目管理部署实测记录
docker·开源·团队管理
用户120487221612 小时前
Linux驱动编译与加载
linux·嵌入式
程序员老赵4 小时前
服务器文件不想 SFTP 上传?Docker 跑个 File Browser,浏览器就能管理
服务器·docker·开源
用户805533698038 小时前
Input 子系统架构:Core、Handler、Driver 三层是怎么协作的
linux·嵌入式
用户805533698038 小时前
RK-Forge外设系列开篇 - 把板子从「能启动」变成「能用」:Ethernet/SPI/MMC 三个纯接线外设
linux·github·嵌入式
七歌杜金房20 小时前
我终于又有了自己的 Linux 电脑
linux·debian·mac
tntxia2 天前
linux curl命令详解_curl详解
linux
扛枪的书生2 天前
Linux 网络管理器用法速查
linux
顺风尿一寸2 天前
Java Socket 内核之旅:从 SocketChannel.read() 到 tcp_recvmsg 与 epoll 的完整调用链路
linux
lichenyang4532 天前
Docker 学习笔记(五):Docker Compose,用一个 YAML 启动前端、后端和 MongoDB
docker