首页 >
问答 >
云计算 >
如何监控CentOS上的SQL Server状态
如何监控CentOS上的SQL Server状态
小樊
41
2025-11-18 04:28:49
监控思路总览
从四个层面入手:服务可用性 、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 1 、iostat -x 1 、free -m 、nmon 、dstat 、sar 、glances 。
存储与空间
磁盘空间:df -h ;I/O 性能:iostat 。
网络
连接与端口:ss -lntp | grep sqlservr 、netstat -anp | grep sqlservr ;连通性:ping 、nc/telnet 。
三 第三方监控与可视化
Prometheus + Grafana
部署 prometheus-mssql-exporter 采集 SQL Server 指标,Prometheus 拉取后由 Grafana 展示与告警。
Zabbix
通过 Zabbix Agent 或 ODBC 采集 MSSQL 指标,配置触发器实现阈值告警与可视化。
Nagios
使用 check_sqlserver 等插件对连接、备份、作业与性能计数器进行监控与告警。
其他
商业与专业工具:SolarWinds DPA 、Redgate SQL Monitor 等,用于深度性能分析与瓶颈定位。
四 告警与日志联动
日志集中与解析
持续 tail -f /var/log/mssql/errorlog ,将关键错误(如 ERROR 、FATAL )通过 rsyslog 或 Fluent Bit 发送到 Elasticsearch + Kibana 或 Loki 进行检索与可视化。
告警规则示例
服务宕机:当 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_requests 与 sys.dm_exec_sessions 找出阻塞链与高成本查询;结合 sys.dm_exec_query_stats 与执行计划分析优化。
长事务与锁竞争
通过 扩展事件(Extended Events) 捕获 long_running_query 、deadlock 、lock_timeout 等事件,保存为文件供离线分析。
存储与空间
用 df -h 检查数据/日志盘空间,用 iostat 评估 I/O 瓶颈;必要时扩容或优化文件布局。
配置与版本
复核 mssql.conf 等配置项是否符合最佳实践;保持 SQL Server 与 Linux 内核/驱动为稳定版本。