监控最佳实践

监控提醒

借助 Apigee Edge,您可以在因事件失败而发生错误或失败时,将提醒转发到 syslog 或外部监控系统/工具。这些提醒可以是系统级提醒/事件,也可以是应用级提醒/事件。应用级提醒大多是根据生成的事件创建的自定义提醒。网络管理员通常会配置自定义条件。如需详细了解提醒,请与 Apigee 支持团队联系。

设置提醒阈值

设置需要达到的阈值,系统才会生成提醒。具体设置取决于您的硬件配置。阈值应与您的容量相关联。例如,如果您只有 6GB 的容量,Apigee Edge 的容量可能过低。您可以使用等于 (=) 或大于 (>) 条件来指定阈值。您还可以指定连续两次生成提醒之间的时间间隔。您可以使用小时/分钟/秒选项。

设置系统级提醒的条件

下表介绍了相关条件:

提醒 建议的阈值 说明

内存不足

500MB

内存不足,无法启动组件

磁盘空间不足 (/var/log)

8 GB

磁盘可用空间过低。

负载较高

3+

等待运行的进程意外增加

进程已停止

不适用,布尔值,值为 true 或 false

系统中的 Apigee Java 进程已停止

检查 Apigee 专用端口和第三方端口

监控以下端口,确保它们处于活动状态

  • 管理服务器、路由器和消息处理器上的端口 4526、4527 和 4528
  • 管理服务器、路由器和消息处理器上的端口 1099、1100 和 1101
  • 路由器上的端口 8081 和 15999
  • 消息处理器上的端口 8082 和 8998
  • 管理服务器上的端口 8080

请检查以下第三方端口,确保它们处于活动状态:

  • Qpid 端口 5672
  • Postgres 端口 5432
  • Cassandra 端口 7000、7199、9042、9160
  • ZooKeeper 端口 2181
  • OpenLDAP 端口 10389

如需确定每个 Apigee 组件监听 API 调用的端口,请向管理服务器(通常位于端口 8080 上)发出以下 API 调用:

curl -v -u username:password http://host:port/v1/servers?pod=gateway&region=dc-1
curl -v -u username:password http://host:port/v1/servers?pod=central&region=dc-1
curl -v -u username:password http://host:port/v1/servers?pod=analytics&region=dc-1

这些命令的输出将包含类似于以下内容的部分。http.management.port 部分会提供指定组件的端口号。

{
  "externalHostName" : "localhost",
  "externalIP" : "111.222.333.444",
  "internalHostName" : "localhost",
  "internalIP" : "111.222.333.444",
  "isUp" : true,
  "pod" : "gateway",
  "reachable" : true,
  "region" : "default",
  "tags" : {
    "property" : [ {
      "name" : "Profile",
      "value" : "Router"
    }, {
      "name" : "rpc.port",
      "value" : "4527"
    }, {
      "name" : "http.management.port",
      "value" : "8081"
    }, {
      "name" : "jmx.rmi.port",
      "value" : "1100"
    } ]
  },
  "type" : [ "router" ],
  "uUID" : "2d4ec885-e20a-4173-ae87-10be38b35750"
}

查看日志

日志文件会跟踪与系统事件/操作相关的消息。当进程开始和完成或发生错误情况时,日志中会显示消息。通过查看日志文件,您可以获取系统组件(例如 CPU、内存、磁盘、负载、进程等)在进入失败状态之前和之后的信息。这还可以帮助您识别和诊断当前系统问题的根源,或帮助您预测潜在的系统问题。

例如,组件的典型系统日志包含以下条目,如下所示:

TimeStamp = 25/01/13 19:25 ; NextDelay = 30
Memory
HeapMemoryUsage = {used = 29086176}{max = 64880640} ;
NonHeapMemoryUsage = {init = 24313856}{committed = 57278464} ;
Threading
PeakThreadCount = 53 ; ThreadCount = 53 ;
OperatingSystem
SystemLoadAverage = 0.25 ;

您可以修改 /opt/apigee/conf/logback.xml 文件来控制日志记录机制,而无需重启服务器。logback.xml 文件包含以下属性,用于设置日志记录机制检查 logback.xml 文件是否有配置更改的频率:

<configuration scan="true" scanPeriod="30 seconds" >

默认情况下,日志记录机制每分钟检查一次是否有更改。如果您省略 scanPeriod 属性的时间单位,则默认为毫秒。

下表列出了 Apigee Edge 私有云组件的日志文件位置。

组件 位置

管理服务器

opt/apigee/var/log/edge-management-server

路由器

opt/apigee/var/log/edge-router

消息处理器

opt/apigee/var/log/edge-message-processor

Qpid 服务器

opt/apigee/var/log/edge-qpid-server

Apigee Postgres 服务器

opt/apigee/var/log/edge-postgres-server

Edge 界面

opt/apigee/var/log/edge-ui

ZooKeeper

opt/apigee/var/log/apigee-zookeeper

OpenLDAP

opt/apigee/var/log/apigee-openldap

Cassandra

opt/apigee/var/log/apigee-cassandra

Qpidd

opt/apigee/var/log/apigee-qpidd

PostgreSQL 数据库

opt/apigee/var/log/apigee-postgresql

为消息处理器和 Edge 界面启用调试日志

如需为消息处理器启用调试日志,请执行以下操作:

  1. 在“消息处理器”节点上,修改 /opt/apigee/customer/application/messsage-processor.properties。如果该文件不存在,请创建一个。
  2. 将以下属性添加到文件中:
    conf_system_log.level=DEBUG
  3. 重启消息处理器:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

如需为 Edge 界面启用调试日志,请执行以下操作:

  1. 在 Edge 界面节点上,修改 /opt/apigee/customer/application/ui.properties。 如果该文件不存在,请创建一个。
  2. 将以下属性添加到文件中:
    conf_application_logger.application=DEBUG
  3. 重启 Edge 界面:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

apigee-monit 最佳实践

使用 apigee-monit 时,Apigee 建议您:

  • 在执行启动或停止组件的任何操作(例如备份或升级)之前,请停止监控组件
  • 使用 cron 等工具监控 apigee-monit。如需了解详情,请参阅监控 apigee-monit

监控工具

Nagios、Collectd、Graphite、Splunk、Sumologic 和 Monit 等监控工具可帮助您监控整个企业环境和业务流程。

组件 Nagios Collectd Splunk

系统级检查

CPU 利用率

可用/已用内存

磁盘空间使用情况

网络统计信息

进程

API 检查

JMX

Java

日志文件

严重事件

达到速率限制

无法连接到后端服务器 (Hybris 或 SharePoint)

无法访问 FaaS (STS)

警告事件

无法连接到 SMTP 服务器

违反了 SLA