要监控的内容

Edge for Private Cloud v4.18.05

通常,在生产设置中,需要在用于私有云部署的 Apigee Edge 中启用监控机制。这些监控方法会在出现错误或故障时向网络管理员(或运维人员)发出警告。生成的每个错误都会在 Apigee Edge 中以提醒形式报告。如需详细了解提醒,请参阅监控最佳实践

为方便起见,Apigee 组件主要分为两类:

  • Apigee 特定的 Java 服务器服务:包括管理服务器、消息处理器、Qpid 服务器和 Postgres 服务器。
  • 第三方服务:这些服务包括 Nginx 路由器、Apache Cassandra、Apache ZooKeeper、OpenLDAP、PostgreSQL 数据库和 Qpid。

在 Apigee Edge 的本地部署中,下表简要介绍了您可以监控的参数:

组件 系统检查 进程级统计信息 API 级别检查 消息流检查 特定于组件

Apigee 专属 Java 服务

管理服务器

消息处理器

Qpid 服务器

Postgres 服务器

第三方服务

Apache Cassandra

Apache ZooKeeper

OpenLDAP

PostgreSQL 数据库

Qpid

Nginx 路由器

通常,安装 Apigee Edge 后,您可以执行以下监控任务,以跟踪适用于私有云的 Apigee Edge 安装的性能。

系统健康检查

请务必在更高的级别测量系统运行状况参数(如 CPU 利用率、内存利用率和端口连接性),这一点非常重要。您可以监控以下参数,了解系统运行状况的基本信息。

  • CPU 利用率:指定有关 CPU 利用率的基本统计信息(用户/系统/IO 等待/空闲)。例如,系统使用的 CPU 总数。
  • 可用内存/已使用内存:以字节为单位指定系统内存利用率。 例如,系统使用的物理内存。
  • 磁盘空间使用量:根据当前磁盘使用量指定文件系统信息。例如,系统使用的硬盘空间。
  • 加载平均值:指定等待运行的进程数量。
  • 网络统计信息:传输和接收的网络数据包和/或字节数,以及有关指定组件的传输错误。

进程/应用检查

在进程级别,您可以查看有关正在运行的所有进程的重要信息。例如,其中包括进程或应用使用的内存和 CPU 使用情况统计信息。对于 qpidd、postgres postmaster、java 等进程,您可以监控以下内容:

  • 进程识别:识别特定的 Apigee 进程。例如,您可以监控 Apigee 服务器 Java 进程是否存在。
  • 线程统计信息:查看进程使用的底层线程模式。例如,您可以监控所有进程的峰值线程数和线程数。
  • 内存利用率:查看所有 Apigee 进程的内存用量。 例如,您可以监控堆内存用量、进程使用的非堆内存用量等参数。

API 级别检查

在 API 级别,您可以监控服务器是否已针对 Apigee 代理的常用 API 调用启动并运行。例如,您可以调用以下 c网址 命令,对管理服务器、路由器和消息处理器执行 API 检查:

curl http://host:port/v1/servers/self/up

其中,host 是 Apigee Edge 组件的 IP 地址。port 编号特定于每个 Edge 组件。例如:

管理服务器:8080

  • 路由器:8081
  • 消息处理器:8082
  • 其他相关人员

如需了解如何为每个组件运行此命令,请参阅以下各个部分。

此调用会返回“true”和“false”。为了获得最佳结果,您还可以直接在后端(Apigee 软件与之交互的后端)发出 API 调用,以快速确定错误是存在于 Apigee 软件环境中还是后端中。

消息流检查

您可以从路由器和消息处理器收集有关消息流模式/统计信息的数据。这样一来,您可以监控以下内容:

  • 活跃客户端数量
  • 响应数量(10X、20X、30X、40X 和 50X)
  • 连接失败

这有助于您提供 API 消息流的信息中心。如需了解详情,请参阅如何监控

消息处理器的路由器健康检查

路由器会实施健康检查机制,以确定哪个消息处理器按预期运行。如果检测到消息处理器发生故障或运行缓慢,路由器可以自动让消息处理器退出轮替。如果发生这种情况,路由器会将“标记下”消息写入位于 /opt/apigee/var/log/edge-router/logs/system.log 的路由器日志文件。

您可以监控路由器日志文件中是否有这些消息。例如,如果路由器使消息处理器退出轮替,它将以下形式将消息写入日志:

2014-05-06 15:51:52,159 org: env: RPCClientClientProtocolChildGroup-RPC-0 INFO CLUSTER - ServerState.setState() : State of 2a8a0e0c-3619-416f-b037-8a42e7ad4577 is now DISCONNECTED. handle = MP_IP at 1399409512159
2014-04-17 12:54:48,512 org: env: nioEventLoopGroup-2-2 INFO HEARTBEAT - HBTracker.gotResponse() : No HeartBeat detected from /MP_IP:PORT Mark Down

其中,MP_IP:PORT 是消息处理器的 IP 地址和端口号。

如果稍后路由器执行健康检查并确定消息处理器运行正常,则路由器会自动将消息处理器重新置于轮替状态。该路由器还会以如下形式将“标记”消息写入日志:

2014-05-06 16:07:29,054 org: env: RPCClientClientProtocolChildGroup-RPC-0 INFO CLUSTER - ServerState.setState() : State of 2a8a0e0c-3619-416f-b037-8a42e7ad4577 is now CONNECTED. handle = IP at 1399410449054
2014-04-17 12:55:06,064 org: env: nioEventLoopGroup-4-1 INFO HEARTBEAT - HBTracker.updateHB() : HeartBeat detected from IP:PORT Mark Up