温馨提示×

centos虚拟机如何进行系统监控

小樊
42
2025-12-09 11:57:21
栏目: 云计算

CentOS 虚拟机系统监控实操指南

一 快速排障与内置工具

  • 实时资源与进程:使用 top/htop 查看 CPU、内存、负载、进程;安装 htop 可用命令:sudo yum install htop,运行 htop
  • 磁盘与空间:使用 df -h 检查文件系统使用率;du -sh /path 定位大目录。
  • 内核与系统日志:使用 dmesg 查看内核环形缓冲;查看系统日志 /var/log/messagesjournalctl -xe 获取更详细事件。
  • 虚拟机生命周期与基本信息(宿主机为 KVM 时):virsh list --allvirsh dominfo 可查看状态、内存、CPU 分配等,用于核对监控结果与资源规划。
    以上工具适合在虚拟机内部快速判断“当前是否异常、哪里异常”。

二 宿主机侧 KVM 与 Virtual Machine Manager 监控

  • 图形化查看:在 Virtual Machine Manager 选中虚拟机,进入“虚拟机详细信息 → 性能”,可同时查看 CPU、内存、磁盘 I/O、网络 I/O 等图表,便于与基线对比。
  • 深度性能分析:在宿主机安装 perf,并使用 perf kvm 对虚拟机进行事件记录与报告。为获取符号信息,先从客体复制 /proc/modules/proc/kallsyms 到宿主机(注意直接 scp 会得到空文件,需先在客体用 cat 写入临时文件再拷贝),然后执行记录/报告,定位 vCPU、内核路径 等热点。
  • 虚拟化特性与调优关联:结合 vPMU、vhost-net、SR-IOV、virtio-scsi 多队列、I/O 节流、大页与 KSM、NUMA 等特性进行监控与对照,有助于解释异常指标背后的虚拟化瓶颈。
    该层面适合定位“宿主机与虚拟化层”的资源争用与配置问题。

三 集中监控与可视化方案

  • 轻量开源栈 collectd + InfluxDB + Grafana:在宿主机或客体部署 collectd(启用 collectd-virt 插件通过 libvirt API 采集),将数据写入 InfluxDB,再用 Grafana 做面板展示与告警阈值设置,覆盖 CPU、内存、磁盘、网络 等核心指标。
  • 企业级 Zabbix:在监控服务器安装 Zabbix Server/Web,在 CentOS 客体部署 Zabbix Agent 并配置 Server=监控服务器IP,通过 Web 界面添加主机与服务、查看事件与图形。
  • 日志集中与可视化:使用 ELK(Elasticsearch/Logstash/Kibana)Splunk 收集与分析 /var/log/ 与业务日志,实现故障回溯与趋势分析。
    上述方案适合多台虚拟机的统一监控、告警与可视化运维。

四 监控项与阈值建议

维度 关键指标 常用命令或来源 建议阈值或关注点
CPU 使用率、负载 top/vmstat 1 持续 >80% 或负载接近/超过 vCPU 数 需排查
内存 已用、可用、swap free -m、vmstat 1 swap 持续 >0 可能内存紧张;关注 available
磁盘 使用率、IOPS、延迟 df -h、iostat -x 1 使用率 >80% 预警;await、r_await、w_await 明显升高需看 I/O
网络 带宽、丢包、错包 sar -n DEV 1、ip -s link 带宽接近上限、错包/丢包增长需排查虚拟网卡与物理链路
内核 OOM、异常重启 dmesg、journalctl 出现 OOM-killer、异常重启、内核告警需优先处理

五 快速上手步骤

  • 在虚拟机内建立“基线”:记录日常 CPU/内存/磁盘/网络 的典型值,保存 dmesg 与关键日志片段。
  • 安装本地工具:部署 htop、sysstat(sar/iostat),便于持续采样与回溯。
  • 若运行在 KVM 上:用 Virtual Machine Manager 观察性能页,必要时在宿主机用 perf kvm 做热点定位。
  • 需要统一视图与告警:先部署 collectd + InfluxDB + Grafana 快速上线;规模扩大后迁移到 Zabbix 或加入 ELK/Splunk 做日志分析。

0