Debian 上监控 Informix 的实用方案
一 监控分层与总体思路
- 分层覆盖:系统层(CPU、内存、磁盘 I/O、网络)、数据库层(会话、锁、缓冲池、日志)、日志层(告警与错误)、可视化与告警层(Grafana、Zabbix、Nagios)。
- 组合工具:优先使用 Informix 自带工具(如 onstat、onmode)获取数据库内部状态,配合 Linux 常用工具(如 top、vmstat、iostat、sar、netstat)观察运行环境,再用 Prometheus + Grafana 或 Zabbix、Nagios 做可视化与告警。
二 快速上手的命令行检查清单
- Informix 内部状态
- 使用 onstat 查看数据库总体与线程/会话状态(如 onstat -g ses、onstat -g sql、onstat -d 等),关注会话数、锁等待、I/O 与缓存命中。
- 使用 onmode 检查/切换运行模式,辅助定位如日志切换、内存管理等状态变化。
- 系统与存储
- 使用 top 观察占用最高的进程(通常是 oninit),配合 vmstat 1 查看 CPU/内存/换页,iostat -x 1 检查磁盘吞吐与响应,sar -u 1 记录 CPU 历史,netstat -an 查看连接与端口。
- 网络流量与进程带宽
- 使用 iftop 按连接/IP 观察带宽占用,使用 nethogs 按进程定位占用带宽的会话或进程(便于关联 oninit 与客户端)。
三 可视化与告警平台搭建
- Prometheus + Grafana
- 在 Debian 上安装 Prometheus 与 Grafana,通过 node_exporter 采集主机指标,Grafana 展示面板;如需数据库层指标,可结合 onstat 输出或相应导出器进行采集与可视化。
- Zabbix
- 部署 Zabbix Server/Agent,在 Agent 端配置用户参数执行 onstat 命令或脚本采集关键指标,设置触发器与告警媒介,实现主机与数据库一体化监控。
- Nagios
- 通过 NRPE 或 SSH 执行 onstat 与系统命令,定义服务检查与阈值,形成告警与可用性监控。
四 关键指标与阈值示例
| 维度 |
关键指标 |
常用命令/来源 |
建议动作 |
| CPU |
系统 CPU 使用率、运行队列 |
vmstat 1、sar -u 1 |
持续高占用时排查会话与 SQL、优化负载或扩容 |
| 内存 |
可用内存、换页/交换 |
free -m、vmstat 1 |
减少换页、优化缓冲池与排序区、检查连接泄漏 |
| 磁盘 I/O |
读写吞吐、IOPS、await、svctm |
iostat -x 1 |
识别热点磁盘/表空间,优化布局与 I/O 调度 |
| 会话与锁 |
会话数、锁等待、长事务 |
onstat -g ses、onstat -g sql |
终止阻塞会话、优化事务与隔离级别 |
| 日志与检查点 |
日志切换频率、检查点时长 |
onstat -l、数据库日志 |
调整日志大小/数量、优化检查点参数 |
| 网络 |
连接数、带宽占用 |
netstat -an、iftop、nethogs |
发现异常连接与突发流量,定位来源主机/进程 |
| 备份 |
备份成功率与耗时 |
onbar 日志 |
建立备份健康面板与告警,定期校验可恢复性 |
| 以上指标与命令组合可覆盖日常巡检与问题定位的核心面。 |
|
|
|
五 自动化巡检与优化建议
- 巡检脚本
- 用 shell/python 定期执行 onstat、vmstat、iostat、sar、netstat,落盘到日志或推送至 Prometheus Pushgateway/Zabbix,形成趋势与阈值告警。
- 日志与审计
- 定期检查 Informix 日志文件 与告警,结合监控平台做事件关联与根因分析。
- 内存与内核
- 结合 free、vmstat 观察内存压力;必要时调整 vm.swappiness、vm.dirty_ratio、vm.dirty_background_ratio,并评估 透明大页(THP) 对数据库工作负载的影响(测试环境验证后再上线)。
- 查询与索引
- 对慢 SQL 使用 set explain on 获取执行计划,配合索引与统计信息维护,降低锁等待与 I/O。