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
相关推荐
苍煜1 小时前
Docker容器网络详解+端口映射原理(系列第二篇:实战核心)
网络·docker·容器
liuhuizuikeai2 小时前
可视化门禁---Linux/Qt+SqLite篇
linux·运维·qt
初願致夕霞2 小时前
基于系统调用的Linux网络编程——UDP与TCP
linux·网络·c++·tcp/ip·udp
charlie1145141915 小时前
嵌入式Linux驱动开发——新 API 字符设备驱动完整教程 - 从设备结构体到应用测试
linux·运维·驱动开发
gwjcloud5 小时前
Kubernetes从入门到精通(高级篇)04
云原生·容器·kubernetes
消失的旧时光-19436 小时前
C语言对象模型系列(四)《Linux 内核里的 container_of 到底是什么黑魔法?》—— 一篇讲透 Linux 内核的“对象模型”核心技巧
linux·c语言·算法
SWAGGY..6 小时前
Linux系统编程:(二)基础指令详解
linux·运维·服务器
kdxiaojie6 小时前
U-Boot分析【学习笔记】(3)
linux·笔记·学习
烛衔溟6 小时前
TypeScript 接口继承与混合类型
linux·ubuntu·typescript
张文君7 小时前
上古世纪服务端编译安装AAEmu docker编译安装
运维·docker·容器