首页主机资讯如何监控CentOS上的SQL Server状态

如何监控CentOS上的SQL Server状态

时间2025-11-18 10:19:04发布访客分类主机资讯浏览1010
导读:监控思路总览 从四个层面入手:服务可用性、SQL 内部指标、操作系统资源、日志与告警,形成闭环监控与快速排障路径。 一 快速检查与内置查询 服务状态与日志 检查服务:运行命令:systemctl status mssql-serve...

监控思路总览

  • 从四个层面入手:服务可用性SQL 内部指标操作系统资源日志与告警,形成闭环监控与快速排障路径。

一 快速检查与内置查询

  • 服务状态与日志
    • 检查服务:运行命令:systemctl status mssql-server;异常时可用:systemctl start mssql-server
    • 查看错误日志:路径为 /var/log/mssql/errorlog,用于定位启动失败、登录失败、资源不足等问题。
  • 连通性验证
    • 端口连通:使用 nc -vz < 端口> telnet < 端口> 验证实例端口可达。
  • 基础连通与版本
    • 命令行快速探测:sqlcmd -S < host_or_ip> , -U -P -Q “SELECT @@VERSION; ”
  • SQL 内部关键查询
    • 活跃会话与请求:
      • 查看当前会话与请求:SELECT session_id, request_id, loginame, program_name, status, command, start_time, cpu_time, reads, writes FROM sys.dm_exec_sessions s LEFT JOIN sys.dm_exec_requests r ON s.session_id = r.session_id ORDER BY cpu_time DESC;
      • 查看正在阻塞与等待:SELECT session_id, blocking_session_id, wait_type, wait_time, wait_resource FROM sys.dm_exec_requests WHERE blocking_session_id < > 0 OR wait_time > 0;
    • 日志空间:DBCC SQLPERF(LOGSPACE);
    • 连接与资源快照:SELECT @@CONNECTIONS, @@CPU_BUSY, @@PACKET_ERRORS;
  • 可视化辅助
    • 使用 SSMS 活动监视器 观察活跃查询、进程、等待与 I/O。

二 操作系统与网络监控

  • 进程与资源
    • 进程定位:pidof sqlservr;资源占用:top -p $(pidof sqlservr)htop
    • 系统整体:vmstat 1iostat -x 1free -mnmondstatsarglances
  • 存储与空间
    • 磁盘空间:df -h;I/O 性能:iostat
  • 网络
    • 连接与端口:ss -lntp | grep sqlservrnetstat -anp | grep sqlservr;连通性:pingnc/telnet

三 第三方监控与可视化

  • Prometheus + Grafana
    • 部署 prometheus-mssql-exporter 采集 SQL Server 指标,Prometheus 拉取后由 Grafana 展示与告警。
  • Zabbix
    • 通过 Zabbix Agent 或 ODBC 采集 MSSQL 指标,配置触发器实现阈值告警与可视化。
  • Nagios
    • 使用 check_sqlserver 等插件对连接、备份、作业与性能计数器进行监控与告警。
  • 其他
    • 商业与专业工具:SolarWinds DPARedgate SQL Monitor 等,用于深度性能分析与瓶颈定位。

四 告警与日志联动

  • 日志集中与解析
    • 持续 tail -f /var/log/mssql/errorlog,将关键错误(如 ERRORFATAL)通过 rsyslogFluent Bit 发送到 Elasticsearch + KibanaLoki 进行检索与可视化。
  • 告警规则示例
    • 服务宕机:当 systemctl is-active mssql-server 返回非 active 时触发。
    • 错误日志新出现“FATAL/ERROR”:基于日志采集平台的 关键字告警
    • 连接异常:连续 3 次 nc 探测端口失败触发。
    • 资源阈值:如 CPU > 80% 持续 5 分钟可用内存 < 10%磁盘使用率 > 85%iostat await > 20ms
    • SQL 内部异常:如 阻塞会话 > 0 持续 2 分钟长事务/高 CPU 查询日志空间使用率 > 80%

五 排障与性能优化建议

  • 定位阻塞与慢查询
    • 使用 sys.dm_exec_requestssys.dm_exec_sessions 找出阻塞链与高成本查询;结合 sys.dm_exec_query_stats 与执行计划分析优化。
  • 长事务与锁竞争
    • 通过 扩展事件(Extended Events) 捕获 long_running_querydeadlocklock_timeout 等事件,保存为文件供离线分析。
  • 存储与空间
    • df -h 检查数据/日志盘空间,用 iostat 评估 I/O 瓶颈;必要时扩容或优化文件布局。
  • 配置与版本
    • 复核 mssql.conf 等配置项是否符合最佳实践;保持 SQL ServerLinux 内核/驱动为稳定版本。

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


若转载请注明出处: 如何监控CentOS上的SQL Server状态
本文地址: https://pptw.com/jishu/749876.html
ubuntu日志记录了哪些内容 Debian下Filebeat的日志轮转如何设置

游客 回复需填写必要信息