要监控的内容

一般来说,在生产设置中,您应在 Apigee Edge for Private Cloud 部署中启用监控机制。这些监控技术会向网络管理员(或运维人员)发出错误或故障警告。生成的每个错误都会在 Apigee Edge 中报告为提醒。如需详细了解提醒,请参阅监控最佳实践

Apigee 组件主要分为两类:

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

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

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

特定于 Apigee 的 Java 服务

管理服务器

消息处理器

Qpid 服务器

Postgres 服务器

第三方服务

Apache Cassandra

Apache ZooKeeper

SymasLDAP

PostgreSQL 数据库

Qpid

Nginx 路由器

一般来说,安装 Apigee Edge 后,您可以执行以下监控任务来跟踪 Apigee Edge for Private Cloud 安装的性能。

系统健康检查

从更高层面衡量 CPU 利用率、内存利用率和端口连接性等系统健康状况参数非常重要。您可以监控以下参数,了解系统健康状况的基本信息。

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

流程/应用检查

在进程级别,您可以查看有关所有正在运行的进程的重要信息。例如,这些指标包括进程或应用使用的内存和 CPU 用量统计信息。对于 Qpid、Postgres Postmaster、Java 等进程,您可以监控以下内容:

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

API 级别检查

在 API 级别,您可以监控服务器是否正在运行,以了解 Apigee 代理的常用 API 调用。例如,您可以调用以下 curl 命令,对管理服务器、路由器和消息处理器执行 API 检查:

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

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

管理服务器:8080

  • 路由器:8081
  • 消息处理器:8082
  • 等等

如需了解如何针对每个组件运行此命令,请参阅下文中的各个部分

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

消息流检查

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

  • 有效客户数量
  • 响应数量(10 倍、20 倍、30 倍、40 倍和 50 倍)
  • 连接失败

这有助于您为 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