资讯详情

SQL Sentry 2024安装注册实战:深入SQL Server内部监控

📅 2026/10/2 9:26:31 | 华诺云谱 👁 阅读
SQL Sentry 2024安装注册实战:深入SQL Server内部监控
上线第二天凌晨DBA 的手机被告警轮番轰炸。某个核心库的 CPU 冲上 90%阻塞作业全部卡死前一天还在正常执行的 TOP SQL 一夜之间变成了慢 SQL。可回头翻系统自带的管理平台上面只显示“数据库正在运行”事件日志也干干净净。玩过大范围 SQL Server 环境的人应该都有同感最折磨人的不是服务挂掉而是它“看起来正常但内部已经乱成一锅粥”。这次我要装的 SolarWinds SQL Sentry 2024就是为了解决这类问题。它能从 SQL Server 实例内部抓取等待统计、执行计划、作业运行状态、阻塞链和资源消耗把监控粒度从“服务器开机状态”细化到“某一条查询为什么慢”。这篇文章会完整走一遍安装与注册流程包括我实际操作中踩过的坑、对界面关键选项的理解以及装完之后应该先做哪几件事。适合数据库管理员、应用运维和刚接手 SQL Server 监控体系的人阅读。1. 为什么 2024 年我会选择 SQL Sentry 这类监控工具1.1 从一次“数据库看起来没挂”的故障说起有一年我负责一个老旧的业务系统底层跑 SQL Server 2016客户反馈后台操作“转圈圈”但没有一个人说“数据库宕机”。我打开任务管理器CPU、内存还算正常Windows 事件日志也没有致命错误。常规监控工具显示一切绿灯可业务就是慢。后来登录到那台实例用 DMV 一查sys.dm_os_waiting_tasks里大量LCK_M_X等待再往深处追发现某个半夜跑批的手工事务没有提交持有了一张表锁白天的业务查询全被堵在后面。问题很清楚常规监控却没报警因为常规工具只盯服务器层指标根本看不到“等待”和“阻塞链”。这种时候就需要一个能深入数据库引擎内部的工具。SQL Sentry 的核心能力正是把PAGEIOLATCH_SH、CXPACKET、LCK_M_X这类 SQL Server 内部等待事件可视化直接指出瓶颈在 CPU、IO、锁还是编译。2024 版本在原有基础上强化了对 Azure SQL 数据库、SQL Server 2022 以及 Always On 可用性组的支持对混合环境越来越友好。1.2 SQL Sentry 监控的是 SQL 实例内部而不是服务器外壳很多监控软件喜欢装一堆 Agent 到操作系统里收集 CPU、内存、磁盘 IO然后画一堆漂亮的趋势图。这些数据当然有用但 SQL Server 是一个高度复杂的进程同样的 CPU 使用率对 A 查询可能是正常的对 B 查询就是灾难。SQL Sentry 走的是另一条路它直接连到 SQL Server 实例的 DMV、性能和事件接口读取正在执行的计划、等待资源、历史性能基线。我印象最深的是它的 Top SQL 视图。它能抓出过去一段时间内累计 CPU 最高、耗时最长、逻辑读取最多的语句而且可以直接下钻到某条语句对应的执行计划。对比常规监控相当于一个是“看体温”另一个是“看病理切片”。普通监控告诉你主机温度高了SQL Sentry 告诉你这波高 CPU 是哪条语句、哪个数据库、哪个用户跑出来的。这也是很多 DBA 团队愿意给它买单的原因。它不是替代你的基础监控平台而是补上数据库内部这一层让告警从“实例挂了”变成“这条语句的等待时间开始飙升”。1.3 谁会从这篇安装笔记里真正获益如果你手里有几十个 SQL Server 实例需要统一管理或者正在处理常规监控覆盖不到的“偶发慢查询”又或者刚接手一套已经装了 SQL Sentry 但没人维护的环境那这篇内容很适合你。我写这篇笔记时默认读者会一点 SQL Server 基本概念比如实例、登录名、数据库、服务账号。但如果你完全是新手也不要担心安装过程中的每个关键选项我都会解释为什么要这样选而不是只告诉你“下一步、下一步、完成”。毕竟工具装不上、注册不顺利再强的功能也白搭。2. 安装 SQL Sentry 之前的准备清单省得装到一半卡壳2.1 系统版本与 .NET 运行时要求SQL Sentry 的架构由三部分构成管理控制台、数据收集器、被监控实例上的采集代理。控制台通常安装在 DBA 自己的工作机或跳板机上数据收集器则需要一台常开机的 Windows 服务器。2024 版对操作系统的要求不算苛刻Windows Server 2016 以上、Windows 10/11 都支持。但我不建议在 Server Core 这种不带完整桌面体验的最小化系统上装控制台有条件还是用带 GUI 的 Windows Server。安装前要确认 .NET Framework 4.8 已经就位。Windows Server 2022 默认自带但 Server 2016 经常需要手动装。很多首次安装失败都是卡在这里日志指向某个 .NET 组件缺失看起来和 SQL Sentry 无关实际就是运行时没准备好。另外一个容易被忽略的点是时区。控制台、采集服务、SQL Server 实例最好都使用同一时区否则监控数据的时间轴会错位。如果你把两个时区不同的实例混在一起看排障时会发现明明数据库在同一时间点发生了事件时间戳却对不上定位问题非常痛苦。2.2 仓库数据库与磁盘空间预算SQL Sentry 需要用一个 SQL Server 数据库存放历史性能数据这个仓库库如果太小装了等于没装数据会被不断滚动清理。官方建议的磁盘余量会随监控实例数量变化我的经验是一个中等规模的 SQL Server 环境监控 10 到 20 个实例至少要给它留 100GB 左右的磁盘空间。你可以在安装时选择数据保留周期但空间给得太紧后期会频繁出现数据保留期被自动压缩的告警。仓库库最好单独建实例或放在独立磁盘上。不要图省事把 SQL Sentry 的配置库存放到正在被监控的业务库里。监控数据写入频繁会和你自己的业务 SQL 抢 IO造成互相拖累。我遇到过一家公司把仓库库放在核心交易库的同一磁盘上结果监控数据写多了业务高峰期 IO 延迟飙升监控工具反而成了事故源。磁盘 I/O 也值得关注。仓库库存的是典型的时间序列数据写入量持续稳定用 SSD 明显省心。机械盘不是不能用但当数据保留期较长、查询历史趋势的时候性能差距会直接体现出来。2.3 服务账号、域策略和网络端口的三方对齐安装过程中会让你指定 SQL Sentry 服务账号。很多人图省事直接用Local System这样在单机测试环境没问题但如果要访问其他机器上的 SQL Server 实例域账号或至少一个可以跨越网络认证的账号更合适。服务账号必须拥有“作为服务登录”的权限否则 Windows 在启动服务时会直接报错。如果是域环境还要检查组策略里有没有禁止该账号登录服务的策略。SQL Sentry 的采集服务同时要连接仓库库和被监控实例所以该账号至少要在仓库库上拥有db_owner角色并在被监控实例上有查看 DMV 的权限。网络方面先搞清楚你装的是完全集中式还是分散式部署。控制台、收集器、被监控实例之间的通信端口如果被防火墙拦截安装向导能跑完但后续数据采集会静默失败。我的做法是先关闭 Windows 防火墙验证一次连通性确认可行后再把例外规则加回去。当然生产环境不要直接关防火墙只是做连通性测试时这样比较快。3. 安装 SQL Sentry 主程序一次走完安装向导3.1 从哪里拿安装包以及为什么要校验哈希2024 版的安装包不出意外是一个几十到几百 MB 的可执行文件或压缩包。建议只从 SolarWinds 官方下载不要用第三方站点转存的所谓“绿色版”“破解版”。这类二次打包的安装包轻则被塞入广告推广重则直接种马。做数据库监控的工具如果连安装源都不干净后面分析出来的数据也没有可信度。下载完先校验一下 SHA-256 哈希。官方下载页面通常会列出文件哈希值PowerShell 里可以用Get-FileHash查看本地文件的哈希值两个值一致再开始安装。这个小动作 30 秒就够但在勒索软件横行的年代值得养成长久习惯。如果你是要给几十台服务器批量部署可以把安装包放到内网共享目录或者使用静默安装参数自动部署。但第一次安装环境我建议还是手动跑一遍向导把每个选项看清楚。自动部署可以以后慢慢研究手动先建立一个正确的基线配置。3.2 选择安装组件控制台、数据收集器和采集代理安装向导会让你选择安装组件。常规情况下有三种角色控制台是图形界面数据收集器负责从被监控实例拉数据并存到仓库库采集代理则部署到每台被监控的 SQL Server 上。如果你只是在一台标准 Windows 服务器上试点直接把所有组件都装上是可以的。数据量不大时这个单机模式完全够用。但到了生产环境我的建议是控制台装到 DBA 工作站数据收集器单独跑在一台服务器上采集代理按需推送到每个实例。这样做不是为了显得“专业”而是为了故障隔离。数据收集器如果长期高频写入仓库库CPU 和内存占用并不低和控制台抢资源会影响你打开界面的流畅度。更重要的是当被监控实例数量超过二三十个时数据收集器本身可能成为瓶颈这时它可以拆成多个进程分散压力。3.3 初始化仓库库时的字段选择安装向导中间会要求你指定仓库库的连接信息比如目标 SQL Server 实例、认证方式和数据库名称。这里有几个选项值得停下来说。仓库库名称建议包含版本和环境标识例如SQLSentryRepository_Prod。不要只用默认名称因为以后如果有多套环境你会搞不清这个库到底属于哪套监控体系。默认排序规则我一般保持与目标实例一致避免出现字段排序和比较异常。认证方式上本地测试可以用 SQL 登录但生产环境我更推荐 Windows 身份验证。这样后续运维只需管理域账号不用为监控系统额外维护一套 SQL 密码。不过要注意SQL Sentry 的采集服务需要用它自己的 Windows 账号连到仓库库这个账号至少要具备db_owner权限否则安装程序创建表、写存储过程都会失败。数据库文件位置也不要全部塞到默认的C:\Program Files\Microsoft SQL Server\...目录。仓库库会持续写入默认目录所在系统盘通常空间紧张最好指定到独立的数据盘。安装指南里可能会让你配置数据保留周期我一般初始设置保留 30 天原始明细数据再配合每周汇总表兼顾查询速度与磁盘占用。3.4 安装完成后看到什么才说明成功安装向导跑完不代表整套系统已经正常。第一次打开控制台你会看到一个登录界面输入刚才配置的 Windows 账号或 SQL 身份后控制台会开始加载监控界面。如果控制台顺利打开左侧能出现可展开的实例树说明基本安装成功了。但真正确认安装成功还要看两件事第一Windows 服务列表里有没有SQL Sentry相关的服务且在“正在运行”状态第二仓库库里是否已经自动生成了一批数据表、存储过程和后台作业。我认为最有说服力的验证方式是随便在控制台里打开一个“Events”视图看看有没有来自仓库库的事件流入。如果事件视图里能翻到安装初始化产生的记录至少证明数据链路是通的。4. 注册和激活试用转正过程中最关键的几个细节4.1 先申请试用许可证而不是直接执行安装包很多人在安装前不注册装完以后打开控制台才被提示需要输入许可证。SQL Sentry 的试用流程通常是到官网申请一个评估许可证发到注册邮箱后把密钥贴到控制台的许可界面里激活。我的建议是在正式安装前就完成注册申请。别小看这个先后顺序如果你在一个隔离的内网环境里安装控制台注册页面可能无法访问这时你手里要有已经下载好的试用密钥文件或离线许可证。试用许可证的有效期一般按天计算从你完成申请后开始而不是从你装好软件后开始。有些人申请完放着半个月不用真正部署时试用期已经过去一截白白浪费评估窗口。我一般会先规划好安装日期再提交试用申请让评估期能覆盖完整的测试阶段。4.2 在控制台里输入许可证密钥的正确姿势正式采购后SolarWinds 通常会给你发一封授权邮件里面有许可证密钥或附件格式的许可证文件。不要踩我踩过的坑第一次我把授权邮件里的所有字段一股脑复制粘贴结果在激活界面提示无效后来发现只需要填入密钥部分前面的人类可读描述不要带进去。控制台里一般会有 Help 或 Settings 菜单进入 Licensing 或 License 页面填入密钥后点校验。如果校验成功页面会显示当前授权版本、有效期、已经使用的管理节点数。如果校验失败先检查网络。激活过程需要访问授权服务器授权服务器的响应偶尔会被代理干扰。还要看看系统时间。如果服务器日期和实际日期偏差太大许可证签名校验会失败。这类问题在虚拟机里尤其常见特别是那些刚克隆出来的虚拟机时钟没同步时激活界面显示的错误往往让人误以为是密钥有问题。先校准到 NTP 时间源再重新激活。4.3 授权范围、实例配额和超额提示SQL Sentry 的许可证通常按被管理的目标数量或用户数计费。你购买的是多少个 SQL Server 实例的监控权就只能在控制台里加入相应数量的实例。安装完成后进入监控界面如果发现添加被监控实例时提示“此操作需要其他许可证”多半是授权数量已用完。这时不要再往里面塞实例先分清哪些实例是必须监控的核心库哪些可以用其他轻量方案补充。我遇到过一种尴尬情况一个可用性组里有主库、同步副本、异步副本我当时以为监控一个主库就够了结果发现同步副本上也有负载和等待事件需要观察。后来重新评估授权时把所有承载读写流量的副本都纳入了监控范围。如果你的环境是高可用架构购买授权时要把这些“隐形”的副本也算进去。5. 安装完成不等于闭环接入第一个 SQL Server 实例并跑通全流程5.1 添加实例时该用哪个账号连接控制台装好、授权激活后第一件事是添加被监控的 SQL Server 实例。入口一般是通过“Add Instance”或右键资源树选择注册实例。填写主机名、实例名和认证信息后系统会尝试建立连接。连接时建议使用一个专用的最低权限登录账号不要用sa或 DBA 本人的高权限账号。SQL Sentry 读取性能视图需要VIEW SERVER STATE权限查看作业、维护计划可能还需要额外授权。你可以先给账号授予VIEW SERVER STATE和VIEW ANY DEFINITION如果后续某些功能提示权限不足再按需追加。用最小权限起步至少不会因为一个监控工具把数据库安全暴露面扩大。如果填完连接信息后长时间停留在“验证连接”状态先在错误日志里确认连接是否被实例端防火墙拒绝。SQL Server 默认在 1433 端口监听但你公司网络环境里可能有多个实例、动态端口或命名实例。命名实例用主机名加实例名连接SQL 浏览器服务如果没开启也可能导致连接失败。5.2 用 Top SQL 和等待统计验证采集链路添加实例成功后切到 Top SQL 页面。刚添加的前几分钟可能没有数据不用着急SQL Sentry 需要先完成基线采集。等待 15 到 30 分钟后再回来看如果你能找到 CPU 时间、逻辑读、执行次数都有数据记录的 SQL 语句列表说明采集链路已经通。等一等这个动作非常关键。很多人在这一步看到“还没数据”就误以为安装失败开始重装、改权限最后发现只是还没到采集周期。我的建议是先手动执行几条压测查语句给系统造点负荷这样 Top SQL 页面的排序结果能更明显区分出来。等待统计视图则更本质。它会列出PAGEIOLATCH_SH、LCK_M_X、CXPACKET等等待类型的累计时间和占比。如果采集正常这些数据在 Installation 后一小时内就能形成初步趋势。看到等待数据开始滚动你对这套系统的信任感才算真正建立起来。5.3 设置第一条告警通知否则监控等于白装有监控没告警等于装了一个不会说话的哨兵。SQL Sentry 支持自定义告警当某条 SQL 的等待时间超过阈值、作业失败、空间不足时触发通知到邮件、短信或第三方集成。第一次配置告警我建议从这几个方向入手采集代理离线、作业失败、关键实例的CPU持续高于阈值、某个数据库的事务日志超过设定大小。这些条件相对比较基础误报率低信号价值高。通知配置里SMTP 主机和发件人账号一定要测试成功后再挂到业务上。我经历过一次配置了邮件告警但收不到信的情况排查结果居然是 SMTP 服务器对外发邮件有域名白名单限制发件服务器要求认证用户必须来自特定域名测试时没注意导致告警从未发出去。任何告警渠道配上之后先人为制造一次告警验证全链路别等事故发生时才发现通知没通。6. 安装注册阶段常见的坑与我的处理方案6.1 安装程序无法写入仓库库有次部署时安装向导在“初始化仓库库”阶段一直报权限错误。当时我用的账号是域管理员直觉告诉我权限没问题后来才发现 SQL Server 实例上根本没有给这个账号创建数据库的权限。解决方案很简单在初始化之前先在目标 SQL Server 实例上手工创建一个登录账号并授予sysadmin或至少dbcreator加db_owner的权限。等仓库库创建完成再把账号降权到db_owner。不要嫌麻烦数据库监控工具的仓库库创建需要建表建索引初始化时权限不够后续补起来非常痛苦。还有一种情况是 SQL Server 的remote login限制策略尤其是实例配置了专用管理员连接后普通连接通道可能被截断。检查实例配置里的“允许远程连接”选项是否打开TCP/IP 协议是否启用。好几回安装失败都不是软件问题是 SQL Server 没开 TCP/IP。6.2 激活成功但 UI 仍提示未授权激活界面显示证书有效但控制台右上角依然提示未授权。这种情况一般不是密钥的问题而是控制台进程缓存了旧授权状态。最常用的处理方式是完全退出控制台杀掉所有相关进程再重新打开。如果还不行把许可证文件重新加载一次确认文件路径里的特殊字符没有干扰解析。SolarWinds 产品对许可证文件路径比较敏感路径中如果带中文或空格偶尔会读取失败。把许可证文件放到纯英文路径下使用C:\License\sentry.lic这类命名成功率会高很多。另外提醒一句激活完成后要检查系统时间同步。域环境的服务器如果域控制器时间漂移你在许可证校验时可能遇到签名不匹配的幻觉性错误。校准 NTP 后再激活能省很多排查功夫。6.3 采集服务启动后反复退出SQL Sentry 的数据收集器注册为 Windows 服务后偶尔会在“启动-停止-重启”之间反复横跳。遇到这种情况先打开 Windows 事件日志重点看服务控制管理器记录的错误码。我处理过一次最后发现是服务账号“作为服务登录”权限不在目标组策略允许列表里。域环境下有个容易被忽视的点某些安全策略会把“批处理作业”和“作为服务登录”搞混组策略对象套下来服务账号看似是某个用户组的管理员却没有明确的“作为服务登录”权限。另外检查仓库库连接字符串里的密码是否仍然有效。服务账号密码如果做过轮换服务在重启时会因为连接失败而退出。公司里如果没有统一的密码管理器建议至少记好这些服务账号的轮换台账。6.4 维护安装档案版本、补丁和激活凭证最后分享一个我自己这几年受益匪浅的习惯每装一次企业级软件都建立一个安装记录文档包含安装包文件名、版本号、构建号、安装日期、安装路径、仓库库位置、许可证文件备份、服务账号名和联系方式。这些信息不用写得多华丽但排查问题时必须有地方查。特别是 SolarWinds 产品经常有 Hotfix 补丁文件名通常是一长串带版本号的格式如果你不记录清楚半年后根本分不清当时装的是哪一版。我自己用的格式是2024.1.0_RTM_build1234_2024-03-15这样看文件名就能直接对上安装时间线。恢复环境时这个记录能帮你快速重建一套和原来一致的监控系统。数据库备份和许可证文件也建议留一个异地副本避免服务器彻底故障后失去监控能力反而在最需要排障的时候没有工具可用。安装和注册只是 SQL Sentry 迈出的第一步。我个人最深的体会是这类数据库性能监控工具的上手门槛不在于点击“下一步”而在于你是否有意识地把等待统计、Top SQL 和告警策略串成一条完整的事件响应链路。装完以后给自己定一个习惯每周固定抽半小时翻一遍 Top SQL 和等待趋势不要等告警响了才打开控制台。你越熟悉它的日常形态真出问题的时候就越能第一时间看出哪个指标不寻常。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