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 小时前
Day05-04-持续集成总结
linux·运维·ci/cd
qyhua3 小时前
Linux内网端口转公网端口映射
linux·运维·服务器
j.king5 小时前
开源GTKSystem.Windows.Forms框架让C# winform支持跨平台运行
linux·c#·gtk
Python私教5 小时前
docker部署onlyoffice,开启JWT权限校验Token
运维·docker·容器
stackY、6 小时前
【Linux】:程序地址空间
linux·算法
R语言爱好者7 小时前
如何查看程序是否在运行-Linux
linux
lendq7 小时前
k8s-第八节-Helm
云原生·容器·kubernetes
逆风就重开7 小时前
数据埋点从入门到了解
大数据·linux·前端·数据库·数据仓库
掘根7 小时前
【Linux】压缩命令——gzip,bzip2,xz
大数据·linux·运维
可爱的小小小狼7 小时前
linux的服务管理
linux·运维·服务器