配置 IBM App Connect Enterprise (ACE)传感器
您可以在传统环境或云原生环境中配置 IBM ACE 传感器。
有关监控 IBM ACE 的更多信息,请参阅《 监控 IBM App Connect Enterprise (ACE) 》。
传统的ACE环境
先决条件
在配置 IBM ACE 传感器之前,请完成以下步骤:
验证并激活资源和信息流统计收集状态。 ACE 指标只有在激活资源和报文流统计收集时才存在。
要检查资源收集状态,请运行以下命令:
mqsireportresourcestats <integrationNode> -e <integrationServer>如果资源收集状态处于非激活状态,请运行以下命令激活它:
mqsichangeresourcestats <integratorNode> -e <integrationServer> -c active要检查报文流统计的状态,请运行以下命令:
mqsireportflowstats <integratorNode> -s -e <integrationServer> -j如果消息流收集状态为非活动状态,请为指定集成服务器和节点中的所有消息流激活快照统计信息收集,然后以 JSON 格式发送数据。
要在不设置线程数据级别的情况下激活快照统计收集,请运行以下命令:
mqsichangeflowstats <integrationNode> -s -e <integrationServer> -j -c active -o json要通过设置线程数据级别激活快照统计收集,请运行以下命令:
mqsichangeflowstats <integrationNode> -s -e <integrationServer> -j -t basic -c active -o json要通过设置线程数据级别和节点数据级别来激活快照统计收集,请运行以下命令:
mqsichangeflowstats <integrationNode> -s -e <integrationServer> -j -t basic -n basic -c active -o json
注意: 若要查看每个消息流的线程使用情况,在使用 mqsichangeflowstats 命令时,需通过选项 ` -t basic` 启用线程数据。 您可以申请两种类型的数据收集:快照和存档。 快照类型是数据收集的首选。 如需更多信息,请参阅 IIB 或 ACE 文档中的相关命令。
请检查您的 ACE 是否使用 MQTT 或 IBM MQ。 以下命令用于查找MQTT或 IBM MQ 进程,并检查操作事件是否已发布到ACE传感器。
要检查 MQTT,请运行以下命令:
ps -ef | awk '/bipMQTT/ && /<integrationNode>/' mqsireportproperties <integrationNode> -b Events -o OperationalEvents/MQTT -n enabled要将 MQTT 用作 ACE 传感器中
OperationalEvents发布的目标,请完成以下步骤:请确保运行 Instana 代理的用户属于ACE组。
在
configuration.yaml文件中指定 MQTT 端口。 有关详细信息,请参阅 ACE 配置示例。注意:configuration.yaml 中的参数acePassword: ‘<VIWER_USER_PASSWORD>’和 不适用于 UnixaceUsername: ‘<VIWER_USER>’Socket。启用 MQTT。 如需了解更多信息,请访问 IBMApp Connect。
使用前述命令检查已发布的事件。
使用以下请求示例,确保连接已打开并在 MQTT 端正常工作:
使用 Unix 进行请求,收到 403 响应:
root@itm-0:~# curl --unix-socket /var/mqsi/INODE4.uds http://127.0.0.1:4417/apiv2/servers {"name":"servers","type":"integrationServers","uri":"/apiv2/servers","hasChildren":true,"children":[{"name":"IServer_2","hasChildren":true,"uri":"/apiv2/servers/IServer_2","type":"integrationServer","apiResponseCode":403}]}请求带用户名,响应 403:
root@itm-0:~# curl -u user1 --unix-socket /var/mqsi/INODE4.uds http://127.0.0.1:4417/apiv2/servers Enter host password for user 'user1': {"name":"servers","type":"integrationServers","uri":"/apiv2/servers","hasChildren":true,"children":[{"name":"IServer_2","hasChildren":true,"uri":"/apiv2/servers/IServer_2","type":"integrationServer","apiResponseCode":403}]}移除 Unix 接口并提供用户,响应 200:
root@itm-0:~# curl -u user1 http://127.0.0.1:4417/apiv2/servers Enter host password for user 'user1': {"name":"servers","type":"integrationServers","uri":"/apiv2/servers","hasChildren":true,"children":[{"name":"IServer_2","hasChildren":true,"uri":"/apiv2/servers/IServer_2","type":"integrationServer","active":{"processId":26013,"isRunning":true,"state":"started"},"apiResponseCode":200}]}将 "root "添加到 ACE 组后,无需提供用户名和密码,响应 200:
root@itm-0:~# grep root /etc/group root:x:0: mqbrkrs:x:1001:mquser,mq,root root@itm-0:~# curl --unix-socket /var/mqsi/INODE4.uds http://127.0.0.1:4417/apiv2/servers {"name":"servers","type":"integrationServers","uri":"/apiv2/servers","hasChildren":true,"children":[{"name":"IServer_2","hasChildren":true,"uri":"/apiv2/servers/IServer_2","type":"integrationServer","active":{"processId":26013,"isRunning":true,"state":"started"},"apiResponseCode":200}]}
要检查 IBM MQ ,请运行以下命令:
mqsilist | grep <integrationNode> # check there is a default queue manager configured. mqsireportproperties <integrationNode> -b Events -o OperationalEvents/MQ -n enabled要在 ACE 中使用 IBM MQ ,请按照以下步骤操作:
为集成服务器、信息流和流节点的性能指标数据流设置通道或使用现有通道。
确保可以通过
configuration.yaml文件中指定的用户名或密码访问通道。在
configuration.yaml文件中指定队列管理器名称和监听端口,以及通道名称、用户名和密码。 有关通道配置的更多信息,请参阅《 解决 CHLAUTH 访问问题 》。
如果受监控的服务器是独立的集成服务器,请确保满足以下要求:
- 配置事件消息的发布,因为默认情况下是禁用的。 ACE 传感器只监控
OperationalEvents,而不是BusinessEvents。 如需更多信息,请参阅 “配置事件消息的发布 ”。 - 使用 ACE 11.0.0.11 或更高版本。 否则,您就无法使用 UNIX 域套接字,因为每个服务器都不存在
.uds文件。
- 配置事件消息的发布,因为默认情况下是禁用的。 ACE 传感器只监控
要在传统 ACE 环境中启用自动发现功能,请确保满足以下要求:
- IBM ACE 传感器已在文件中启用,无需配置集成节点或服务器
<agent_install_dir>/etc/instana/configuration.yaml。 - 启动代理的用户具有访问 ACE 工作路径(例如)的权限
/var/mqsi/。 - 相关集成节点的 MQTT 进程正在正常运行。 要进行检查,请在主机上运行该
ps -ef | grep -E 'bipMQTT.*<integrationNode>’命令。
注意: 通过自动发现功能,即使未满足所有先决条件,您仍可在 Instana 用户界面的主机仪表盘上查看所有正在运行的集成服务器。- IBM ACE 传感器已在文件中启用,无需配置集成节点或服务器
对于 IBM ACE 13及更高版本,集成服务器默认使用 HTTPS 协议,并采用自签名证书。 若要支持 Instana 的监控功能,请选择以下选项之一:
- 使用包含有效证书的适当 JKS 密钥库启动集成服务器。 如果您正在使用 HTTPS 并配有正确的密钥库,请在代理的
configuration.yaml文件中配置 和keystorePasswordkeystore参数。 - 将集成服务器的协议从 HTTPS 更改为 HTTP。
- 使用包含有效证书的适当 JKS 密钥库启动集成服务器。 如果您正在使用 HTTPS 并配有正确的密钥库,请在代理的
过程
对于传统的 ACE 环境, Instana 支持对远程和本地 IBM ACE 实例进行监控。 您需要在代理配置 <agent_install_dir>/etc/instana/configuration.yaml 文件中配置字段。 您可以使用以下配置:
要使用远程监控,请将目标 ACE 服务器的 IP 地址设置为主机值。
要使用本地监控,请注释掉主机属性。 默认使用本地监控。
要监控不同主机上具有相同名称的代理服务器或集成服务器,请使用
brokerName:x或integrationServer:x作为代理服务器或集成服务器的密钥。 例如,BK1:1和BK:2。要使用自动发现功能,请不要在
NodesOrServers下设置任何字段。 ACE 传感器的自动发现功能可发现主机上运行的所有集成服务器,并开始自动监控它们,而无需任何配置。
如需了解如何获取这些字段的值,请参阅《 ACE 传感器配置实用技巧 》博客。
有关 ACE 配置,请参阅以下 configuration.yaml 文件示例:
com.instana.plugin.ace:
enabled: true
poll_rate: 60
forceRemote: false
flowNodesExcludedRegex: ''
messageFlow:
limit: 0
sortByMetric: 'MaximumElapsedTime'
NodesOrServers:
SampleNode/Server:
host: '<ACE_SERVEr_HOST>'
restApiPort: '<ACE_REST_API_PORT>'
aceUsername: '<VIWER_USER>'
acePassword: '<VIWER_USER_PASSWORD>'
keystore: '<ACE_KEYSTORE_PATH>'
keystorePassword: '<ACE_KEYSTORE_PASSWORD>'
excludedServers: '<INTEGRATION_SERVER_NAMES>'
flowNodesExcludedRegex: ''
messageFlow:
limit: 0
sortByMetric: 'MaximumElapsedTime'
availabilityZone: 'IBM ACE Custom Zone'
mqHost: '<MQ_HOST>'
mqport: '<MQ_LISTENING_PORT>'
queuemanagerName: '<QMGR_NAME>'
channel: '<SVRCONN_CHANNEL>'
mqUsername: '<AUTHORIZED_USER>'
mqPassword: '<USER_PASSWORD>'
mqKeystore: '<MQ_KEYSTORE_PATH>'
mqKeystorePassword: '<MQ_KEYSTORE_PASSWORD>'
mqCipherSuite: '<MQ_CIPHER_SUITE>'
配置轮询频率
您可以通过在 configuration.yaml 代理配置文件中使用 poll_rate 该参数,配置 Instana 轮询 IBM ACE 以收集数据和指标的频率,如下例所示:
com.instana.plugin.ace:
poll_rate: 60
配置参数
下表列出了配置参数及其说明:
| 参数 | 描述 | 必需 | 缺省值 |
|---|---|---|---|
enabled |
启用或禁用插件。 | 是 | true |
poll_rate |
设置插件的轮询速率(以秒为单位)。 最小值为 20 秒。 | 是 | 60 |
forceRemote |
强制插件使用远程监控而非本地监控。 | False | false |
flowNodesExcludedRegex |
设置全局正则表达式,用于从所有集成节点中过滤排他性流量节点。 | 仅在需要从所有受监控节点或服务器中过滤出某些类型的流量节点时才需要。 | 不适用 |
flowNodeLimit |
限制每个消息流中被监控的流节点数量。 当设置为 `0` 时,将监控所有流节点。 当设置为任何大于 0 的数值 N 时,仅监控 N 个速度最慢的流节点。 | False | 0 |
limit |
限制被监控或报告的消息流的数量(嵌套在 对象 messageFlow 之下)。 当设置为 0 时, Instana 会监听所有消息流。 当设置为大于 0 的值时,它仅根据性能指标监控前 N 个流量。 |
False | 0 |
sortByMetric |
指定用于对流量进行排序的性能指标,当 limit 大于 0 时生效(位于 对象 messageFlow 之下)。 Instana 按降序对数据流进行排序。 支持以下值: MaximumElapsedTime 和 ThreadUtilization。 |
False | MaximumElapsedTime |
SampleNode/Server |
定义集成节点或独立集成服务器。 | 是。 但是,如果计划使用自动发现功能,则不再需要包含该参数的所有后续字段。 | 不适用 |
host |
设置 ACE 服务器的主机。 | 仅多实例或 RDQM 系统的远程监控或 HA 才需要。 对于 HA,请用逗号分隔多个主机。 | 不适用 |
restApiPort |
设置 ACE 服务器的 REST API 端口。 | 是 | 不适用 |
aceUsername |
设置 ACE 服务器“ REST API ”服务的用户名。 | 仅在启用安全功能时才需要。 | 不适用 |
acePassword |
设置 ACE 服务器上“ REST API ”服务的密码。 | 仅在启用安全功能时才需要。 | 不适用 |
keystore |
设置 HTTPS 连接的密钥库路径。 | 仅在启用 HTTPS 时才需要。 | 不适用 |
keystorePassword |
设置用于 HTTPS 连接的密钥库密码。 | 仅在启用 HTTPS 时才需要。 | 不适用 |
excludedServers |
设置要从监控中排除的集成服务器名称。 | 仅在要将某些集成服务器排除在监控范围之外时才需要。 用逗号分隔多个名称。 | 不适用 |
flowNodesExcludedRegex |
设置正则表达式,用于从集成节点中过滤排他性流量节点。 | 仅在需要过滤掉某些类型的流量节点时才需要。 在此属性中设置的 regex 优先级高于全局 regex。 | 不适用 |
limit |
限制针对此特定代理(位于 对象 messageFlow 之下)进行监控或报告的消息流数量。 此配置将覆盖全局设置。 |
False | 继承自全局设置 |
sortByMetric |
指定用于对该特定代理的流进行排序的性能指标(位于 对象 messageFlow 之下)。 此配置将覆盖全局设置。 |
False | 继承自全局设置 |
availabilityZone |
定义自定义区域。 | 仅在需要自定义区段时才需要。 默认使用经纪人名称。 | IBM ACE Custom Zone |
mqHost |
设置 IBM MQ 的主机名或IP地址。 | 仅当可以通过外部 IP 地址访问 IBM MQ 时才需要。 | 不适用 |
mqport |
设置MQTT或 IBM MQ 的监听端口。 | 是 | 不适用 |
queuemanagerName |
设置队列管理器的名称。 | 仅适用于 IBM MQ。 | 不适用 |
channel |
设置 SVRCONN 类型的授权通道。 | 仅适用于 IBM MQ。 | 不适用 |
mqUsername |
设置 IBM MQ 频道的授权用户。 | 仅当为 IBM MQ 启用了chlauth、connauth或两者时才需要。 | 不适用 |
mqPassword |
设置 IBM MQ 频道的授权用户密码。 | 仅当为 IBM MQ 启用了chlauth、connauth或两者时才需要。 | 不适用 |
mqKeystore |
设置 TLS 连接的密钥库路径。 | 仅当为 IBM MQ 启用了 TLS 时才需要此设置。 | 不适用 |
mqKeystorePassword |
设置用于 TLS 连接的密钥库密码。 | 仅当为 IBM MQ 启用了 TLS 时才需要此设置。 | 不适用 |
mqCipherSuite |
设置 TLS 连接的密码套件。 | 仅当为 IBM MQ 启用了 TLS 时才需要。 | 不适用 |
sortByMetric 参数(嵌套在 之下 messageFlow)仅在 limit 大于 0 时生效。 如果 limit 设置为 0(监控所有流量),则 sortByMetric 参数将被忽略,因为不会执行流量限制。
ACE 配置示例
使用自动发现功能的配置(仅适用于 ACE 11 及更高版本):
com.instana.plugin.ace: enabled: true poll_rate: 60使用 MQTT 进行本地监控的配置:
com.instana.plugin.ace: enabled: true poll_rate: 60 NodesOrServers: BK1: restApiPort: '4414' aceUsername: 'viewer' acePassword: 'mypassword' mqport: '11883'使用 IBM MQ 配置本地监控和远程监控:
com.instana.plugin.ace: enabled: true poll_rate: 60 NodesOrServers: BK1: # remote monitoring host: 'ace.example.com' restApiPort: '4414' aceUsername: 'viewer' acePassword: 'mypassword' mqport: '2121' queuemanagerName: 'QM1' channel: 'INSTANA.SVRCONN' mqUsername: 'mquser' mqPassword: 'password' mqKeystore: '/path/to/mq/keystore.jks' mqKeystorePassword: 'securepassword' BK1:1: # local monitoring restApiPort: '4414' aceUsername: 'viewer' acePassword: 'mypassword' mqport: '2121' queuemanagerName: 'QM1' channel: 'INSTANA.SVRCONN' mqUsername: 'mquser' mqPassword: 'password'排除集成服务器和某些流量节点的 HA 支持配置:
com.instana.plugin.ace: enabled: true poll_rate: 60 NodesOrServers: BK1: host: 'ha-host1.com, ha-host2.com' restApiPort: '4414' aceUsername: 'viewer' acePassword: 'mypassword' excludedServers: 'IS1, IS2' # Integration servers IS1, IS2 will be excluded from monitoring. flowNodesExcludedRegex: 'MSLMapping.*' # Flow nodes that have types beginning with "MSLMapping" will be excluded from monitoring mqport: '2121' queuemanagerName: 'QM1' channel: 'INSTANA.SVRCONN' mqUsername: 'mquser' mqPassword: 'password'全局消息流限制和基于性能的排序配置:
com.instana.plugin.ace: enabled: true poll_rate: 60 messageFlow: # Global message flow configuration limit: 20 # Monitor only top 20 flows globally sortByMetric: 'MaximumElapsedTime' # Sort by maximum elapsed time NodesOrServers: BROKER1: restApiPort: '4414' aceUsername: 'viewer' acePassword: 'mypassword' mqport: '1414' queuemanagerName: 'QM1' channel: 'INSTANA.SVRCONN' mqUsername: 'mquser' mqPassword: 'password'针对每个代理的消息流限制覆盖配置:
com.instana.plugin.ace: enabled: true poll_rate: 60 messageFlow: # Global defaults limit: 10 # Monitor top 10 flows globally sortByMetric: 'MaximumElapsedTime' # Sort by maximum elapsed time NodesOrServers: BROKER1: restApiPort: '4414' aceUsername: 'viewer' acePassword: 'mypassword' messageFlow: # Override global settings for this broker limit: 5 # Monitor only top 5 flows for this broker sortByMetric: 'ThreadUtilization' # Sort by thread utilization for this broker mqport: '1414' queuemanagerName: 'QM1' channel: 'INSTANA.SVRCONN' mqUsername: 'mquser' mqPassword: 'password' BROKER2: restApiPort: '4415' aceUsername: 'viewer' acePassword: 'mypassword' # This broker inherits global settings: limit=10, sortByMetric='MaximumElapsedTime' mqport: '1415' queuemanagerName: 'QM2' channel: 'INSTANA.SVRCONN' mqUsername: 'mquser' mqPassword: 'password'流量节点限制的配置:
com.instana.plugin.ace: enabled: true poll_rate: 60 flowNodeLimit: 10 # Monitor only top 10 slowest flow nodes per message flow NodesOrServers: BROKER1: restApiPort: '4414' aceUsername: 'viewer' acePassword: 'mypassword' flowNodeLimit: 5 # Override: monitor only top 5 flow nodes for this broker mqport: '1414' queuemanagerName: 'QM1' channel: 'INSTANA.SVRCONN' mqUsername: 'mquser' mqPassword: 'password'
云原生 ACE 环境
在云原生环境中, IBM ACE 传感器的配置会自动发现。