前言
相信很多人都有 VPS、NAS 或者是迷你主机,日常在上面跑一些 Docker 容器、数据库或者是脚本。这类机器一般配置都比较低,所以自然而然的会格外关心机器的 CPU 使用率、内存占用率这些指标。
一直以来我都是登陆到机器上然后使用 free -h 或者 htop 之类的命令进行查看,比较麻烦。
今天找到一个叫 NetData 的很好用监控工具,一个页面展示 CPU、内存、磁盘、网络等实时指标,页面也很漂亮,支持 Docker 部署。
基于 Docker 部署
为了节省内存,我使用的是 Podman,不过 Docker 也是一样,将 podman 替换成 docker 即可。
拉取镜像:
1
| podman pull netdata/netdata:v2.10.2
|
运行容器:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| podman run -d --name=netdata \ --privileged \ --pid=host \ --network=host \ -v netdataconfig:/etc/netdata \ -v netdatalib:/var/lib/netdata \ -v netdatacache:/var/cache/netdata \ -v /:/host/root:ro,rslave \ -v /etc/passwd:/host/etc/passwd:ro \ -v /etc/group:/host/etc/group:ro \ -v /etc/localtime:/etc/localtime:ro \ -v /proc:/host/proc:ro \ -v /sys:/host/sys:ro \ -v /etc/os-release:/host/etc/os-release:ro \ -v /var/log:/host/var/log:ro \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /run/dbus:/run/dbus:ro \ --restart unless-stopped \ --cap-add SYS_PTRACE \ --cap-add SYS_ADMIN \ --security-opt apparmor=unconfined \ netdata/netdata:v2.10.2
|
因为 podman 默认是 rootless 运行,如果以 rootless 运行的话,很多数据 netdata 采集不到,所以使用了 –privileged 参数。
这样一个轻量级、高颜值的实时系统监控就部署好了。
效果
默认使用 19999 端口进行访问,如果有防火墙的话,记得开放 19999 端口,刷新一下防火墙。
效果图如下:

部署前后我对比了一下内存占用,大概增加了 100M 的内存占用,内存占用还是非常低的。