虚拟机ubuntu如何进行系统监控
导读:虚拟机 Ubuntu 系统监控实操指南 一 快速上手 内置与常用命令 实时进程与资源:top、htop(更直观,支持按键筛选与树形视图)。 综合资源:vmstat(虚拟内存、进程、CPU)、iostat(磁盘 I/O)、dstat(CPU...
虚拟机 Ubuntu 系统监控实操指南
一 快速上手 内置与常用命令
- 实时进程与资源:top、htop(更直观,支持按键筛选与树形视图)。
- 综合资源:vmstat(虚拟内存、进程、CPU)、iostat(磁盘 I/O)、dstat(CPU/内存/磁盘/网络多合一)、nmon(交互式查看 CPU、内存、磁盘、网络)。
- 历史与报表:sar(配合 sysstat 收集/回放系统活动)、glances(跨平台,支持 Web 模式)。
- 安装与常用命令示例:
- 安装常用工具:sudo apt update & & sudo apt install -y htop sysstat dstat nmon glances
- 实时与间隔采样:top;htop;vmstat 2;iostat -x 1;dstat -ta 5;nmon;glances
- 历史查看:sar -u(CPU)、sar -d(磁盘),需先启用 sysstat 的数据收集服务
二 进阶监控 服务与日志
- 服务可用性:使用 systemd 管理并观察服务状态与自恢复
- 查看状态:sudo systemctl status nginx
- 失败自动重启:在单元文件 Service 段设置 Restart=always,然后 sudo systemctl enable --now nginx
- 资源与服务监控:monit
- 安装:sudo apt install -y monit
- 配置示例(/etc/monit/conf.d/myapp.conf):
- check process myapp with pidfile /var/run/myapp.pid
- start program = “/usr/bin/systemctl start myapp”
- stop program = “/usr/bin/systemctl stop myapp”
- if memory > 200 MB for 5 cycles then alert admin@example.com
- 启动:sudo systemctl enable --now monit
- 日志与内核消息:tail -f /var/log/syslog;dmesg | less(内核启动与驱动信息)
三 宿主机侧监控 虚拟机资源视角
- VMware
- Workstation:在 VM → Summary 查看 CPU、内存、磁盘 等概览
- vSphere/vCenter:在 vSphere Client 查看每台虚拟机的 资源使用、硬件配置、网络 等
- VirtualBox
- 图形界面:选中虚机,右侧面板查看 系统版本、内存、存储
- 命令行:VBoxManage showvminfo “VM name”(可见 NumberOfCPUs、Memory size、CPU exec cap 等)
- libvirt/QEMU/KVM(含 Quickemu 场景)
- 列出域:virsh list
- 查看虚机统计:virsh domstats (含 CPU、内存、磁盘、网络等多维指标)
- QEMU Monitor:开启监控后(如 --monitor telnet),telnet localhost 4440,执行 info stats(可加 --json 便于脚本解析)
四 集中监控与告警 可视化与平台化
- 企业级平台:Zabbix(通过 Zabbix Agent 采集 Ubuntu 指标,支持图表、告警、自动发现)
- 时序与可视化:Prometheus + Grafana
- Prometheus 负责采集与存储时间序列数据,Grafana 负责仪表板与告警展示
- 适用多虚机/多主机的统一监控与容量规划
- 轻量/远程:Glances 支持 Web 模式,便于临时或轻量化集中查看
- 启动示例:glances -w(默认端口 61208)
五 告警脚本与阈值示例
- CPU 阈值告警脚本(阈值 80%,每分钟检查一次)
- 脚本 cpu_monitor.sh:
- #!/bin/bash THRESHOLD=80 EMAILS=“admin@example.com” NOW=$(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 “$NOW - CPU 使用率:$CPU_USAGE%” | mail -s “CPU 使用率报警” $EMAILS fi
- 赋权与定时:chmod +x cpu_monitor.sh;crontab -e 加入
-
-
-
-
-
- /path/cpu_monitor.sh > > /path/cpu_monitor.log 2> & 1
-
-
-
-
-
- 脚本 cpu_monitor.sh:
- 磁盘 I/O 关注要点(iostat)
- iostat -x 1 观察 %util(设备利用率,接近 100% 表示饱和)与 await(I/O 等待时间,过高表示瓶颈)
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 虚拟机ubuntu如何进行系统监控
本文地址: https://pptw.com/jishu/759763.html
