数据库监控工具太多,挑花眼,到底哪个真能救火。
最近帮公司换监控系统,跑了十几套开源工具,装了卸、卸了装。不是界面卡,就是得配Java环境,要不就是文档写得跟天书一样。最后发现,好多名字听着高大上,其实根本不是干监控的活儿——比如那个RedisPlus,就是个连Redis的图形界面,连个CPU使用率都报不出来。
真正能查慢SQL、看内存爆没爆、出事能回溯的,其实不到一半。我试了lepus,三分钟搭好,MySQL的连接数、慢查询TOP10直接刷出来;hertzbeat更狠,改个YAML就能抓Redis的client_longest_output_list,我们上次定位大key就是靠它。但光“看得见”真没用。上周生产库卡住,告警响了八遍,可没人知道是哪个SQL在拖后台,也没人敢杀。
Archery救了命。它不光把执行计划画出来,还能比对前后两次索引变化,自动标红缺失索引的字段。我们DBA看着那条红色的`type: ALL`,直接加了联合索引,5秒变50毫秒。但Archery自己不采集数据,得靠lepus或hertzbeat喂指标。它们俩才是一对——一个盯身体,一个看病根。
phoenix查Oracle表空间最稳。它不走AWR,直接连JDBC跑`dba_tablespaces`,每5分钟捞一次USED_SPACE,涨太快就发钉钉。我们试过MyOra做补充,界面好看,但查TEMP表空间时会卡住,官方Issue里说这是JDBC驱动兼容问题,一直没修。
gododb是唯一让我敢给运维开库权限的工具。它不装Agent,全靠SSH隧道转发连接,每个操作都留完整日志,谁什么时候删了表、用了xp_cmdshell,时间戳+IP+语句全记着。金融客户审计时翻了三天,没挑出毛病。不过得开22端口,安全组那边卡了两天才放行。
erd-online有点意思。你把建表语句粘进去,它真能吐出ER图,还能用Qwen-Max解释“为什么这个外键没加索引”。不是AI耍帅,是它把DDL解析成AST树再分析的,GitHub上commit记录清清楚楚。不过它不监控,纯设计+审核环节用。
dbsyncer和Porter,我一开始也当监控工具测,后来发现错了。它俩根本不看性能,只管数据同步有没有丢、断了怎么续、跨库字段类型对不对。Porter连ZK都集成好了,但你要的是告警,它给的是同步任务成功率报表——压根不是一回事。
wgcloud部署最省心。Go写的,扔服务器上跑一个二进制,50MB内存,连数据库都不用,自带网页。适合边缘机房那几台老MySQL,DBA没空管,运维自己就能看状态。但它的SQL分析是弱项,只能看连接数和线程状态。
datagear看着像BI工具,其实是元数据管家。它要把你的库结构存进自己的MySQL里,才能做字段血缘。我们装完才发现,它自己那个MySQL实例三天崩一次——文档里轻描淡写写“建议用8C16G”,实际4C8G跑不动。
选型真不是比功能多,是比谁犯错少。lepus + Archery组合,我们三个人的小团队,两周就跑通全流程:开发提SQL→Archery自动审→DBA点批准→lepus盯上线后性能波动。中间出过一次审批漏掉,但lepus立刻报出QPS暴跌,追回去一看,是没加索引的LIKE查询,直接回滚。

x-RdbmsSyncTool我们拿去试了达梦,能连,能同步,DDL转换也对。国产库文档少,它README里连达梦的SYSTEM用户授权都写了两行命令,比某些商业产品还实在。
最后发现,工具再好,也救不了乱写的SQL和乱开的权限。有次告警响,查出来是个Python脚本每秒连一次库,连了三个月没人管。不是监控没发现,是大家习惯了“告警=点掉”。
装完第14个工具那天,我把所有配置备份删了,只留lepus和Archery。别的都卸载干净。
没那么多花招。