POST

Netdata:装上去就有的性能监控,比看那一屏数字直观

上千个指标自动采集,曲线是每秒刷新的。卡顿的时候打开它,能立刻看出是 CPU、内存、磁盘 IO 还是网络的问题。

系统变慢的时候,你最想知道的是:到底哪个东西在拖后腿。

飞牛自带的状态页给的是粗粒度数字。Netdata 给的是每秒刷新的一千多条曲线——CPU 每个核心、磁盘每个分区、每个容器的 IO,全都有。

装

services:
  netdata:
    image: netdata/netdata:latest
    container_name: netdata
    ports: ["19999:19999"]
    volumes:
      - ./netdata/config:/etc/netdata
      - ./netdata/lib:/var/lib/netdata
      - ./netdata/cache:/var/cache/netdata
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      - TZ=Asia/Shanghai
    restart: unless-stopped
    cap_add: ["SYS_PTRACE"]
    security_opt: ["apparmor:unconfined"]

打开 http://NAS地址:19999,没有登录页,直接就是图表。

挂载 docker.sock 之后,它能看到每个容器的 CPU 和内存占用——这一点比 docker stats 直观得多。

它默认就能看什么

装完不用配置,直接有:

  • CPU:总体、每个核心、每种状态(user/system/iowait)
  • 内存:used/cached/buffers/swap
  • 磁盘:读写速率、IOPS、延迟、每个分区
  • 网络:每张网卡的收发速率、错误包
  • 进程:谁在吃 CPU、谁在吃内存
  • 容器:每个容器的资源曲线

iowait 那条线特别值得看:卡顿的时候如果它飙高,说明磁盘在拖,换 SSD 或者查是哪个进程在读写。

三个用法

一、卡的时候抓现场

系统一卡就打开 Netdata,看哪条曲线先动。CPU 满 → 算力不够;iowait 高 → 磁盘瓶颈;内存 swap 上去 → 内存不足。

二、找"偷偷跑"的容器

容器页按 CPU 排序,能看出哪个容器在后台狂转。跑完的索引任务、卡住的转码,一目了然。

三、看历史

它的数据存在 /var/lib/netdata,默认保留一段时间。想回看"昨天下午三点为什么卡",切时间范围就行。

资源占用

中等:默认约 200–300 MB 内存,CPU 占用不高但一直在采集,所以不会有"安静"的时刻。

在低配机器上可以关掉不需要的插件(设置里能禁用某些 collector),能省不少。

它和 Nezha 的区别

  • Nezha:多台机器的总览,轻量,适合"看状态";
  • Netdata:单台机器的深挖,重,适合"查问题"。

两个可以一起装。Nezha 发现某台机器异常,再打开那台的 Netdata 深挖。

会踩的坑

页面打不开 19999 端口没映射,或者容器在初始化。第一次启动要几十秒。

看不到容器 socket 没挂,或者挂成了只读之外的模式(:ro 是对的,别去掉)。

内存一直涨 默认的数据库(dbengine)预分配磁盘和内存。设置里调小 dbengine 的磁盘配额。

图表全是断的 采集间隔太大或者容器重启。检查日志。

别开公网 它默认没有认证,任何能访问到的人都能看到你机器的全部指标。内网用,或者套反代加认证。

它适合谁

  • 系统经常卡、找不到原因的;
  • 想看清容器资源占用的;
  • 喜欢看曲线、愿意花时间读图的。

不适合:只需要"活着没"这种粗粒度信息的(Uptime Kuma 足够);内存小于 2 GB 的机器。

最后

Netdata 属于那种"平时想不起来,出问题时救你一次"的工具。

装一次,占几百兆内存。真卡的时候,你会庆幸它在。

有问题留言。

👁 - 次浏览

留言

← 返回首页