1. 利用SQL Server自带工具监控
SELECT @@SERVERNAME AS ServerName, @@VERSION AS Version)获取服务器基础信息。需提前从Microsoft官网下载并安装SSMS,连接时输入CentOS服务器的IP、端口(默认1433)、用户名及密码。sqlcmd -S your_server_name -U your_username -P your_password -Q "SELECT * FROM sys.dm_exec_requests;"可查看当前执行的请求;通过sqlcmd -S your_server_name -U your_username -P your_password -Q "SELECT name, value_in_use FROM sys.configurations WHERE name = 'max server memory'"可查询SQL Server最大内存配置。sys.dm_os_performance_counters查看性能计数器、sys.dm_exec_query_stats查看查询执行统计),通过sqlcmd或SSMS执行SQL查询即可获取;扩展事件是轻量级性能监控机制(替代SQL Server Profiler),通过SSMS“对象资源管理器”→“管理”→“扩展事件”创建会话,可捕获特定事件(如死锁、慢查询),资源消耗更低。2. 使用CentOS系统自带命令行工具
top -p $(pgrep -f sqlservr)可过滤出SQL Server进程的CPU、内存占用;htop(需安装,yum install epel-release && yum install htop)提供更直观的图形化界面。vmstat 1每秒输出系统虚拟内存统计(CPU使用率、内存空闲量、磁盘I/O等);iostat -x 1查看磁盘I/O详细信息(读写速率、I/O等待时间);free -h显示内存使用情况(已用/空闲内存、缓存)。ss -tulnp | grep sqlservr查看SQL Server监听的网络端口及连接状态;netstat -antp | grep 1433(1433为SQL Server默认端口)查看TCP连接数,帮助排查网络问题。3. 采用第三方监控工具
prometheus-mssql-exporter(SQL Server专用导出器)采集性能指标(如QPS、TPS、缓存命中率);Grafana是可视化工具,添加Prometheus数据源后可创建仪表盘(如CPU使用率趋势图、慢查询数量统计图),适合云环境或大规模集群监控。check_sqlserver插件(需安装nagios-plugins-all包)监控SQL Server状态(如实例是否可用、数据库是否在线),配置nagios.cfg添加监控项后,可实现邮件、短信报警。4. 日志分析与告警
/var/opt/mssql/log/errorlog,通过tail -f /var/opt/mssql/log/errorlog实时查看错误信息(如数据库损坏、权限问题),定期分析日志可提前发现潜在风险。journalctl -u mssql-server查看SQL Server服务的系统日志(如启动失败、崩溃信息),结合grep命令过滤关键信息(如journalctl -u mssql-server | grep -i error),帮助定位系统级问题。