适用于私有云的 Edge v4.19.01
本文档介绍了本地部署所支持的组件的监控技术, Apigee Edge 的部署指南
概览
Edge 支持通过多种方式获取服务详情以及查看 状态。下表列出了您可以对每个符合条件的执行检查的检查类型 服务:
管理 API | |||||||
服务 | 内存用量 [JMX*] | 服务检查 | 用户/组织/ 部署状态 | axstatus | 数据库检查 | apigee-service 状态 |
apigee-monit ** |
管理服务器 | |||||||
消息处理器 | |||||||
Postgres | |||||||
Qpid | |||||||
路由器 | |||||||
了解详情 | 了解详情 | 了解详情 | 了解详情 | 了解详情 | 了解详情 | 了解详情 | |
* 在使用 JMX 之前,必须先将其启用,因为 启用 JMX 一文中的说明。 ** |
JMX 和 Management API 监控端口
每个组件都支持在不同端口上的 JMX 和 Management API 监控调用。通过 下表列出了各类服务器的 JMX 和 Management API 端口:
组件 | JMX 端口 | Management API 端口 |
---|---|---|
管理服务器 | 1099 | 8080 |
路由器 | 1100 | 8081 |
消息处理器 | 1101 | 8082 |
Qpid | 1102 | 8083 |
Postgres | 1103 | 8084 |
使用 JMX 进行监控
Management Server、Message Processor、Qpid 和 Postgres 的监控流程 使用 JMX。但是,默认情况下,仅对 Cassandra 启用 JMX, 其他 Edge 组件。因此,必须先为每个组件单独启用 JMX,然后才能 可以监控它们。
JMX 身份验证默认处于停用状态。您可以为所有用户启用 JMX 身份验证, 组件。对于 Cassandra,请按照 为 Cassandra 启用 JMX 身份验证。
启用 JMX
JMX 默认仅对 Cassandra 启用,而对于所有其他 Edge 则默认停用 组件。本部分介绍了如何为其他 Edge 组件启用 JMX。
如需启用 JMX,请执行以下操作:
- 修改该组件的配置文件。此文件位于
opt/apigee/edge-component_name/bin/start
。正式版 这些配置文件会位于不同的机器上请在每台服务器上的以下文件位置中进行选择:
- 管理服务器:
/opt/apigee/edge-management-server/bin/start
- 消息处理器:
/opt/apigee/edge-message-processor/bin/start
- Postgres:
/opt/apigee/edge-postgres-server/bin/start
- Qpid:
/opt/apigee/edge-qpid-server/bin/start
- 路由器:
/opt/apigee/edge-router/bin/start
例如,管理服务器在其服务器上的配置文件为
/opt/apigee/edge-management-server/bin/start
。 - 管理服务器:
- 将以下
com.sun.management.jmxremote
选项添加到exec
中 代码行:-Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=port_number \ -Dcom.sun.management.jmxremote.local.only=false \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false
其中,port_number 是服务的 JMX 端口。要获取服务的 JMX,请执行以下操作: 端口号,请参阅 JMX 和 Management API 监控端口。
例如,要在管理服务器上启用 JMX,请将以下内容添加到管理服务器上的 服务器的配置文件:
exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts \ -Djava.security.auth.login.config=$conf_path/jaas.config \ -Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path \ -Ddata.dir=$data_dir \ -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=1099 \ -Dcom.sun.management.jmxremote.local.only=false \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false \ $* $debug_options com.apigee.kernel.MicroKernel
此示例为管理服务器指定了端口 1099。如前所述,每个 都有自己的端口号。
配置文件中修改的行如下所示:
exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts -Djava.security.auth.login.config=$conf_path/jaas.config -Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path -Ddata.dir=$data_dir -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false $* $debug_options com.apigee.kernel.MicroKernel
- 保存配置文件。
- 使用
restart
命令重启组件。例如,要重启管理服务器,可执行以下命令:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
默认情况下,不启用 JMX 身份验证。您可以为所有用户启用 JMX 身份验证, 组件(如启用 JMX 身份验证中所述)。启用 JMX 有关 Cassandra 身份验证的信息,请参阅 为 Cassandra 启用 JMX 身份验证。
启用 JMX 身份验证
JMX 身份验证默认处于停用状态。您可以为所有用户启用 JMX 身份验证, 组件。对于 Cassandra,请按照 为 Cassandra 启用 JMX 身份验证
要启用 JMX 身份验证,请在所有设备上执行以下 change_jmx_auth
操作
节点:
/opt/apigee/apigee-service/bin/apigee-service component change_jmx_auth [options|-f config_file]
其中:
- component 是以下值之一:
<ph type="x-smartling-placeholder">
- </ph>
edge-management-server
edge-message-processor
edge-postgres-server
edge-qpid-server
edge-router
- options 会指定以下内容:
<ph type="x-smartling-placeholder">
- </ph>
-u username
-p password
-e [y|n]
(启用或停用)
- config_file 用于指定配置文件的位置
以下:
<ph type="x-smartling-placeholder">
- </ph>
JMX_USERNAME=username
JMX_ENABLED=y|n
JMX_PASSWORD=password
(如果未设置,或未传入-p
,系统会提示您)
您可以使用命令行选项或配置文件来定义用户名 密码和启用/停用状态。您不能同时指定一组选项和一项配置 文件。
以下示例使用以下命令为管理服务器启用 JMX 身份验证: 行选项:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -u foo -p bar -e y
以下示例使用的是配置文件,而不是命令行选项:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -f /tmp/my-config-file
如果您在多个节点上运行 Edge,请在所有节点上运行该命令,并指定相同的 用户名和密码。
要在命令行中停用 JMX 身份验证,请使用“-e n”选项,如下所示 显示:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -e n
使用 JConsole 进行监控
使用 JConsole(一种兼容 JMX 的工具)来管理和监控健康检查和处理统计信息。 通过 JConsole,您可以使用服务器公开的 JMX 统计信息,并将其显示在 图形界面如需了解详情,请参阅 使用 JConsole。
JConsole 使用以下服务网址来监控通过 JMX:
service:jmx:rmi:///jndi/rmi://IP_address:port_number/jmxrmi
其中:
- IP_address 是您要监控的服务器的 IP 地址。
- port_number 是您要访问的服务器的 JMX 端口号 监控。
例如,要监控管理服务器,可发出如下所示的命令(假设 该服务器的 IP 地址是 216.3.128.12):
service:jmx:rmi:///jndi/rmi://216.3.128.12:1099/jmxrmi
请注意,此示例指定的端口为 1099,即管理服务器 JMX 端口。对于其他 请参阅 JMX 和 Management API 监控端口。
下表显示了常规 JMX 统计信息:
JMX MBean | JMX 属性 |
---|---|
内存 |
HeapMemoryUsage |
NonHeapMemoryUsage |
|
用法 |
|
使用 Management API 进行监控
Edge 包含多个 API,可用于对服务器执行服务检查, 检查您的用户、组织和部署。本部分介绍了这些 API。
执行服务检查
Management API 提供了多个端点,用于监控和诊断 服务。这些端点包括:
端点 | 说明 |
---|---|
/servers/self/up |
检查服务是否正在运行。此 API 调用无需 身份验证。 如果服务正在运行,此端点会返回以下响应: <ServerField> <Up>true</Up> </ServerField> 如果服务未运行,您将收到类似于以下内容的响应 (具体取决于服务及其检查方式): curl: Failed connect to localhost:port_number; Connection refused |
/servers/self |
返回有关服务的信息,包括:
此 API 调用要求您使用 Apigee 管理员凭据进行身份验证。 |
如需使用这些端点,请通过使用curl
以下语法:
curl http://host:port_number/v1/servers/self/up -H "Accept: [application/json|application/xml]"
curl http://host:port_number/v1/servers/self -u username:password -H "Accept: [application/json|application/xml]"
其中:
- host 是您要检查的服务器的 IP 地址。如果您已登录 可以使用“localhost”;否则,请指定服务器的 IP 地址 作为用户名和密码。
- port_number 是您要检查的服务器的 Management API 端口。这是 一个不同的端口例如,管理服务器的 Management API 端口为 8080。如需查看要使用的 Management API 端口号列表,请参阅 JMX 和 Management API 监控端口
如需更改响应的格式,您可以将 Accept
标头指定为
"application/json"或“application/xml”
以下示例获取本地主机(端口 8081)上的路由器状态:
curl http://localhost:8081/v1/servers/self/up -H "Accept: application/xml"
以下示例获取了地址为 216.3.128.12(端口 8082):
curl http://216.3.128.12:8082/v1/servers/self -u sysAdminEmail:password -H "Accept: application/xml"
监控用户、组织和部署状态
您可以使用 Management API 来监控 通过发出以下命令来在管理服务器和消息处理器上创建代理:
curl http://host:port_number/v1/users -u sysAdminEmail:passwordcurl http://host:port_number/v1/organizations -u sysAdminEmail:password
curl http://host:port_number/v1/organizations/orgname/deployments -u sysAdminEmail:password
其中,port_number 是 8080(对于管理服务器)或 8082(对于邮件) 处理器。
此调用要求您使用系统管理用户名和 密码。
服务器应该返回“已部署”状态。如果这些方法失败,请执行以下操作:
- 检查服务器日志中是否存在任何错误。日志位于:
<ph type="x-smartling-placeholder">
- </ph>
- 管理服务器:
opt/apigee/var/log/edge-management-server
- 消息处理器:
opt/apigee/var/log/edge-message-processor
- 管理服务器:
- 对服务器进行调用,检查其是否正常运行。
- 从 ELB 中移除服务器,然后重启服务器:
/opt/apigee/apigee-service/bin/apigee-service service_name restart
其中 service_name 为:
edge-management-server
edge-message-processor
使用 apigee-service
命令检查状态
在以下情况下,您可以使用 apigee-service
命令对 Edge 服务进行问题排查:
登录到运行该服务的服务器。
如需使用 apigee-service
检查服务的状态,请执行以下操作:
- 登录服务器并运行以下命令:
/opt/apigee/apigee-service/bin/apigee-service service_name status
其中 service_name 是以下值之一:
- 管理服务器:
edge-management-server
- 消息处理器:
edge-message-processor
- Postgres:
edge-postgres-server
- Qpid:
edge-qpid-server
- 路由器:
edge-router
例如:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor status
- 管理服务器:
- 如果服务未运行,请启动服务:
/opt/apigee/apigee-service/bin/apigee-service service_name start
- 重新启动服务后,使用
apigee-service status
命令,或通过 Management API 创建 使用 Management API 进行监控中的说明。例如:
curl -v http://localhost:port_number/v1/servers/self/up
其中,port_number 是服务的 Management API 端口。
此示例假定您已登录服务器并且可以使用“localhost”用作 主机名要使用 Management API 远程检查状态,必须指定 IP 地址 并在您的 API 中包含系统管理员用户名和密码 调用。
Postgres 监控
Postgres 支持多种实用程序,可用于检查其状态。这些实用程序 具体说明如下。
在 Postgres 上查看组织和环境
您可以检查在 Postgres Server 上进行初始配置的组织和环境名称
方法是发出以下 curl
命令:
curl -v http://postgres_IP:8084/v1/servers/self/organizations
系统应显示组织和环境名称。
验证分析状态
您可以通过发出以下命令来验证 Postgres 和 Qpid 分析服务器的状态
curl
命令:
curl -u userEmail:password http://host:port_number/v1/organizations/orgname/environments/envname/provisioning/axstatus
对于所有的分析服务器,系统应显示成功状态,如下例所示 显示:
{ "environments" : [ { "components" : [ { "message" : "success at Thu Feb 28 10:27:38 CET 2013", "name" : "pg", "status" : "SUCCESS", "uuid" : "[c678d16c-7990-4a5a-ae19-a99f925fcb93]" }, { "message" : "success at Thu Feb 28 10:29:03 CET 2013", "name" : "qs", "status" : "SUCCESS", "uuid" : "[ee9f0db7-a9d3-4d21-96c5-1a15b0bf0adf]" } ], "message" : "", "name" : "prod" } ], "organization" : "acme", "status" : "SUCCESS" }
PostgreSQL 数据库
本部分介绍了您可以专门用于监控 Postgres 数据库。
使用 check_postgres.pl
脚本
如需监控 PostgreSQL 数据库,您可以使用标准监控脚本,
check_postgres.pl
。如需了解详情,请参阅
http://bucardo.org/wiki/Check_postgres.
运行脚本之前,请执行以下操作:
- 您必须在每个 Postgres 节点上安装 check_postgres.pl 脚本。
- 确保您已安装
perl-Time-HiRes.x86_64
,这是一个 Perl 模块, 实现高分辨率闹钟、休眠、gettimeofday 和间隔计时器。例如,您 可以使用以下命令进行安装:
yum install perl-Time-HiRes.x86_64
- CentOS 7:在 CentOS v7 上使用 check_postgres.pl 之前,请安装
perl-Data-Dumper.x86_64
每千次展示收入。
check_postgres.pl 输出
使用 check_postgres.pl
进行 API 调用的默认输出是 Nagios
兼容。安装脚本后,请进行以下检查:
- 检查数据库大小:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -include=apigee -action database_size --warning='800 GB' --critical='900 GB'
- 检查数据库的传入连接数,并与允许的最大连接数进行比较
连接:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
- 检查数据库是否正在运行且可用:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
- 检查磁盘空间:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%'
- 检查 Postgres 节点中初始配置的组织和环境数量:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action=custom_query --query="select count(*) as result from pg_tables where schemaname='analytics' and tablename like '%fact'" --warning='80' --critical='90' --valtype=integer
运行数据库检查
您可以验证是否在 PostgreSQL 数据库中创建了正确的表。登录 PostgreSQL 数据库:
psql -h /opt/apigee/var/run/apigee-postgresql/ -U apigee -d apigee
然后运行以下命令:
\d analytics."org.env.fact"
检查 postgres 进程的健康状况
您可以通过调用以下 curl
在 Postgres 机器上执行 API 检查
命令:
curl -v http://postgres_IP:8084/v1/servers/self/health
当 postgres 进程处于活动状态时,此命令会返回 ACTIVE
状态。如果
Postgres 进程未启动并运行,它会返回 INACTIVE
状态。
Postgres 资源
如需详细了解如何监控 Postgres 服务,请参阅以下内容:
- http://www.postgresql.org/docs/9.0/static/monitoring.html
- http://www.postgresql.org/docs/9.0/static/diskusage.html
- http://bucardo.org/check_postgres/check_postgres.pl.html
Apache Cassandra
对 Cassandra 默认启用 JMX,对 Cassandra 的远程 JMX 访问不需要 密码。
为 Cassandra 启用 JMX 身份验证
您可以为 Cassandra 启用 JMX 身份验证。之后,您需要
将用户名和密码传递给对 nodetool
实用程序的所有调用。
如需为 Cassandra 启用 JMX 身份验证,请执行以下操作:
- 创建和修改
cassandra.properties
文件: <ph type="x-smartling-placeholder">- </ph>
- 修改
/opt/apigee/customer/application/cassandra.properties
文件。如果 文件不存在,请创建。 - 将以下内容添加到文件中:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true conf_cassandra-env_com.sun.management.jmxremote.password.file=${APIGEE_ROOT}/data/apigee-cassandra/jmxremote.password conf_cassandra-env_com.sun.management.jmxremote.access.file=${APIGEE_ROOT}/data/apigee-cassandra/jmxremote.access
- 保存
cassandra.properties
文件。 - 将文件的所有者更改为“apigee:apigee”,如以下示例所示:
chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
有关使用属性文件设置令牌的详细信息,请参阅 如何配置 Edge。
- 修改
- 创建和修改
jmx_auth.sh
: <ph type="x-smartling-placeholder">- </ph>
- 如果文件不存在,请在以下位置创建一个:
/opt/apigee/customer/application/jmx_auth.sh
- 将以下属性添加到该文件:
export CASS_JMX_USERNAME=JMX_USERNAME export CASS_JMX_PASSWORD=JMX_PASSWORD
- 保存
jmx_auth.sh
文件。 - 获取该文件:
source /opt/apigee/customer/application/jmx_auth.sh
- 如果文件不存在,请在以下位置创建一个:
- 复制并修改
jmxremote.password
文件: <ph type="x-smartling-placeholder">- </ph>
- 将以下文件从
$JAVA_HOME
目录复制到/opt/apigee/data/apigee-cassandra/
:cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password
- 修改
jmxremote.password
文件并添加您的 JMX 用户名和密码 使用以下语法:JMX_USERNAME JMX_PASSWORD
其中,JMX_USERNAME 和 JMX_PASSWORD 是 JMX 用户名, 密码。
- 确保该文件归“apigee”所有文件模式为 400:
chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.password
chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.password
- 将以下文件从
- 复制并修改
jmxremote.access
文件: <ph type="x-smartling-placeholder">- </ph>
- 将以下文件从
$JAVA_HOME
目录复制到/opt/apigee/data/apigee-cassandra/
:cp ${JAVA_HOME}/lib/management/jmxremote.access $APIGEE_ROOT/data/apigee-cassandra/jmxremote.access
- 修改 jmxremote.access 文件并添加以下角色:
JMX_USERNAME readwrite
- 确保该文件归“apigee”所有文件模式为 400:
chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.access
chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.access
- 将以下文件从
- 在 Cassandra 上运行
configure
:/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- 重启 Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- 在所有其他 Cassandra 节点上重复此过程。
启用 JMX 密码加密
如需启用 JMX 密码加密,请执行以下步骤:
- 打开
source/conf/casssandra-env.sh
文件。 - 取消对文件中以下行的注释:
<ph type="x-smartling-placeholder">
- </ph>
-
JVM_OPTS="$JVM_OPTS -Djava.security.auth.login.config={T}conf_cassandra-env_java.security.auth.login.config{/T}"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.login.config=ApigeeSecureFileLoginModule"
-
- 在命令行上,输入所需密码的 SHA1 哈希值
echo -n 'Secret' | openssl dgst -sha1
- 针对
jmxremote.password
中的用户名设置密码。 - 在更新后,将文件
cassandra-env.sh
改回只读。
为 Cassandra 停用 JMX 身份验证
如需为 Cassandra 停用 JMX 身份验证,请执行以下操作:
- 修改
/opt/apigee/customer/application/cassandra.properties
。 - 移除文件中的以下行:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
- 在 Cassandra 上运行配置:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- 重启 Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- 在所有其他 Cassandra 节点上重复此过程。
使用 JConsole:监控任务统计信息
使用 JConsole 和以下服务网址监控通过 JMX:
service:jmx:rmi:///jndi/rmi://IP_address:7199/jmxrmi
其中,IP_address 是 Cassandra 服务器的 IP 地址。
Cassandra JMX 统计信息
JMX MBean | JMX 属性 |
---|---|
ColumnFamilies/apprepo/environments ColumnFamilies/apprepo/organizations ColumnFamilies/apprepo/apiproxy_revisions ColumnFamilies/apprepo/apiproxies ColumnFamilies/audit/audits ColumnFamilies/audit/audits_ref |
PendingTasks |
MemtableColumnsCount |
|
MemtableDataSize |
|
ReadCount |
|
RecentReadLatencyMicros |
|
TotalReadLatencyMicros |
|
WriteCount |
|
RecentWriteLatencyMicros |
|
TotalWriteLatencyMicros |
|
TotalDiskSpaceUsed |
|
LiveDiskSpaceUsed |
|
LiveSSTableCount |
|
BloomFilterFalsePositives |
|
RecentBloomFilterFalseRatio |
|
BloomFilterFalseRatio |
使用 nodetool 管理集群节点
nodetool
实用程序是 Cassandra 的命令行界面,用于管理
集群节点该实用程序可在 /opt/apigee/apigee-cassandra/bin
下找到。
可以在所有 Cassandra 集群节点上进行以下调用:
- 常规环信息(也适用于单个 Cassandra 节点):查找
“向上”和“Normal”(正常)所有节点
nodetool [-u username -pw password] -h localhost ring
只有在以下情况下,您才需要传递用户名和密码: 为 Cassandra 启用了 JMX 身份验证。
上述命令的输出如下所示:
Datacenter: dc-1 ========== Address Rack Status State Load Owns Token 192.168.124.201 ra1 Up Normal 1.67 MB 33,33% 0 192.168.124.202 ra1 Up Normal 1.68 MB 33,33% 5671...5242 192.168.124.203 ra1 Up Normal 1.67 MB 33,33% 1134...0484
- 关于节点的一般信息(每个节点的调用次数)
nodetool [-u username -pw password] -h localhost info
上述命令的输出如下所示:
ID : e2e42793-4242-4e82-bcf0-oicu812 Gossip active : true Thrift active : true Native Transport active: true Load : 273.71 KB Generation No : 1234567890 Uptime (seconds) : 687194 Heap Memory (MB) : 314.62 / 3680.00 Off Heap Memory (MB) : 0.14 Data Center : dc-1 Rack : ra-1 Exceptions : 0 Key Cache : entries 150, size 13.52 KB, capacity 100 MB, 1520781 hits, 1520923 requests, 1.000 recent hit rate, 14400 save period in seconds Row Cache : entries 0, size 0 bytes, capacity 0 bytes, 0 hits, 0 requests, NaN recent hit rate, 0 save period in seconds Counter Cache : entries 0, size 0 bytes, capacity 50 MB, 0 hits, 0 requests, NaN recent hit rate, 7200 save period in seconds Token : 0
- 旧货服务器的状态(服务客户端 API)
nodetool [-u username -pw password] -h localhost statusthrift
上述命令的输出如下所示:
running
- 数据流操作的状态:观察 Cassandra 节点的流量:
nodetool [-u username -pw password] -h localhost netstats
上述命令的输出如下所示:
Mode: NORMAL Not sending any streams. Read Repair Statistics: Attempted: 151612 Mismatch (Blocking): 0 Mismatch (Background): 0 Pool Name Active Pending Completed Dropped Commands n/a 0 0 0 Responses n/a 0 0 n/a
如需详细了解nodetool
,请参阅
关于 nodetool 实用程序。
Cassandra 资源
请参阅以下网址:http://www.datastax.com/docs/1.0/operations/monitoring。
Apache ZooKeeper
检查 ZooKeeper 状态
- 确保 ZooKeeper 进程正在运行。ZooKeeper 将 PID 文件写入
opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid
。 - 测试 ZooKeeper 端口,确保您可以与端口 2181 和端口 2181 建立 TCP 连接 3888。
- 确保您可以从 ZooKeeper 数据库中读取值。使用 ZooKeeper 连接
客户端库(或
/opt/apigee/apigee-zookeeper/bin/zkCli.sh
)并读取值 从数据库中提取数据 - 查看状态:
/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status
使用由四个字母组成的 ZooKeeper
可以通过发送到 使用 netcat (nc) 或 telnet 访问端口 2181。
如需详细了解 ZooKeeper 命令,请参阅 Apache ZooKeeper 命令参考。
例如:
srvr
:列出服务器的完整详细信息。stat
:列出服务器和已连接客户端的简要详细信息。
您可以发出以下命令到 ZooKeeper 端口:
- 运行由四个字母组成的 ruok 命令,测试服务器是否以无错误状态运行。答
成功响应会返回“imok”。
echo ruok | nc host 2181
返回:
imok
- 运行由四个字母组成的命令
stat
,以列出服务器性能和已连接 客户统计信息:echo stat | nc host 2181
返回:
Zookeeper version: 3.4.5-1392090, built on 09/30/2012 17:52 GMT Clients: /0:0:0:0:0:0:0:1:33467[0](queued=0,recved=1,sent=0) /192.168.124.201:42388[1](queued=0,recved=8433,sent=8433) /192.168.124.202:42185[1](queued=0,recved=1339,sent=1347) /192.168.124.204:39296[1](queued=0,recved=7688,sent=7692) Latency min/avg/max: 0/0/128 Received: 26144 Sent: 26160 Connections: 4 Outstanding: 0 Zxid: 0x2000002c2 Mode: follower Node count: 283
- 如果 netcat (nc) 不可用,您可以使用 Python 作为替代方案。创建文件
名为
zookeeper.py
,其中包含以下内容:import time, socket, sys c = socket.socket(socket.AF_INET, socket.SOCK_STREAM) c.connect((sys.argv[1], 2181)) c.send(sys.argv[2]) time.sleep(0.1) print c.recv(512)
现在,运行以下 Python 代码行:
python zookeeper.py 192.168.124.201 ruok
python zookeeper.py 192.168.124.201 stat
LDAP 级别测试
您可以监控 OpenLDAP,以查看特定请求是否得到正确处理。在 也就是检查特定搜索会返回正确结果。
- 使用
ldapsearch
(yum install openldap-clients
) 查询该条目 系统管理员的电子邮件地址。此条目用于对所有 API 调用进行身份验证。ldapsearch -b "uid=admin,ou=users,ou=global,dc=apigee,dc=com" -x -W -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -LLL
然后,系统会提示您输入 LDAP 管理员密码:
Enter LDAP Password:
输入密码后,您会看到以下形式的响应:
dn: uid=admin,ou=users,ou=global,dc=apigee,dc=com objectClass: organizationalPerson objectClass: person objectClass: inetOrgPerson objectClass: top uid: admin cn: admin sn: admin userPassword:: e1NTSEF9bS9xbS9RbVNXSFFtUWVsU1F0c3BGL3BQMkhObFp2eDFKUytmZVE9PQ= = mail: opdk@google.com
- 使用以下命令检查管理服务器是否仍连接到 LDAP:
curl -u userEMail:password http://localhost:8080/v1/users/ADMIN
返回:
{ "emailId" : ADMIN, "firstName" : "admin", "lastName" : "admin" }
您还可以监控 OpenLDAP 缓存,以帮助减少磁盘访问次数
从而提升系统性能。监控并调整
OpenLDAP 服务器会严重影响目录服务器的性能。您可以查看
文件 (opt/apigee/var/log
) 以获取有关缓存的信息。