ubuntu虚拟机怎么进行系统监控
小樊
41
2025-12-06 13:26:45
Ubuntu 虚拟机系统监控实操指南
一 快速上手的内置与常用工具
- 实时与交互
- 使用 top 查看总体资源占用;安装并使用 htop 获得彩色、可交互的进程列表(支持按键筛选)。
- 使用 glances 一站式查看 CPU、内存、磁盘 I/O、网络 等。
- 使用 nmon 综合查看 CPU、内存、磁盘、网络。
- 历史与统计
- 安装 sysstat 后,使用 sar -u/-d [interval] 查看历史/实时 CPU/磁盘;iostat -c -d 4 查看 CPU/磁盘 I/O;vmstat [interval] 查看 虚拟内存、CPU、I/O;dstat -ta 6 综合展示多维度指标。
- 安装示例
- sudo apt update
- sudo apt install -y htop glances nmon sysstat
- 典型用法
- top
- htop
- vmstat 2
- iostat -c -d 4
- sar -u 1 10
- dstat -ta 6
- glances
- nmon
以上工具适合在虚拟机内部快速定位高占用进程、I/O 瓶颈与负载异常。
二 查看系统与虚拟化信息
- 基础系统信息
- 使用 uname -a 查看 内核版本、架构、主机名。
- 使用 lscpu 查看 CPU 架构、核心/线程、虚拟化支持 等;在虚拟机中通常可见 Hypervisor vendor(如 KVM)。
- 内核与启动日志
- 使用 dmesg | less 查看 内核环缓冲 与启动相关事件,辅助排查设备与驱动问题。
这些命令有助于确认虚拟机是否正常运行在期望的虚拟化平台上,并了解 CPU/架构等关键参数。
三 虚拟机平台层面的监控
- VirtualBox
- 在 VirtualBox Manager 选中虚机,右侧面板可见 系统版本、内存、存储 等基本信息;通过 控制台 直接观察运行状态。
- 命令行可用 VBoxManage showvminfo “VM name” 查看详细配置与参数。
- VMware Workstation / vSphere
- 在 VMware Workstation 的 VM → Summary 查看 CPU、内存、磁盘 等摘要;在 vSphere Client 可查看 资源使用、硬件配置、网络连接 等。
- KVM/QEMU(宿主机侧)
- 使用 virsh list --all 查看虚机列表与状态;virsh dominfo 查看 UUID、状态、CPU 信息;virsh dommemstat 查看 内存使用统计。
平台层监控可帮助确认 资源分配是否合理、是否存在 宿主机瓶颈 或 资源争用。
四 远程监控与持续告警
- 远程连接
- 在虚机内安装 OpenSSH Server:sudo apt-get install -y openssh-server;获取 IP 后通过 SSH 远程登录执行监控命令;也可使用 VNC 进行图形会话。
- 集中监控
- 部署 Zabbix(配合 Zabbix Agent)或 Nagios 对 CPU、内存、磁盘、网络 进行持续采集、图表展示与阈值告警,适合多台虚机的统一运维。
- 简易阈值告警脚本示例(CPU)
- 阈值设为 80%,每分钟检查一次并通过 mailutils/ssmtp 发信:
- 脚本要点:
- THRESHOLD=80
- CURRENT_TIME=$(date ‘+%F %T’)
- CPU_USAGE=$(top -bn1 | grep “Cpu(s)” | sed “s/., ([0-9.])% id.*/\1/” | awk ‘{print 100 - $1}’)
- if (( $(echo “$CPU_USAGE > $THRESHOLD” | bc -l) )); then
echo “$CURRENT_TIME - CPU 使用率:$CPU_USAGE%” | mail -s “CPU 使用率报警” “you@example.com”
fi
- 赋权与定时:chmod +x cpu_monitor.sh;crontab -e 加入:* * * * * /path/cpu_monitor.sh >> /path/cpu_monitor.log 2>&1
该方案便于在 无图形环境 下稳定运行,并在阈值触发时及时通知。
五 监控要点与排障建议
- 优先关注 CPU steal time(在 top/htop 的 %steal 项):持续偏高通常意味着 宿主机资源紧张 或 调度争用,需检查宿主机负载或考虑 调整 vCPU 数量/份额。
- 结合 iostat -x 与 vmstat 判断 I/O 等待 是否成为瓶颈;若 dstat/glances 显示 磁盘吞吐或网络带宽 接近上限,考虑 扩容磁盘/网络 或优化应用 I/O。
- 使用 sar 回溯历史峰值,定位 间歇性抖动;配合 dmesg 检查是否有 内核/驱动报错。
- 在 VirtualBox/VMware 中核对 分配的 CPU/内存/磁盘 是否满足负载;在 KVM 下用 virsh 系列命令核对 当前状态与内存统计,必要时调整 资源配置 或迁移到资源更充足的宿主机。