Overlay配置主要涉及OverlayFS文件系统(存储层)和Overlay网络(容器/虚拟机通信层)两类场景,以下是针对性的监控方案:
OverlayFS是Ubuntu中常用的联合文件系统(用于Docker镜像/容器存储),其监控重点在于文件系统变化和性能指标。
使用inotify-tools工具监控OverlayFS挂载点的文件操作(创建、删除、修改等),适用于排查文件异常或调试应用。
sudo apt-get install inotify-tools
/mnt/overlay):#!/bin/bash
WATCH_DIR="/mnt/overlay"
inotifywait -m -r -e create -e delete -e modify -e moved_to -e moved_from --format '%w%f %e' "$WATCH_DIR" | while read FILE EVENT; do
echo "[$(date '+%Y-%m-%d %H:%M:%S')] File $FILE triggered event: $EVENT"
done
chmod +x monitor_overlayfs.sh
./monitor_overlayfs.sh
该脚本会实时输出OverlayFS挂载点下的文件变动信息。通过以下工具监控OverlayFS的磁盘I/O、内存使用、CPU负载等性能数据:
iostat(需安装sysstat包)查看读写速度、I/O等待时间:sudo apt install sysstat
iostat -x 1 # 每秒刷新一次,关注%util(磁盘利用率)、await(平均等待时间)
vmstat查看虚拟内存、进程、CPU使用情况;dstat替代vmstat+iostat,提供更全面的统计:vmstat 1
dstat -cdngy # 监控CPU、磁盘、网络、内存等
top/htop查看占用OverlayFS的进程的CPU/内存使用情况;iotop监控进程级磁盘I/O。若Overlay用于容器/虚拟机间通信(如Docker Swarm、Kubernetes Overlay网络),监控重点在于网络拓扑、流量状态、连接质量。
docker network ls # 列出所有网络
docker network inspect <network_name> # 查看指定Overlay网络的详细信息(如子网、网关、节点)
ovs-vsctl查看桥接器和端口状态:sudo ovs-vsctl show # 显示OVS桥接器、端口、VXLAN隧道等信息
ip命令查看Overlay网络接口(如docker_gwbridge、veth)的状态:ip addr show # 查看接口IP地址
ip link show # 查看接口状态(UP/DOWN)
nethogs按进程分组查看带宽占用,快速定位高流量进程:sudo apt install nethogs
sudo nethogs <interface> # 如eth0、docker0
iftop查看指定接口的实时流量(如Overlay网络接口):sudo apt install iftop
sudo iftop -i <interface> # 按流量排序显示连接
tcpdump捕获Overlay网络接口的流量,用于深度分析(如排查丢包、延迟):sudo tcpdump -i <interface> -n # -n禁用域名解析,减少输出量
若需要长期监控和可视化,可使用Prometheus+Grafana组合:
node_exporter的磁盘指标)、Overlay网络(如cAdvisor的容器网络指标)的目标。/mnt/overlay)和网络接口名称(如docker_gwbridge)。journalctl查看系统日志)和告警系统(如Prometheus Alertmanager),及时响应异常。inotify监控)影响系统性能。