Ubuntu 上监控 Informix 的实用方案
一 监控体系总览
- 建议采用“主机层 + 数据库层 + 可视化告警层”三层架构:
- 主机层:用系统工具持续采集 CPU、内存、磁盘 I/O、网络 等基础指标。
- 数据库层:用 onstat 系列命令与 IBM 的企业监控工具查看 会话、锁、SQL、日志、缓冲池、chunk 等关键状态。
- 可视化告警层:用 Prometheus + Grafana 做长期存储与图表展示,用 Nagios 做阈值告警与服务可用性检查。
二 主机与网络监控
- 系统资源
- CPU/内存/IO/网络概览:dstat -cdngym 1
- 磁盘 I/O 详细:iostat -x 1
- 虚拟内存与系统整体:vmstat 1
- 历史与回溯:sar -u 1(需先启用 sysstat,如 sudo apt install sysstat && sudo systemctl enable --now sysstat)
- 网络
- 按连接带宽:iftop
- 按进程带宽:nethogs
- 以上工具在 Ubuntu 可直接通过 apt 安装,适合作为 Informix 运行环境的底层观测基线。
三 Informix 内置监控命令
| 命令 |
作用要点 |
| onstat - |
查看实例概要:版本、启动时间、连接数、缓冲池使用等 |
| onstat -m |
查看 $INFORMIXDIR/tmp/online.log 最近 20 条消息(需 informix 用户) |
| onstat -d |
查看 dbspace/chunk 状态与空间使用,关注是否 full/offline |
| onstat -g seg / onstat -g mem |
监控共享内存段与分配情况 |
| onstat -g ses / onstat -g ses |
会话级信息:读写、锁、最后一条 SQL、临时表、长事务等 |
| onstat -g sql / onstat -g sql |
SQL 执行统计与诊断 |
| onstat -u |
用户线索与 RSAM 控制块 |
| onstat -g tpf |
会话逻辑日志占用(辅助定位长事务) |
| onstat -p |
资源使用与潜在瓶颈(如会话、锁、I/O 等待) |
| onmode -z |
终止问题会话(优先于 kill,避免直接 kill) |
| onmode -F |
释放未使用的共享内存段 |
- 日志与空间
- 消息日志默认路径:$INFORMIXDIR/tmp/online.log;可用 onstat -m 快速查看,必要时清空(谨慎操作,确保有备份与维护窗口)。
四 可视化与告警搭建
- Prometheus + Grafana
- 安装与启动
- sudo apt update
- sudo apt install prometheus grafana
- sudo systemctl start prometheus && sudo systemctl enable prometheus
- sudo systemctl start grafana-server && sudo systemctl enable grafana-server
- 访问 http://<服务器IP>:3000,默认账号 admin/admin
- 采集建议
- 主机层:部署 node_exporter 采集 CPU、内存、磁盘、网络等指标
- Informix 层:部署 mysqld_exporter 不适用;可用 Telegraf 的 exec 插件 定期执行 onstat 并输出 Prometheus 指标格式,或编写脚本将关键数值推送到 Pushgateway
- Nagios
- 适合做 服务存活探测 与 阈值告警(如磁盘使用率、会话数、长事务、日志错误关键字)
- 安装后通过 Web 界面配置主机与服务检查,结合邮件/企业微信/钉钉等通知渠道
五 落地检查清单与告警阈值示例
- 日常巡检
- 查看实例健康与负载:onstat -;资源与瓶颈:onstat -p
- 检查日志异常:onstat -m;空间与可用性:onstat -d
- 会话与 SQL:是否存在 长事务/锁等待/异常 SQL(onstat -g ses/-g sql)
- 主机层:iostat 持续高 %util、vmstat si/so 不为 0、dstat 持续高负载时联动排查
- 建议阈值(按业务调整)
- 磁盘使用率 > 80% 告警,> 90% 严重
- 会话数接近 最大连接数 的 80% 告警
- 单条 SQL 执行时间 > 30s 或会话逻辑日志占用异常增长
- onstat -p 中 长事务/锁等待 指标异常攀升
- 安全与维护
- 执行 onmode -z 前尽量与应用方确认,避免直接 kill 进程
- 清理或轮转 online.log 前先备份,并在维护窗口操作