Apigee Edge for Private Cloud 包含 apigee-monit
,这是一款基于开源 monit 实用程序的工具。apigee-monit
会定期轮询 Edge 服务;如果某个服务不可用,apigee-monit
会尝试重新启动该服务。
如需使用 apigee-monit
,您必须手动安装。它不属于标准安装。
默认情况下,apigee-monit
每 60 秒检查一次 Edge 服务状态。
快速入门
本部分介绍如何快速启动并运行 apigee-monit
。
如果您使用的是 Amazon Linux 或 Oracle-Linux-7.X,请先通过 Fedora 安装 monit。否则,请跳过此步骤。
sudo yum install -y https://kojipkgs.fedoraproject.org/packages/monit/5.25.1/1.el6/x86_64/monit-5.25.1-1.el6.x86_64.rpm
如需安装 apigee-monit
,请执行以下步骤:
安装 apigee-monit |
|
/opt/apigee/apigee-service/bin/apigee-service apigee-monit install 此命令会安装 |
|
停止监控组件 | |
/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c component_name /opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c all |
|
启动监控组件 | |
/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c component_name /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c all |
|
获取汇总状态信息 | |
/opt/apigee/apigee-service/bin/apigee-service apigee-monit report /opt/apigee/apigee-service/bin/apigee-service apigee-monit summary |
|
查看 apigee-monit 日志文件 |
|
cat /opt/apigee/var/log/apigee-monit/apigee-monit.log |
以下各部分详细介绍了这些主题以及其他主题。
关于 apigee-monit
apigee-monit
有助于确保节点上的所有组件保持正常运行。为此,它提供了各种服务,包括:
- 重启失败的服务
- 显示摘要信息
- 日志记录监控状态
- 发送通知
- 监控非 Edge 服务
Apigee 建议您监控 apigee-monit
以确保其正常运行。如需了解详情,请参阅监控 apigee-monit。
apigee-monit 架构
在安装和配置 Apigee Edge for Private Cloud 期间,您可以选择在集群中的每个节点上安装一个单独的 apigee-monit
实例。这些单独的 apigee-monit
实例彼此独立运行:它们不会将组件的状态传达给其他节点,也不会将监控实用程序的故障传达给任何中央服务。
下图显示了 5 节点集群中的 apigee-monit
架构:

