프라이빗 클라우드용 Edge v4.18.05
이 문서에서는 Apigee Edge의 온프레미스 배포에서 지원하는 구성요소의 모니터링 기술을 설명합니다.
개요
Edge는 서비스에 대한 세부정보를 가져오고 상태를 확인하는 여러 방법을 지원합니다. 다음 표에는 각 대상 서비스에서 수행할 수 있는 검사 유형이 나와 있습니다.
| 서비스 | JMX:* 메모리 사용량 |
Mgmt API: 서비스 확인 |
Mgmt API: 사용자/조직/ 배포 상태 |
Mgmt API: axstatus |
데이터베이스 확인 | apigee-service 상태 |
|---|---|---|---|---|---|---|
| 관리 서버 | ||||||
| 메시지 프로세서 | ||||||
| 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 사용
관리 서버, 메시지 프로세서, Qpid, Postgres의 모니터링 프로세스는 모두 JMX를 사용합니다. 하지만 JMX는 Cassandra에만 기본적으로 사용 설정되며 다른 모든 Edge 구성요소에는 기본적으로 사용 중지됩니다. 따라서 각 구성요소를 모니터링하려면 먼저 JMX를 개별적으로 사용 설정해야 합니다.
JMX 인증은 기본적으로 사용 설정되지 않습니다. 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에 있습니다. - 관리 서버:
- 구성요소를 시작하는
exec줄에 다음com.sun.management.jmxremote옵션을 추가합니다.-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
이 예시에서는 Management Server의 포트 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명령어로 구성요소를 다시 시작합니다.예를 들어 Management Server를 다시 시작하려면 다음 명령어를 실행합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
JMX 인증은 기본적으로 사용 설정되지 않습니다. JMX 인증 사용 설정에 설명된 대로 Cassandra를 제외한 모든 구성요소에 JMX 인증을 사용 설정할 수 있습니다.
JMX 인증 사용 설정
JMX 인증은 기본적으로 사용 설정되지 않습니다. Cassandra를 제외한 모든 구성요소에 JMX 인증을 사용 설정할 수 있습니다.
JMX 인증을 사용 설정하려면 모든 노드에서 다음 change_jmx_auth 작업을 실행합니다.
/opt/apigee/apigee-service/bin/apigee-service component change_jmx_auth [options|-f config_file]
각 항목의 의미는 다음과 같습니다.
- component은 다음 중 하나입니다.
edge-management-serveredge-message-processoredge-postgres-serveredge-qpid-serveredge-router
- options는 다음을 지정합니다.
-u username-p password-e [y|n](사용 설정 또는 사용 중지)
- config_file는 다음을 정의하는 구성 파일의 위치를 지정합니다.
JMX_USERNAME=usernameJMX_ENABLED=y|nJMX_PASSWORD=password(설정되지 않았거나-p로 전달되지 않은 경우 메시지가 표시됨)
명령줄 옵션 또는 구성 파일을 사용하여 사용자 이름, 비밀번호, 사용 설정/사용 중지 상태를 정의할 수 있습니다. 옵션 집합과 구성 파일을 모두 지정하지는 않습니다.
다음 예시에서는 명령줄 옵션을 사용하여 Management Server에 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 nJConsole로 모니터링
JConsole (JMX 호환 도구)을 사용하여 상태 점검 및 프로세스 통계를 관리하고 모니터링합니다. JConsole을 사용하면 서버에서 노출하는 JMX 통계를 사용하고 그래픽 인터페이스에 표시할 수 있습니다. 자세한 내용은 JConsole 사용을 참조하세요.
JConsole은 다음 서비스 URL을 사용하여 JMX를 통해 제공되는 JMX 속성 (MBean)을 모니터링합니다.
service:jmx:rmi:///jndi/rmi://IP_address:port_number/jmxrmi
각 항목의 의미는 다음과 같습니다.
- IP_address는 모니터링하려는 서버의 IP 주소입니다.
- port_number는 모니터링할 서버의 JMX 포트 번호입니다.
예를 들어 Management Server를 모니터링하려면 다음과 같은 명령어를 실행합니다 (서버의 IP 주소가 216.3.128.12라고 가정).
service:jmx:rmi:///jndi/rmi://216.3.128.12:1099/jmxrmi
이 예시에서는 Management Server JMX 포트인 포트 1099를 지정합니다. 다른 포트는 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'로 지정하면 됩니다.
다음 예시에서는 localhost (포트 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:passwordcurl http://host:port_number/v1/organizations/orgname/deployments -u sysAdminEmail:password
여기서 port_number은 관리 서버의 경우 8080, 메시지 프로세서의 경우 8082입니다.
이 호출을 사용하려면 시스템 관리 사용자 이름과 비밀번호로 인증해야 합니다.
서버는 모든 호출에 대해 '배포됨' 상태를 반환해야 합니다. 이 방법으로 문제가 해결되지 않으면 다음을 실행합니다.
- 서버 로그에서 오류가 있는지 확인하세요. 로그는 다음 위치에 있습니다.
- 관리 서버:
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-serveredge-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에서 조직 및 환경 확인
다음 curl 명령어를 실행하여 Postgres 서버에 온보딩된 조직 및 환경 이름을 확인할 수 있습니다.
curl -v http://postgres_IP:8084/v1/servers/self/organizations
시스템에 조직 및 환경 이름이 표시됩니다.
분석 상태 확인
다음 curl 명령어를 실행하여 Postgres 및 Qpid 분석 서버의 상태를 확인할 수 있습니다.
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 스크립트를 설치해야 합니다.
- 고해상도 알람, 절전 모드, gettimeofday, 인터벌 타이머를 구현하는 Perl 모듈인
perl-Time-HiRes.x86_64를 설치했는지 확인합니다. 예를 들어 다음 명령어를 사용하여 설치할 수 있습니다.
yum install perl-Time-HiRes.x86_64
- CentOS 7: CentOS v7에서 check_postgres.pl을 사용하기 전에
perl-Data-Dumper.x86_64RPM을 설치합니다.
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
JConsole 사용: 태스크 통계 모니터링
JConsole과 다음 서비스 URL을 사용하여 JMX를 통해 제공되는 JMX 속성 (MBean)을 모니터링합니다.
service:jmx:rmi:///jndi/rmi://IP_address:7199/jmxrmi
여기서 IP_address은 Cassandra 서버의 IP입니다.
JMX는 Cassandra에 기본적으로 사용 설정되어 있으며 Cassandra에 대한 원격 JMX 액세스에는 비밀번호가 필요하지 않습니다.
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 노드에도 가능): 모든 노드에서 'Up' 및 'Normal'을 찾습니다.
nodetool -h localhost ring
위 명령어의 출력은 다음과 같습니다.
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 -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
- Thrift 서버 상태 (클라이언트 API 제공)
nodetool -h localhost statusthrift
위 명령어의 출력은 다음과 같습니다.
running
- 데이터 스트리밍 작업 상태: cassandra 노드의 트래픽을 관찰합니다.
nodetool -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 모니터링 (UI)
datastax opscenter URL(http://www.datastax.com/products/opscenter)을 참조하세요.
Cassandra 리소스
http://www.datastax.com/docs/1.0/operations/monitoring URL을 참조하세요.
Apache ZooKeeper
ZooKeeper 상태 확인
- ZooKeeper 프로세스가 실행 중인지 확인합니다. ZooKeeper는 PID 파일을
opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid에 씁니다. - ZooKeeper 포트를 테스트하여 모든 ZooKeeper 서버의 포트 2181 및 3888에 대한 TCP 연결을 설정할 수 있는지 확인합니다.
- ZooKeeper 데이터베이스에서 값을 읽을 수 있는지 확인합니다. ZooKeeper 클라이언트 라이브러리 (또는
/opt/apigee/apigee-zookeeper/bin/zkCli.sh)를 사용하여 연결하고 데이터베이스에서 값을 읽습니다. - 상태를 파악합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status
ZooKeeper 4글자 단어 사용
ZooKeeper는 netcat (nc) 또는 telnet을 사용하여 포트 2181로 전송되는 작은 명령어 집합 (4글자 단어)을 통해 모니터링할 수 있습니다.
ZooKeeper 명령어에 대한 자세한 내용은 Apache ZooKeeper 명령어 참조를 확인하세요.
예를 들면 다음과 같습니다.
srvr: 서버의 전체 세부정보를 나열합니다.stat: 서버 및 연결된 클라이언트에 대한 간단한 세부정보를 나열합니다.
ZooKeeper 포트에 다음 명령어를 실행할 수 있습니다.
- 4글자 명령어 ruok를 실행하여 서버가 오류가 없는 상태로 실행 중인지 테스트합니다. 응답에 성공하면 'imok'가 반환됩니다.
echo ruok | nc host 2181
반환:
imok
- 4글자 명령어인
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)을 확인하여 캐시에 관한 정보를 얻을 수 있습니다.