Config-Sync配置
Config-Sync 功能可用于 Solace PubSub+ 设备或 Solace PubSub+ 软件事件代理,以自动同步:
- 高可用性(HA)对中事件代理之间的配置属性。
- 一个复制站点上启用复制的消息VPN与其实对应复制站点上的消息VPN之间的配置。
要开始在HA或复制部署中使用Config-Sync,您必须执行以下操作:
- 在将使用Config-Sync的每个事件代理上启用保证消息传递。参见系统级消息池配置。
- 在每个事件代理上启用Config-Sync。参见启用Config-Sync。
- 如果您正在配置HA对,还必须断言一个事件代理的系统配置覆盖其配对。参见断言事件代理系统配置。
使用Config-Sync的Solace HA对可能会在客户端在HA活动事件代理上添加或删除端点或主题订阅的同时,CLI或SEMP配置更改在HA备用事件代理上对同一端点或主题订阅进行更改时失去同步。
为避免这种情况,建议执行以下操作之一:
- 仅在HA活动事件代理上通过CLI或SEMP进行保证消息传递配置更改。
- 将客 户端配置文件设置为不允许客户端动态创建或删除端点(参见允许客户端创建保证端点),并设置端点的权限级别,以便客户端不允许为队列添加、修改或删除主题订阅(参见为非所有者客户端配置权限)和主题端点(参见为非所有者客户端配置权限)。
启用Config-Sync
对于HA部署,必须为HA对中的两个事件代理启用Config-Sync。对于Solace PubSub+ 软件事件代理HA组,不要为监控节点启用Config-Sync。
对于复制部署,必须为两个复制站点中的每个事件代理启用Config-Sync(无论是否也使用HA冗余)。
- 要为事件代理启用Config-Sync,请输入以下命令:
solace(configure)# config-sync
solace(configure/config-sync)# no shutdown
- 要为事件代理禁用Config-Sync,请输入以下命令:
solace(configure)# config-sync
solace(configure/config-sync)# shutdown
在9.13.0及更高版本中,使用Config-Sync与复制站点上的独立事件代理时,不需要为事件代理分配冗余接口。此要求已从以前的版本中移除。
在早于9.13.0的版本中,使用Config-Sync与复制站点上的独立事件代理时,必须为事件代理分配冗余接口(参见配置冗余参数)。
断言事件代理系统配置
当您首次在HA对上启用Config-Sync时,必须断言一个事件代理的系统级配置覆盖其配对。这个“领导者”事件代理通常是对中的主事件代理。
在Config-Sync运行后,如果两个配置失去同步,您也可以断言一个事件代理的系统级配置覆盖其配对的。
assert-leader
、resync-leader
和 resync-follower
Config-Sync Admin EXEC命令强制将一个事件代理的配置应用于一个或多个其他事件代理。如果复制站点之间的配置不匹配,这可能导致保证消息的丢失。
要断言您当前登录的事件代理的系统级设置覆盖其HA配对,请输入以下命令:
solace1> enable
solace1# admin
solace1(admin)# config-sync
solace1(admin/config-sync)# assert-leader router
在断言一个事件代理的系统级配置覆盖其配对后,show config-sync
命令的输出应显示Config-Sync的“Oper Status”在两个主备事件代理上均为“Up”。
为避免消息和数据丢失,assert-leader
命令应仅在活动事件代理或连接客户端的消息VPN上运行。此命令不适用于备用事件代理和消息VPN。
错误后重新同步领导者
如果Config-Sync在执行配置命令时收到错误代码,受影响的配置表将进入阻塞状态。在某些情况下,为清除此错误,可能需要放弃待处理的配置更改,并使用以下命令将领导者的配置与另一个领导者重新同步:
solace# admin
solace(admin)# config-sync
solace(admin/config-sync)# resync-leader {router | message-vpn <vpn-name>}
其中:
router
指定用其冗余配对持有的领导者配置参数覆盖您当前登录的事件代理的系统级配置参数。
message-vpn <vpn-name>
是您当前登录的事件代理上的消息VPN的名称。此消息VPN的配置信息将被事件代理的冗余配对上同名的领导者消息VPN覆盖,或者如果适用,其复制配对(独立或HA对)。此值可以包含通配符。
为避免消息和数据丢失,resync-leader
命令应仅在连接客户端的备用事件代理或消息VPN上运行。此命令不适用于活动事件代理和消息VPN。
断言事件代理VPN配置
如果需要在两个事件代理之间手动同步消息VPN配置,您可以断言一个事件代理的消息VPN配置覆盖其配对上相同消息VPN的配置。
要断言您当前登录的事件代理的消息VPN级设置覆盖其HA配对,请输入以下命令:
solace1> enable
solace1# admin
solace1(admin)# config-sync
solace1(admin/config-sync)# assert-leader message-vpn <vpn-name>
其中:
<vpn-name>
是消息VPN的名称,可以包含通配符。
然后按提示输入Y
继续。
还可以从复制配对中的一个“拉取”领导者消息VPN配置到另一个。当登录到需要领导者VPN配置的事件代理时,请输入以下命令:
solace2(admin/config-sync)# resync-follower message-vpn <vpn-name>
当您断言一个事件代理的消息VPN配置信息覆盖其HA和/或复制配对上同名的消息VPN时,这些消息VPN在配对事件代理上的客户端可能会暂时断开连接。此外,如果这些端点的配置与被断言的消息VPN上的端点配置不同,则任何在途消息到这些端点都不会被传递。
不同步的属性
Config-Sync不会自动同步所有配置属性,因为某些对象/属性的值被认为是特定于事件代理的,或与许可或安全相关。这些对象/属性必须为每个事件代理手动配置。不同步的对象/属性示例包括事件代理的主机名和关闭状态。
要确定对象/属性是否自动同步,您可以在CLI命令参考中查找用于定义或设置配置参数的命令。在显示的命令帮助中,CONFIG-SYNC:
部分列出了参数是否由Config-Sync进程同步。
当您使用Solace CLI时,可以在命令后加上?
字符,以确认受该命令参数影响的属性是否同步。
或者,您可以点击以下链接访问Config-Sync参考,获取当前自动同步的所有配置设置的列表:
- 设备Config-Sync参考
- 软件事件代理Config-Sync参考
检查VPN配置是否相同
要检查HA对中的两个配对是否具有相同的消息VPN配置,请执行以下步骤:
- 对于每个事件代理上的每个消息VPN,显示用于配置消息VPN的CLI命令,并将输出重定向到文件。
solace1> show current-config message-vpn <vpn-name> > configs/solace1.txt
solace2> show current-config message-vpn <vpn-name> > configs/solace2.txt
- 复制配置文件并将它们传输到主机上进行比较。
solace1> enable
solace1# copy configs/solace1.txt sftp://<username>@<host>
solace2> enable
solace2# copy configs/solace2.txt sftp://<username>@<host>
- 使用diff工具比较两个事件代理的每个消息VPN配置文件。
例如,在Linux主机上,您可以输入以下命令:
diff configs\_solace1.txt configs\_solace2.txt
- 如果消息VPN配置不匹配,您可以执行以下操作之一:
- 手动调整消息VPN的配置(通过Solace CLI命令或SolAdmin)。这只建议用于较小的更改。还要注意,在启用Config-Sync之前必须手动调整消息VPN的配置。
- 为事件代理启用Config-Sync,并断言每个消息VPN的配置,覆盖冗余配对上同名消息VPN的配置(参见断言事件代理VPN配置)。
高级Config-Sync配置
本节提供了修改一些高级Config-Sync配置参数的信息。
为管理用户命令启用Config-Sync
默认情况下,Config-Sync自动同步通过username
CONFIG命令所做的任何CLI用户和文件传输用户配置更改。但是,您可以选择禁用username
CONFIG命令 的同步。
- 要启用事件代理的Config-Sync功能,请输入以下命令:
solace(configure)# config-sync
solace(configure/config-sync)# synchronize
solace(configure/config-sync/synchronize)# username
- 要禁用事件代理的Config-Sync,请输入以下命令:
solace(configure)# config-sync
solace(configure/config-sync)# synchronize
solace(configure/config-sync/synchronize)# no username
如果您从不同步username
CONFIG命令更改为同步它们,配对事件代理将会失去同步。要使冗余对重新同步,请在具有正确配置的事件代理上运行assert-leader router
Admin EXEC命令(参见断言事件代理系统配置)。
修改Config-Sync客户端配置文件的TCP连接参数
Config-Sync使用系统创建的Config-Sync客户端(#config-sync
)在事件代理之间传输配置消息。虽然此客户端的客户端配置文件使用的默认TCP连接参数应适用于大多数实现,但您可以像对任何其他客户端配置文件一样修改它们。
Config-Sync不会将对一个事件代理上的#config-sync
客户端的TCP连接参数所做的任何更改传播到其冗余配对上。因此,为确保Config-Sync功能的适当运行,如果您对一个事件代理的#config-sync
客户端配置文件的TCP连接参数进行了任何更改,您必须手动对配对的#config-sync
客户端配置文件进行相同的更改。
要修改#config-sync
客户端配置文件的TCP连接参数,请输入以下命令:
solace(configure)# config-sync
solace(configure/config-sync)# client-profile
solace(configure/config-sync/client-profile)# tcp
CLI现在处于一个命令级别,您可以从这里修改#config-sync
客户端的TCP连接参数。有关信息,请参见TCP设置。
修改Config-Sync安全认证参数
如果您正在使用Config-Sync的客户端证书认证,您可以指定允许的证书链的最大深度,以及是否严格验证证书中列出的日期。
有关配置证书验证设置的详细信息,请参见配置服务器证书验证设置。
最大证书链深度
要设置证书链允许的最大深度,请输入以下命令:
solace(configure)# config-sync
solace(configure/config-sync)# authentication client-certificate
solace(...ync/authentication/client-certificate)# max-certificate-chain-depth <max-depth>
其中:
<max-depth>
是一个从0到8的数字,指定证书链中可能存在的签名CA证书的最大数量。默认值为3。
此命令的否定版本(no max-certificate-chain-depth
)将此参数重置为其默认值。
验证证书日期
证书可能指定了它们有效的时间范围。此设置将启用或禁用这些日期的验证。如果禁用,即使证书中提供的有效日期范围未得到满足,也会接受证书。
要启用Config-Sync的证书日期验证,请输入以下命令:
solace(configure)# config-sync
solace(configure/config-sync)# authentication client-certificate
solace(...ync/authentication/client-certificate)# validate-certificate-date
默认情况下,validate-certificate-date
是启用的。
此命令的否定版本(no validate-certificate-date
)将禁用证书中“not before”和“not after”日期的验证。
查看Config-Sync信息
要查看事件代理的Config-Sync信息,请输入以下命令:
solace> show config-sync [database [router | message-vpn <vpn-name>] [detail | remote]]
其中:
database router
请求显示给定事件代理的系统级Config-Sync信息。
database message-vpn <vpn-name>
请求仅显示给定消息VPN名称的消息VPN级Config-Sync信息。<vpn-name>
是消息VPN的名称,可以包含通配符。
detail
请求显示给定系统级或消息VPN级Config-Sync信息的详细信息。
remote
请求显示使用Config-Sync的其他事件代理配置的最 新信息。例如,它可能显示事件代理的HA配对和所有已知的消息VPN配置。它还可能显示复制的消息VPN。
在HA部署中,Config-Sync数据库中的事件代理和消息VPN的所有权始终是领导者。只有在待机复制配对上启用复制的消息VPN可以有追随者所有权。