首页主机资讯怎样在Ubuntu上监控SQL Server

怎样在Ubuntu上监控SQL Server

时间2026-01-20 01:55:04发布访客分类主机资讯浏览1092
导读:在 Ubuntu 上监控 SQL Server 的实用方案 一 基础与内置监控 服务与连通性 查看服务状态:systemctl status mssql-server --no-pager 默认监听端口:1433,放通防火墙:sudo...

在 Ubuntu 上监控 SQL Server 的实用方案

一 基础与内置监控

  • 服务与连通性
    • 查看服务状态:systemctl status mssql-server --no-pager
    • 默认监听端口:1433,放通防火墙:sudo ufw allow 1433
    • 远程连通性测试:sqlcmd -S < IP或主机名> ,1433 -U < 用户名> -P '< 密码> ' -Q "SELECT 1"
  • 内置性能工具
    • 使用 SSMS 活动监视器查看实时 CPU、内存、磁盘 I/O、等待统计等(适合在图形化环境远程连接)。
    • 使用 Extended Events 创建轻量级会话,捕获慢查询、阻塞、登录失败等关键事件。
    • 查询 DMVs 获取运行时指标,例如:
      • 当前请求与等待:SELECT session_id, request_id, command, wait_type, wait_time_ms FROM sys.dm_exec_requests CROSS APPLY sys.dm_exec_sql_text(sql_handle);
      • 性能计数器:SELECT * FROM sys.dm_os_performance_counters WHERE counter_name LIKE '%Page Life Expectancy%';
    • 使用 SQL Server Profiler 进行语句级跟踪与分析(建议仅短时用于问题定位)。

二 命令行与系统资源监控

  • SQL 侧快速巡检(定时在 crontab 中执行并入库/告警)
    • 阻塞与长事务
      • SELECT session_id, request_id, blocking_session_id, wait_type, wait_time_ms, command, text FROM sys.dm_exec_requests CROSS APPLY sys.dm_exec_sql_text(sql_handle) ORDER BY wait_time_ms DESC;
    • 最近消耗高的语句
      • SELECT TOP 20 qs.execution_count, qs.total_worker_time/qs.execution_count AS avg_cpu_ms, qs.total_elapsed_time/qs.execution_count AS avg_elapsed_ms, SUBSTRING(st.text, (qs.statement_start_offset/2)+1, ((CASE qs.statement_end_offset WHEN -1 THEN DATALENGTH(st.text) ELSE qs.statement_end_offset END - qs.statement_start_offset)/2)+1) AS stmt FROM sys.dm_exec_query_stats qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st ORDER BY avg_cpu_ms DESC;
  • 系统侧资源
    • 进程与负载:top/htop
    • 内存:free -m
    • 磁盘与 I/O:df -hiostat -x 1
    • 网络:netstat -tulpenss -tulpen
    • 综合观测:glancesdstatnetdata(便于快速定位瓶颈)。

三 集中监控与可视化

  • 方案选型
    • 指标采集与存储:Prometheus
    • 可视化展示:Grafana
    • 主机与应用指标:可配合 node_exporter、容器/主机监控代理
  • 快速落地步骤
    • 部署 PrometheusGrafana(Ubuntu 可使用官方包或容器方式)。
    • 在 Ubuntu 上部署支持 SQL Server 的 Exporter(如社区维护的 mssql-exporter),配置连接字符串与采集间隔,暴露 /metrics
    • Prometheus 配置抓取目标:
      • scrape_configs:
        • job_name: ‘sqlserver’ static_configs:
          • targets: [‘< exporter_ip> :’]
    • Grafana 添加 Prometheus 数据源,导入 SQL Server 仪表盘(社区已有多种模板,可按需调整阈值与告警规则)。

四 第三方与商业监控

  • 商业与一体化工具(适合需要开箱即用与告警编排的团队)
    • SolarWinds Database Performance Analyzer
    • Red Gate SQL Monitor
    • ManageEngine OpManager
    • Paessler PRTG Network Monitor
  • 使用建议
    • 优先评估对生产负载的影响(采样频率、跟踪深度)
    • 统一指标口径(OS 层、SQL 层、应用层)
    • 建立基线并配置阈值告警(如 CPU、PLE、阻塞、慢查询数、连接数、磁盘剩余空间等)。

五 实践建议与告警阈值示例

  • 日常巡检清单
    • 每日:错误日志、失败登录、备份是否成功、阻塞与长事务、磁盘剩余空间
    • 每周:索引与统计信息健康、参数嗅探与执行计划回归、容量增长趋势
  • 常用阈值示例(需结合业务调优)
    • Page Life Expectancy < 300(内存压力征兆)
    • 平均/最大等待类型异常(如 PAGEIOLATCH_WRITELOGLCK_M_*)
    • 活跃会话数接近最大连接数
    • 磁盘剩余空间低于阈值(如 < 15%
  • 注意事项
    • 跟踪与 Profiler 仅短时启用,避免额外开销
    • 生产环境优先使用 Extended Events 与轻量 DMV 查询
    • 对监控查询本身加索引/限制返回行数,避免“监控反噬”

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 怎样在Ubuntu上监控SQL Server
本文地址: https://pptw.com/jishu/786505.html
Linux vsftp版本更新:如何保持软件最新状态 SQL Server在Ubuntu运行稳定吗

游客 回复需填写必要信息