apigee-monit
的单独实例在集群中每个节点上以隔离方式运行组件配置
apigee-monit
使用组件配置来确定要监控哪些组件、要检查组件的哪些方面,以及在发生故障时要采取什么措施。
默认情况下,apigee-monit
会使用预定义的组件配置来监控节点上的所有 Edge 组件。如需查看默认设置,您可以查看 apigee-monit
组件配置文件。您无法更改默认组件配置。
apigee-monit
会检查组件的不同方面,具体取决于它要检查的组件。下表列出了 apigee-monit
针对每个组件进行的检查,并显示了每个组件的配置位置。请注意,有些组件是在单个配置文件中定义的,而其他组件则有自己的配置。
组件 | 配置位置 | 监控的内容 |
---|---|---|
管理服务器 | /opt/apigee/edge-management-server/monit/default.conf |
apigee-monit 检查:
此外,对于这些组件
|
消息处理器 | /opt/apigee/edge-message-processor/monit/default.conf |
|
Postgres 服务器 | /opt/apigee/edge-postgres-server/monit/default.conf |
|
Qpid 服务器 | /opt/apigee/edge-qpid-server/monit/default.conf |
|
路由器 | /opt/apigee/edge-router/monit/default.conf |
|
Cassandra Edge 界面 SymasLDAP Postgres Qpid Zookeeper |
/opt/apigee/data/apigee-monit/monit.conf |
apigee-monit 检查:
|
以下示例展示了 edge-router
组件的默认组件配置:
check host edge-router with address localhost restart program = "/opt/apigee/apigee-service/bin/apigee-service edge-router monitrestart" if failed host 10.1.1.0 port 8081 and protocol http and request "/v1/servers/self/uuid" with timeout 15 seconds for 2 times within 3 cycles then restart if failed port 15999 and protocol http and request "/v1/servers/self" and status < 600 with timeout 15 seconds for 2 times within 3 cycles then restart
以下示例展示了经典版界面 (edge-ui
) 组件的默认配置:
check process edge-ui with pidfile /opt/apigee/var/run/edge-ui/edge-ui.pid start program = "/opt/apigee/apigee-service/bin/apigee-service edge-ui start" with timeout 55 seconds stop program = "/opt/apigee/apigee-service/bin/apigee-service edge-ui stop"
这适用于经典版界面,而不适用于组件名称为 edge-management-ui
的新版 Edge 界面。
您无法更改任何 Apigee Edge 私有云组件的默认组件配置。不过,您可以为外部服务(例如目标端点或 httpd
服务)添加自己的组件配置。如需了解详情,请参阅非 Apigee 组件配置。
默认情况下,apigee-monit
会监控其运行所在节点上的所有组件。您可以为所有组件或单个组件启用或停用此功能。如需了解详情,请参阅:
安装 apigee-monit
apigee-monit
默认未安装;升级或安装 Apigee Edge for Private Cloud 4.19.01 版或更高版本后,您可以手动安装。
本部分介绍了如何安装 apigee-monit
。
如需了解如何卸载 apigee-monit
,请参阅卸载 apigee-monit
。
安装 apigee-monit
本部分介绍了如何安装 apigee-monit
。
如需安装 apigee-monit
,请执行以下步骤:
- 使用以下命令安装
apigee-monit
:/opt/apigee/apigee-service/bin/apigee-service apigee-monit install
- 使用以下命令配置
apigee-monit
:/opt/apigee/apigee-service/bin/apigee-service apigee-monit configure
- 使用以下命令启动
apigee-monit
:/opt/apigee/apigee-service/bin/apigee-service apigee-monit start
- 在集群中的每个节点上重复此过程。
停止和启动监控组件
当服务因任何原因停止时,apigee-monit
会尝试重启该服务。
如果您想有意停止某个组件,这可能会导致问题。例如,您可能需要在备份或升级组件时停止该组件。如果 apigee-monit
在备份或升级期间重启服务,您的维护程序可能会中断,甚至失败。
以下部分介绍了停止监控组件的选项。
停止组件并取消监控
如需停止组件并取消监控,请执行以下命令:
/opt/apigee/apigee-service/bin/apigee-service apigee-monit stop-component -c component_name
apigee-cassandra
(卡桑德拉)apigee-openldap
(打开 LDAP)apigee-postgresql
(PostgreSQL 数据库)apigee-qpidd
(Qpidd)apigee-sso
(边缘单点登录)apigee-zookeeper
(ZooKeeper)edge-management-server
(管理服务器)edge-management-ui
(新版 Edge 界面)edge-message-processor
(消息处理器)edge-postgres-server
(Postgres 服务器)edge-qpid-server
(Qpid Server)edge-router
(边缘路由器)edge-ui
(传统版界面)
请注意,“all”不是 stop-component
的有效选项。您可以使用 stop-component
一次停止并取消监控一个组件。
如需重新启动组件并恢复监控,请执行以下命令:
/opt/apigee/apigee-service/bin/apigee-service apigee-monit start-component -c component_name
请注意,“all”不是 start-component
的有效选项。
如需了解如何停止和取消监控所有组件,请参阅停止所有组件并取消监控。
取消监控组件(但不停止组件)
如需取消监控组件(但不停止该组件),请执行以下命令:
/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c component_name
apigee-cassandra
(卡桑德拉)apigee-openldap
(打开 LDAP)apigee-postgresql
(PostgreSQL 数据库)apigee-qpidd
(Qpidd)apigee-sso
(边缘单点登录)apigee-zookeeper
(ZooKeeper)edge-management-server
(管理服务器)edge-management-ui
(新版 Edge 界面)edge-message-processor
(消息处理器)edge-postgres-server
(Postgres 服务器)edge-qpid-server
(Qpid Server)edge-router
(边缘路由器)edge-ui
(传统版界面)
如需恢复监控组件,请执行以下命令:
/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c component_name
取消监控所有组件(但不停止这些组件)
如需取消监控所有组件(但不停止这些组件),请执行以下命令:
/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c all
如需恢复监控所有组件,请执行以下命令:
/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c all
停止所有组件并取消监控
如需停止所有组件并取消监控,请执行以下命令:
/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c all
/opt/apigee/apigee-service/bin/apigee-all stop
如需重新启动所有组件并恢复监控,请执行以下命令:
/opt/apigee/apigee-service/bin/apigee-all start
/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c all
如需停止监控所有组件,您还可以停用 apigee-monit
,如停止、启动和停用 apigee-monit 中所述。
停止、启动和停用 apigee-monit
与任何服务一样,您可以使用 apigee-service
命令停止和启动 apigee-monit
。此外,apigee-monit
还支持 unmonitor
命令,该命令可让您暂时停止监控组件。
停止 apigee-monit
如需停止 apigee-monit
,请使用以下命令:
/opt/apigee/apigee-service/bin/apigee-service apigee-monit stop
启动 apigee-monit
如需启动 apigee-monit
,请使用以下命令:
/opt/apigee/apigee-service/bin/apigee-service apigee-monit start
停用 apigee-monit
您可以使用以下命令暂停监控节点上的所有组件:
/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c all
或者,您也可以按照卸载 apigee-monit
中的说明,从节点中卸载 apigee-monit
以永久停用它。
卸载 apigee-monit
如需卸载 apigee-monit
,请执行以下操作:
- 如果您设置了
cron
作业来监控apigee-monit
,请在卸载apigee-monit
之前移除cron
作业:sudo rm /etc/cron.d/apigee-monit.cron
- 使用以下命令停止
apigee-monit
:/opt/apigee/apigee-service/bin/apigee-service apigee-monit stop
- 使用以下命令卸载
apigee-monit
:/opt/apigee/apigee-service/bin/apigee-service apigee-monit uninstall
- 在集群中的每个节点上重复此过程。
监控新安装的组件
如果您在运行 apigee-monit
的节点上安装新组件,则可以通过执行 apigee-monit
的 restart
命令开始监控该组件。这会生成一个新的 monit.conf 文件,其中包含组件配置中的新组件。
以下示例会重新启动 apigee-monit
:
/opt/apigee/apigee-service/bin/apigee-service apigee-monit restart
自定义 apigee-monit
您可以自定义各种 apigee-monit
设置,包括:
默认的 apigee-monit 控制设置
您可以自定义默认的 apigee-monit
控制设置,例如状态检查的频率和 apigee-monit
文件的位置。为此,您可以使用含配置的代码技术修改属性文件。即使在您升级 Apigee Edge for Private Cloud 后,属性文件也会保留。
下表介绍了您可以自定义的默认 apigee-monit
控制设置:
属性 | 说明 |
---|---|
conf_monit_httpd_port |
httpd daemon 的端口。apigee-monit 使用 httpd 作为其信息中心应用,并启用报告/摘要。默认值为 2812。
|
conf_monit_httpd_allow |
对 httpd 精灵的请求的限制。apigee-monit 使用 httpd 来运行其信息中心应用并启用报告/摘要。此值必须指向本地主机(运行 httpd 的主机)。
如需要求请求包含用户名和密码,请使用以下语法: conf_monit_httpd_allow=allow username:"password"\nallow 127.0.0.1 添加用户名和密码时,请在每个限制之间插入“\n”。请勿在值中插入实际的换行符或回车符。 |
conf_monit_monit_datadir |
存储活动详情的目录。 |
conf_monit_monit_delay_time |
apigee-monit 首次加载到内存后等待运行的时间量。这只会影响第一个进程检查。apigee-monit |
conf_monit_monit_logdir |
apigee-monit 日志文件的位置。 |
conf_monit_monit_retry_time |
apigee-monit 尝试检查每个进程的频率;默认值为 60 秒。 |
conf_monit_monit_rundir |
PID 和状态文件的位置,apigee-monit 使用这些文件来检查进程。 |
如需自定义默认的 apigee-monit
控制设置,请执行以下操作:
- 修改以下文件:
/opt/apigee/customer/application/monit.properties
如果该文件不存在,请创建该文件并将所有者设置为“apigee”用户:
chown apigee:apigee /opt/apigee/customer/application/monit.properties
请注意,如果该文件已存在,其中可能定义了除上表中列出的属性之外的其他配置属性。您不应修改上述属性以外的属性。
使用新值设置或替换属性值。
例如,如需将日志文件的位置更改为
/tmp
,请添加或修改以下属性:conf_monit_monit_logdir=/tmp/apigee-monit.log
- 将所做的更改保存到
monit.properties
文件。 - 使用以下命令重新配置
apigee-monit
:/opt/apigee/apigee-service/bin/apigee-service apigee-monit configure
- 使用以下命令重新加载
apigee-monit
:/opt/apigee/apigee-service/bin/apigee-service apigee-monit reload
如果您无法重启
apigee-monit
,请按照访问apigee-monit
日志文件中的说明检查日志文件是否存在错误。 - 针对集群中的每个节点重复此过程。
全局配置设置
您可以为 apigee-monit
定义全局配置设置;例如,您可以为提醒添加电子邮件通知。为此,您可以在 /opt/apigee/data/apigee-monit
目录中创建一个配置文件,然后重启 apigee-monit
。
如需为 apigee-monit
定义全局配置设置,请执行以下操作:
- 在以下位置创建一个新的组件配置文件:
/opt/apigee/data/apigee-monit/filename.conf
其中,filename 可以是任何有效的文件名,但不能是“monit”。
- 将新配置文件的所有者更改为“apigee”用户,如以下示例所示:
chown apigee:apigee /opt/apigee/data/apigee-monit/my-mail-config.conf
- 将全局配置设置添加到新文件中。以下示例配置了邮件服务器并设置了提醒接收者:
SET MAILSERVER smtp.gmail.com PORT 465 USERNAME "example-admin@gmail.com" PASSWORD "PASSWORD" USING SSL, WITH TIMEOUT 15 SECONDS SET MAIL-FORMAT { from: edge-alerts@example.com subject: Monit Alert -- Service: $SERVICE $EVENT on $HOST } SET ALERT fred@example.com SET ALERT nancy@example.com
如需查看全局配置选项的完整列表,请参阅 Monit 文档。
- 将所做的更改保存到组件配置文件。
- 使用以下命令重新加载
apigee-monit
:/opt/apigee/apigee-service/bin/apigee-service apigee-monit reload
如果
apigee-monit
未重新启动,请按照访问apigee-monit
日志文件中的说明检查日志文件是否存在错误。 - 针对集群中的每个节点重复此过程。
非 Apigee 组件配置
您可以向 apigee-monit
添加自己的配置,以便检查不属于 Apigee Edge for Private Cloud 的服务。例如,您可以使用 apigee-monit
通过向目标端点发送请求来检查 API 是否正在运行。
如需添加非 Apigee 组件配置,请执行以下操作:
- 在以下位置创建一个新的组件配置文件:
/opt/apigee/data/apigee-monit/filename.conf
其中,filename 可以是任何有效的文件名,但不能是“monit”。
您可以根据需要创建任意数量的组件配置文件。例如,您可以为要在节点上监控的每个非 Apigee 组件创建单独的配置文件。
- 将新配置文件的所有者更改为“apigee”用户,如以下示例所示:
chown apigee:apigee /opt/apigee/data/apigee-monit/my-config.conf
- 将自定义配置添加到新文件中。以下示例检查本地服务器上的目标端点:
CHECK HOST localhost_validate_test WITH ADDRESS localhost IF FAILED PORT 15999 PROTOCOL http REQUEST "/validate__test" CONTENT = "Server Ready" FOR 2 times WITHIN 3 cycles THEN alert
如需查看可能配置设置的完整列表,请参阅 monit 文档。
- 将所做的更改保存到配置文件。
- 使用以下命令重新加载
apigee-monit
:/opt/apigee/apigee-service/bin/apigee-service apigee-monit reload
如果
apigee-monit
未重新启动,请按照访问apigee-monit
日志文件中的说明检查日志文件是否存在错误。 - 针对集群中的每个节点重复此过程。
请注意,此设置仅适用于非 Edge 组件。您无法自定义 Edge 组件的组件配置。
访问 apigee-monit 日志文件
apigee-monit
会将所有活动(包括事件、重新启动、配置更改和提醒)记录在日志文件中。
日志文件的默认位置为:
/opt/apigee/var/log/apigee-monit/apigee-monit.log
您可以通过自定义 apigee-monit
控制设置来更改默认位置。
日志文件条目采用以下格式:
'edge-message-processor' trying to restart [UTC Dec 14 16:20:42] info : 'edge-message-processor' trying to restart 'edge-message-processor' restart: '/opt/apigee/apigee-service/bin/apigee-service edge-message-processor monitrestart'
您无法自定义 apigee-monit
日志文件条目的格式。
使用 apigee-monit 查看汇总状态
apigee-monit
包含以下命令,可提供节点上组件的汇总状态信息:
命令 | 用法 |
---|---|
report |
/opt/apigee/apigee-service/bin/apigee-service apigee-monit report |
summary |
/opt/apigee/apigee-service/bin/apigee-service apigee-monit summary |
下文各部分将更详细地介绍这些命令。
报告
report
命令可为您提供节点上处于以下状态的组件的汇总摘要:正常运行、停止运行、正在初始化或当前处于不受监控状态。以下示例调用了 report
命令:
/opt/apigee/apigee-service/bin/apigee-service apigee-monit report
以下示例展示了 AIO(一体化)配置中的 report
输出:
/opt/apigee/apigee-service/bin/apigee-service apigee-monit report up: 11 (100.0%) down: 0 (0.0%) initialising: 0 (0.0%) unmonitored: 1 (8.3%) total: 12 services
在此示例中,apigee-monit
报告了 12 个服务中的 11 个处于运行状态。目前未监控一项服务。
首次执行 report
命令时,您可能会收到 Connection refused
错误。在这种情况下,请等待 conf_monit_monit_delay_time
属性所指示的时长,然后重试。
摘要
summary
命令会列出每个组件并提供其状态。以下示例调用了 summary
命令:
/opt/apigee/apigee-service/bin/apigee-service apigee-monit summary
以下示例展示了 AIO(一体化)配置中的 summary
输出:
/opt/apigee/apigee-service/bin/apigee-service apigee-monit summary Monit 5.25.1 uptime: 4h 20m Service Name Status Type host_name OK System apigee-zookeeper OK Process apigee-cassandra OK Process apigee-openldap OK Process apigee-qpidd OK Process apigee-postgresql OK Process edge-ui OK Process edge-qpid-server OK Remote Host edge-postgres-server OK Remote Host edge-management-server OK Remote Host edge-router OK Remote Host edge-message-processor OK Remote Host
如果您在首次执行 summary
命令时收到 Connection refused
错误,请尝试等待 conf_monit_monit_delay_time
属性的时长,然后重试。
监控 apigee-monit
最佳实践是定期检查 apigee-monit
是否在每个节点上运行。
如需检查 apigee-monit
是否正在运行,请使用以下命令:
/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit
Apigee 建议您在运行 apigee-monit
的每个节点上定期发出此命令。一种方法是使用 cron
等实用程序,该实用程序可按预定义的时间间隔执行预定任务。
如需使用 cron
监控 apigee-monit
,请执行以下操作:
- 通过将
apigee-monit.cron
目录复制到/etc/cron.d
目录来添加cron
支持,如下例所示:cp /opt/apigee/apigee-monit/cron/apigee-monit.cron /etc/cron.d/
- 打开
apigee-monit.cron
文件进行修改。apigee-monit.cron
文件定义了要执行的cron
作业以及执行该作业的频率。以下示例显示了默认值:# Cron entry to check if monit process is running. If not start it */2 * * * * root /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit
此文件使用以下语法,其中前五个字段定义了
apigee-monit
执行其操作的时间:min hour day_of_month month day_of_week task_to_execute
例如,默认执行时间为
*/2 * * * *
,这表示cron
每 2 分钟检查一次apigee-monit
进程。您执行
cron
作业的频率不能超过每分钟一次。如需详细了解如何使用
cron
,请参阅服务器操作系统的文档或手册页。 - 更改
cron
设置以符合贵组织的政策。例如,如需将执行频率更改为每 5 分钟一次,请将作业定义设置为以下内容:*/5 * * * * root /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit
- 保存
apigee-monit.cron
文件。 - 针对集群中的每个节点重复此过程。
如果 cron
未开始观看 apigee-monit
,请检查以下各项:
cron
作业定义后有一个空行。- 文件中只定义了一个
cron
作业。(注释掉的行不计入在内。)
如果您想停止或暂时停用 apigee-monit
,也必须停用此 cron
作业,否则 cron
会重新启动 apigee-monit
。
如需停用 cron
,请执行以下操作之一:
- 删除
/etc/cron.d/apigee-monit.cron
文件:sudo rm /etc/cron.d/apigee-monit.cron
如果您日后想重新启用
cron
以观看apigee-monit
,则必须重新复制该代码。OR
- 修改
/etc/cron.d/apigee-monit.cron
文件,并在作业定义行的开头添加“#”,以注释掉该作业定义;例如:# 10 * * * * root /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit