SQL Server 端口监视器

Microsoft.SystemCenter2012.ConfigurationManager.SQLPort (UnitMonitor)

此监视器检查 SQL Server 端口是否正确。

Knowledge Base article:

摘要

这是一个明确定义的端口,用于在大多数 Configuration Manager 站点系统角色与提供程序和 SQL Server(可以自定义默认端口 1433;)之间进行通信。 此外,明确定义的端口用于通过 SQL Server Service Broker(可以自定义默认端口 4022;)在站点系统数据库服务器之间进行通信。 SQL Server 通信端口(默认值为 1433)是使用 SQL Server Configuration Manager 维护的,这会针对 TCP/IP 协议配置 SQL Server 网络配置。 SQL Server Service Broker 端口(默认值为 4022)是在 Configuration Manager 设置过程中配置的。 首次设置 SQL Server 时,执行设置的 SQL Server 数据库管理员会为 Configuration Manager 创建一个特殊的数据库实例,并且必须为该数据库实例选择进行通信所用的端口。

对于要用于所设置的站点的 SQL Server 计算机,安装站点服务器的 Configuration Manager 管理员必须具有其本地管理权限。 这会使安装程序能够从命名的实例中自动获悉要用于配置安装程序的正确端口(默认值为 1433),并且能够为 SQL Server Service Broker 设置正确的端口(默认值为 4022)。

原因

网络防火墙规则将阻止使用配置的端口进行通信。

解决方法

当 Configuration Manager 检测到无法与配置的 SQL Server 端口(默认值为 1433)取得联系时,它会尝试连接到包含其数据库的 SQL Server 计算机上的注册表,然后更改 Configuration Manager 设置以镜像 SQL Server 上新配置的端口。 当 Configuration Manager 检测到无法与配置的 SQL Server Service Broker 端口(默认值为 4022)取得联系时,它会尝试连接到包含其数据库的 SQL Server 计算机,并将 SQL Server Service Broker 端口改回其原始配置。 但是,如果 Configuration Manager 站点服务器无法与 SQL Server 系统联系,则网络管理员需要检查防火墙端口或网络连接问题。 有关详细信息,请查看 [Configuration Manager 安装文件夹]\Logs 中的 hman.log。

Element properties:

TargetMicrosoft.SystemCenter2012.ConfigurationManager.SiteServer
Parent MonitorSystem.Health.ConfigurationState
CategoryConfigurationHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SystemCenter2012.ConfigurationManager.StatusMessage3StateMonitor
RemotableTrue
AccessibilityPublic
Alert Message
SQL Server 端口不正确。
站点服务器 {0} 上的 SQL Server 端口配置不正确。
RunAsDefault
CommentSIV:GEN0203

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter2012.ConfigurationManager.SQLPort" Comment="SIV:GEN0203" Accessibility="Public" Enabled="onEssentialMonitoring" Target="SCCM!Microsoft.SystemCenter2012.ConfigurationManager.SiteServer" ParentMonitorID="SystemHealth!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Microsoft.SystemCenter2012.ConfigurationManager.StatusMessage3StateMonitor" ConfirmDelivery="true">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter2012.ConfigurationManager.SQLPort_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SCCM!Microsoft.SystemCenter2012.ConfigurationManager.Server"]/SiteCode$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UIGeneratedOpStateId093d4f68de054ab0859735e23534486c" MonitorTypeStateID="Good" HealthState="Success"/>
<OperationalState ID="UIGeneratedOpStateIda22bfe352ed3451faf7bbc4bd0759f80" MonitorTypeStateID="Warning" HealthState="Warning"/>
<OperationalState ID="UIGeneratedOpStateIdb5ba7ce5ed71472da07bf84000128843" MonitorTypeStateID="Error" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</ComputerName>
<ComponentName>SMS_HIERARCHY_MANAGER</ComponentName>
<RuleId>B1B669B9-6C11-4b8e-A09A-4E515D20F4F6</RuleId>
<IntervalSeconds>360</IntervalSeconds>
</Configuration>
</UnitMonitor>