虚拟机多了,靠手动查问题真扛不住
公司上云之后,虚拟机越开越多,一开始三五台还能凑合,现在几十台上百台,再靠登录每台机器看状态,眼睛都快瞎了。前两天半夜收到告警,一台关键业务虚拟机响应巨慢,登录进去发现 CPU 跑满,但根本不知道是哪个进程在作妖。这种事不是一次两次了,必须找个靠谱的监控工具来管。
Zabbix:老牌硬核选手,功能全但得会折腾
Zabbix 玩运维的人基本都听过,开源、免费、功能强,支持对虚拟机做全方位监控——CPU、内存、磁盘 IO、网络流量,甚至还能自定义脚本监控应用层状态。
比如想监控某台虚拟机上的 MySQL 是否存活,可以写个简单的脚本:
#!/bin/bash
mysqladmin -u root -pXXXX ping > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo 1
else
echo 0
fi把这个脚本注册成 Zabbix 的监控项,就能实时看到数据库状态了。不过 Zabbix 配置起来有点门槛,模板、主机群组、触发器这些概念新手容易懵,建议先在测试环境练手。
Prometheus + Grafana:现代监控组合,可视化贼漂亮
这几年 Prometheus 在云原生圈火得不行,搭配 Grafana 做图表展示,简直是颜值担当。我们部门去年换上了这套方案,现在打开大屏,所有虚拟机的资源使用情况一目了然。
Prometheus 通过 pull 模式从被监控节点拉数据,虚拟机里装个 node_exporter 就行。配置文件长这样:
scrape_configs:
- job_name: 'virtual-machines'
static_configs:
- targets: ['192.168.1.10:9100', '192.168.1.11:9100']Grafana 接入 Prometheus 当数据源后,随便选个现成的 dashboard 模板,ID 输入 1860,一套完整的主机监控面板就出来了,CPU 使用率、内存趋势、磁盘读写清清楚楚。
Datadog:花钱买省心,适合不想自己搭的团队
要是公司预算够,又不想花时间自己维护监控系统,Datadog 是个不错的选择。它支持自动发现虚拟机实例,AWS、Azure、阿里云都能一键接入,安装个 agent,几分钟就能看到数据。
最爽的是它的 APM 功能,不仅能看系统资源,还能追踪具体请求在虚拟机里的耗时,定位慢接口特别方便。虽然按主机收费有点小贵,但省下的运维时间算下来也值了。
别忘了轻量级方案:Netdata
有时候你只是想快速看看某台虚拟机现在啥状态,没必要上整套体系。Netdata 就是个轻量级实时监控工具,安装完直接浏览器访问端口,页面上全是动态刷新的图表,连 GPU 使用率都给你画出来。
命令也就一行:
bash <(curl -Ss https://my-netdata.io/kickstart.sh)适合临时排查、演示或者小团队用。缺点是历史数据存得不多,长期分析还得靠前面那几个。
选工具其实没标准答案,人少事多就用 Datadog 图省事,爱折腾又有技术积累的搞 Prometheus 或 Zabbix,临时看看用 Netdata 最快。关键是早点把监控搭起来,别等出事了才后悔没早弄。