适用于私有云的 Apigee Edge 包含 apigee-monit
,这是一个基于开源监控实用程序的工具。apigee-monit
会定期轮询 Edge 服务;如果服务不可用,apigee-monit
会尝试重启它。
如需使用 apigee-monit
,您必须手动安装。它不是标准安装的一部分。
默认情况下,apigee-monit
每 60 秒检查一次 Edge 服务的状态。
快速入门
本部分介绍了如何快速上手使用 apigee-monit
。
如果您使用的是 Amazon Linux,请先安装 Fedora。否则,请跳过此步骤。
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
有助于确保节点上的所有组件都保持正常运行。为此,它提供各种服务,包括:
- 重启失败的服务
- 显示摘要信息
- Logging 监控状态
- 发送通知
- 监控非 Edge 服务
Apigee 建议您监控 apigee-monit
以确保其正在运行。如需了解详情,请参阅监控 apigee-monit。
Apigee-monit 架构
在安装和配置适用于私有云的 Apigee Edge 期间,您可以选择在集群中的每个节点上安装单独的 apigee-monit
实例。这些单独的 apigee-monit
实例彼此独立运行:它们不会将其组件状态传达给其他节点,也不会将监控实用程序本身的故障传达给任何中央服务。
下图显示了 5 节点集群中的 apigee-monit
架构:
支持的平台
apigee-monit
支持您的私有云集群使用以下平台。(apigee-monit
支持的操作系统取决于 Private Cloud 的版本。)
操作系统 | 私有云版本 | ||
---|---|---|---|
v4.50.00 | v4.51.00 | v4.52.00 | |
CentOS | 7.5、7.6、7.7、7.8 | 7.5、7.6、7.7、7.8 | 7.5、7.6、7.7、7.8 |
RedHat Enterprise Linux (RHEL) | 7.5、7.6、7.7、7.8 | 7.5、7.6、7.7、7.8、7.9、8.0 | 7.5、7.6、7.7、7.8、7.9、8.0 |
Oracle Linux | 7.5、7.6、7.7、7.8 | 7.5、7.6、7.7、7.8 | 7.5、7.6、7.7、7.8 |
* 虽然在技术上不受支持,但您可以在 CentOS/RHEL/Oracle 6.9 版上为适用于私有云 4.19.01 的 Apigee Edge 安装和使用 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 界面 OpenLDAP 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
;您可以在升级或安装 4.19.01 版或更高版本的 Apigee Edge for Private Cloud 后手动安装它。
本部分介绍如何在支持的平台上安装 apigee-monit
。
如需了解如何uninstalling 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_namecomponent_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
(传统版界面)
请注意,“全部”不是 stop-component
的有效选项。使用 stop-component
时,您一次只能停止和取消监控一个组件。
如需重启组件并恢复监控,请执行以下命令:
/opt/apigee/apigee-service/bin/apigee-service apigee-monit start-component -c component_name
请注意,“全部”不是 start-component
的有效选项。
如需了解如何停止和取消监控所有组件,请参阅停止所有组件并取消监控。
取消监控组件(但不停止)
要取消监控某个组件(但不将其停止),请执行以下命令:
/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c component_namecomponent_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
,请先移除cron
作业,然后再卸载apigee-monit
: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,属性文件也将保留。
下表介绍了您可以自定义的默认 apigee-monit
控件设置:
媒体资源 | 说明 |
---|---|
conf_monit_httpd_port |
httpd 守护程序的端口。apigee-monit 将 httpd 用于其信息中心应用,并启用报告/摘要。默认值为 2812。
|
conf_monit_httpd_allow |
对向 httpd 守护程序发出的请求的限制。apigee-monit 使用 httpd 运行其信息中心应用并启用报告/摘要。此值必须指向 localhost(运行 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 的服务。例如,您可以使用 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
,则必须重新复制。或
- 修改
/etc/cron.d/apigee-monit.cron
文件,并通过在行开头添加“#”注释掉作业定义;例如:# 10 * * * * root /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit