centos下sqlserver监控工具
导读:CentOS 下 SQL Server 监控工具与落地方案 一 工具分类与适用场景 数据库内置能力:使用 DMVs(动态管理视图)、Extended Events、Query Store 获取查询性能、等待统计、资源使用与历史执行数据,适...
CentOS 下 SQL Server 监控工具与落地方案
一 工具分类与适用场景
- 数据库内置能力:使用 DMVs(动态管理视图)、Extended Events、Query Store 获取查询性能、等待统计、资源使用与历史执行数据,适合定位慢查询与瓶颈根因。
- 命令行与系统工具:在 CentOS 上用 sqlcmd 执行健康检查,配合 top/htop、vmstat、iostat、sar、nmon、dstat、glances 观察 CPU、内存、磁盘 I/O、网络 等系统资源,适合日常巡检与临时排障。
- 开源监控栈:以 Prometheus + Grafana 为核心,配合 prometheus-mssql-exporter 抓取 SQL Server 指标,Grafana 负责可视化与告警面板,适合长期可观测性与容量规划。
- 企业级平台:Zabbix、Nagios 等做主机/进程/端口/服务可用性监控,结合脚本或插件采集数据库关键指标,适合统一监控与告警治理。
- 商业与专业工具:SolarWinds DPA、Redgate SQL Monitor 面向 SQL Server 的深度性能分析与可视化,适合需要更强诊断与报表能力的团队。
二 快速上手方案
- 系统资源巡检
- 实时资源:运行 top/htop 查看 mssql 进程资源占用;用 vmstat 1、iostat -x 1、sar -n DEV 1、nmon 观察 CPU、内存、磁盘 IO、网络吞吐。
- 快速定位 I/O 与负载:用 iostat 检查磁盘 await、svctm、util;用 nmon 综合查看 CPU/内存/磁盘/网络面板。
- 数据库内置快速检查
- 连接与健康:
- sqlcmd -S your_server -U sa -P ‘YourPassword’ -Q “SELECT @@SERVERNAME, @@VERSION, SERVERPROPERTY(‘ProductVersion’)”
- 日志空间:
- sqlcmd -S your_server -U sa -P ‘YourPassword’ -Q “EXEC sp_spaceused; EXEC DBCC SQLPERF(LOGSPACE); ”
- 活跃会话与等待:
- sqlcmd -S your_server -U sa -P ‘YourPassword’ -Q “SELECT session_id, request_id, task_alloc, task_dealloc, hostname, program_name, loginame, text FROM sys.dm_db_session_space_usage s JOIN sys.sysprocesses p ON s.session_id = p.spid CROSS APPLY sys.dm_exec_sql_text(p.sql_handle) ORDER BY task_alloc DESC; ”
- 长期性能数据:启用 Query Store 并查询 sys.query_store_runtime_stats、sys.query_store_plan 分析最耗资源与回归查询。
- 连接与健康:
三 开源监控栈 Prometheus Grafana 部署要点
- 组件与数据流
- prometheus-mssql-exporter 连接 SQL Server,暴露 /metrics;Prometheus 定时抓取;Grafana 配置 Prometheus 数据源并导入 SQL Server 仪表盘。
- 部署步骤(示例)
- 部署 exporter(示例以容器运行,注意 SA 口令与端口映射):
- docker run -d --name mssql-exporter -p 9399:9399
-e DATA_SOURCE_NAME=“sqlserver://sa:YourPassword@your_server:1433?encrypt=true& trustServerCertificate=true”
ghcr.io/awaragi/prometheus-mssql-exporter
- docker run -d --name mssql-exporter -p 9399:9399
- 配置 Prometheus(prometheus.yml 片段):
- scrape_configs:
- job_name: ‘sqlserver’
static_configs:- targets: [‘your_exporter_host:9399’]
- job_name: ‘sqlserver’
- scrape_configs:
- 启动 Prometheus 与 Grafana,Grafana 添加 Prometheus 数据源并导入社区 SQL Server 仪表盘(如 ID 常见为 2205 等),按需调整阈值与告警规则。
- 部署 exporter(示例以容器运行,注意 SA 口令与端口映射):
- 可视化与告警
- 常用面板:连接数、Batch 请求/秒、CPU/内存占用、按数据库/语句的 平均/最大 Duration、逻辑读/写、错误,以及 等待类型 Top N 等。
四 企业级与商业工具
- Zabbix:通过 ODBC 或自定义脚本采集 SQL Server 指标,支持 自动发现、阈值告警、图形与拓扑,便于与现有 ITSM/告警平台联动。
- Nagios:使用插件(如 check_sqlserver)监控实例可用性、连接数、作业状态与关键性能阈值,适合做 SLA 与可用性 监控。
- SolarWinds DPA:跨平台 SQL Server 性能分析,提供 查询调优、阻塞/死锁分析、历史趋势与报表。
- Redgate SQL Monitor:面向 SQL Server 的实时监控与诊断,具备 查询性能、等待统计、作业与备份 可视化能力。
五 选型建议与注意事项
- 组合建议
- 日常运维:系统工具 + sqlcmd/DMVs/Query Store 快速定位。
- 长期可观测:优先 Prometheus + Grafana + mssql-exporter,形成指标、面板、告警闭环。
- 统一监控与告警:在 Zabbix/Nagios 中集中纳管主机与数据库可用性,减少运维分散度。
- 深度诊断与报表:引入 DPA/SQL Monitor 做瓶颈定位与性能回溯。
- 安全与合规
- 使用 最小权限 的监控账号;开启 TLS 加密 与证书校验;避免明文口令;限制 Exporter/监控账号 的 IP 白名单与端口访问。
- 采集频率与开销
- 高频采集(如 1s)会增加开销;建议 15–30s 采集周期起步,结合降采样与异常时自动提升频率的策略。
- 关键告警示例
- 错误日志出现 严重错误/断言失败;阻塞/死锁 持续;Batch 请求/秒 异常跌落;磁盘 util > 80% 持续;连接数 接近最大;日志空间 使用率超过阈值。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos下sqlserver监控工具
本文地址: https://pptw.com/jishu/756462.html
