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
相关推荐
Youkiup3 分钟前
【linux 常用命令】
linux·运维·服务器
qq_297504617 分钟前
【解决】Linux更新系统内核后Nvidia-smi has failed...
linux·运维·服务器
weixin_4373982120 分钟前
Linux扩展——shell编程
linux·运维·服务器·bash
小燚~22 分钟前
ubuntu开机进入initramfs状态
linux·运维·ubuntu
年薪丰厚29 分钟前
如何在K8S集群中查看和操作Pod内的文件?
docker·云原生·容器·kubernetes·k8s·container
小林熬夜学编程29 分钟前
【Linux网络编程】第十四弹---构建功能丰富的HTTP服务器:从状态码处理到服务函数扩展
linux·运维·服务器·c语言·网络·c++·http
zhangj112530 分钟前
K8S Ingress 服务配置步骤说明
云原生·容器·kubernetes
岁月变迁呀31 分钟前
kubeadm搭建k8s集群
云原生·容器·kubernetes
墨水\\31 分钟前
二进制部署k8s
云原生·容器·kubernetes
Source、33 分钟前
k8s-metrics-server
云原生·容器·kubernetes