이 문서에서는 온프레미스에서 지원하는 구성요소의 모니터링 기법을 설명합니다. 프라이빗 클라우드용 Apigee Edge 배포입니다.
개요
Edge는 서비스에 대한 세부정보를 가져오고 있습니다. 다음 표에는 적격한 각 검사에서 수행할 수 있는 검사 유형이 나와 있습니다. 서비스:
관리 API | |||||||
구성요소 | 메모리 사용량 [JMX*] | 서비스 확인 | 사용자/조직/ 배포 상태 | Axstatus | 데이터베이스 확인 | apigee-service 상태 |
apigee-monit ** |
관리 서버 | |||||||
메시지 프로세서 | |||||||
라우터 | |||||||
Qpid | |||||||
Postgres | |||||||
추가 정보 | 추가 정보 | 추가 정보 | 추가 정보 | 추가 정보 | 추가 정보 | 추가 정보 | |
* JMX를 사용하려면 먼저 JMX를 사용 설정해야 합니다. JMX 사용 설정에 설명되어 있습니다. ** |
모니터링 포트 및 구성 파일
각 구성요소는 Java Management Extensions (JMX) 및 Management API 모니터링 호출을 사용할 수 있습니다. 이 다음 표에는 각 서버 유형에 대한 JMX 및 Management API 포트가 나열되어 있습니다. 구성 파일 위치:
구성요소 | JMX 포트 | Management API 포트 | 구성 파일 위치 |
---|---|---|---|
관리 서버 | 1099 | 8080 | $APIGEE_ROOT/customer/application/management-server.properties |
메시지 프로세서 | 1101 | 8082 | $APIGEE_ROOT/customer/application/message-processor.properties |
라우터 | 1100 | 8081 | $APIGEE_ROOT/customer/application/router.properties |
Qpid | 1102 | 8083 | $APIGEE_ROOT/customer/application/qpid-server.properties |
Postgres | 1103 | 8084 | $APIGEE_ROOT/customer/application/postgres-server.properties |
JMX를 사용하여 구성요소 모니터링
다음 섹션에서는 JMX를 사용하여 Edge 구성요소를 모니터링하는 방법을 설명합니다.
JMX 사용 설정
인증 또는 SSL 기반 통신 없이 JMX를 사용 설정하려면 아래 단계를 수행하세요. 참고: 프로덕션 시스템에서는 있습니다.
- 적절한 구성 파일을 수정합니다 (
구성 파일 참조 참조). 구성 파일이 없으면 새로 만듭니다.
conf_system_jmxremote_enable=true
- 구성 파일을 저장하고
apigee:apigee
에서 소유하는지 확인합니다. - 적절한 Edge 구성요소 다시 시작
apigee-service edge-management-server restart
JMX를 사용 중지하려면 conf_system_jmxremote_enable
속성을 삭제하거나
값을 false
로 설정합니다. 그런 다음 해당하는 Edge 구성요소를 다시 시작합니다.
JMX에서 인증
Private Cloud용 Edge는 파일에 저장된 세부정보를 사용하여 비밀번호 기반 인증을 지원합니다. 보안을 강화하기 위해 비밀번호를 해시로 저장할 수 있습니다.
- Edge-* 구성요소에서 JMX 인증을 사용 설정하려면 적절한 구성 파일을 수정하세요.
페이지를 참조하세요.
구성 파일 참조 참조). 구성 파일이 없으면 새로 만듭니다.
드림 구성 파일을 저장하고conf_system_jmxremote_enable=true conf_system_jmxremote_authenticate=true conf_system_jmxremote_encrypted_auth=true conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
apigee:apigee
에서 소유하고 있는지 확인합니다. - 비밀번호의 SHA256 해시를 만듭니다.
echo -n '
' | openssl dgst -sha256 - JMX 사용자 인증 정보로
jmxremote.password
파일을 만듭니다. <ph type="x-smartling-placeholder">- </ph>
$JAVA_HOME
디렉터리에서 다음 파일을 다음으로 복사합니다. 디렉터리/opt/apigee/customer/application/<component>/
:cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/management-server/jmxremote.password
- 다음 구문을 사용하여 파일을 편집하고 JMX 사용자 이름과 비밀번호를 추가합니다.
USERNAME <HASH-PASSWORD>
- 파일이
apigee
에서 소유하고 있고 파일 모드가 400인지 확인합니다.chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.password
- JMX 사용자 권한이 있는
jmxremote.access
파일을 만듭니다. <ph type="x-smartling-placeholder">- </ph>
- 다음 파일을 $JAVA_HOME 디렉터리에서
/opt/apigee/customer/application/<component>/
디렉터리cp ${JAVA_HOME}/lib/management/jmxremote.access$APIGEE_ROOT/customer/application/management-server/jmxremote.password/jmxremote.access
- 파일을 편집하고 JMX 사용자 이름과 권한 (READONLY/READWRITE)을 차례로 추가합니다.
USERNAME READONLY
- 파일이
apigee
에서 소유하고 있고 파일 모드가 400인지 확인합니다.chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.access
- 다음 파일을 $JAVA_HOME 디렉터리에서
- 적절한 Edge 구성요소를 다시 시작합니다.
apigee-service edge-management-server restart
JMX 인증을 사용 중지하려면 속성을 삭제하세요.
conf_system_jmxremote_authenticate
또는 값을 false
로 변경합니다.
해당 Edge 구성요소를 다시 시작합니다.
JMX의 SSL
Edge-* 구성요소에서 SSL 기반 JMX를 사용 설정하려면 다음 단계를 따르세요.
- 해당 구성 파일 수정
페이지를 참조하세요.
구성 파일 참조 참조). 구성 파일이 없으면 새로 만듭니다.
드림 구성 파일을 저장하고conf_system_jmxremote_enable=true conf_system_jmxremote_ssl=true conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.keystore conf_system_javax_net_ssl_keystorepassword=<keystore-password>
apigee:apigee
에서 소유하고 있는지 확인합니다. - 서버 키가 포함된 키 저장소를 준비하고
conf_system_javax_net_ssl_keystore
구성을 참조하세요. 키 저장소 파일 확인apigee:apigee
에서 읽을 수 있습니다. - 적절한 Edge 구성요소를 다시 시작합니다.
apigee-service edge-management-server restart
SSL 기반 JMX를 사용 중지하려면 conf_system_jmxremote_ssl
속성을 삭제하세요.
또는 값을 false
로 변경합니다. 적절한 Edge 구성요소를 다시 시작합니다.
Jconsole을 통한 모니터링
jconsole을 통한 모니터링 안내는 https://docs.apigee.com/private-cloud/v4.50.00/how-monitor#jconsole.
“JMX에 SSL을 사용하도록 설정한 경우 truststore 및 truststore 비밀번호로 jconsole을 시작해야 합니다.”라는 한 줄을 추가할 수 있습니다. 참조: https://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.htmlJConsole로 모니터링
JConsole (JMX 준수 툴)을 사용하여 상태 점검을 관리 및 모니터링하고 통계를 처리하세요. JConsole을 사용하면 서버가 노출하는 JMX 통계를 소비하고 사용할 수 있습니다. 자세한 내용은 JConsole 사용
JMX에 SSL이 사용 설정된 경우 truststore 및 truststore 비밀번호로 JConsole을 시작해야 합니다. 를 참조하세요. JConsole 사용
JConsole은 다음 서비스 URL을 사용하여 JMX:
service:jmx:rmi:///jndi/rmi://IP_address:port_number/jmxrmi
각 항목의 의미는 다음과 같습니다.
- IP_address는 모니터링할 서버의 IP 주소입니다.
- port_number는 원하는 서버의 JMX 포트 번호입니다. 있습니다.
예를 들어, Management Server를 모니터링하려면 다음과 같은 명령을 실행합니다( 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 |
|
사용 |
|
구성 파일 참조
다음 섹션에서는 Edge 구성요소 구성을 변경해야 할 수 있는 변경사항을 설명합니다. JMX 관련 구성을 위한 파일을 제공합니다. 자세한 내용은 자세한 내용은 포트 및 구성 파일 모니터링 확인할 수 있습니다
해당 구성 요소의 구성 파일에 추가될 JMX 구성
- 에지 구성요소에서 JMX 에이전트를 사용 설정합니다. 기본값은 false입니다.
conf_system_jmxremote_enable=true
비밀번호 기반 인증 구성
- 비밀번호 기반 인증을 사용 설정합니다. 기본값은 false입니다.
conf_system_jmxremote_authenticate=true
- 파일에 액세스하는 경로입니다. Apigee 사용자만 소유하고 읽을 수 있어야 합니다.
conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access
- 비밀번호 파일의 경로입니다. Apigee 사용자만 소유하고 읽을 수 있어야 합니다.
conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
- 암호화된 형식으로 비밀번호를 저장할 수 있도록 설정합니다. 기본값은 false입니다.
conf_system_jmxremote_encrypted_auth=true
SSL 기반 JMX 구성
- JMX 통신을 위한 SSL을 사용 설정합니다. 기본값은 false입니다.
conf_system_jmxremote_ssl=true
- 키 저장소의 경로입니다. Apigee 사용자만 소유하고 읽을 수 있어야 합니다.
conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.keystore
- 키 저장소 비밀번호:
conf_system_javax_net_ssl_keystorepassword=changeme
선택적 JMX 구성
나열된 값은 기본값이며 변경할 수 있습니다.
- JMX 포트. 기본값은 아래 표에 나와 있습니다.
conf_system_jmxremote_port=
- JMX RMI 포트 기본적으로 Java 프로세스는 임의의 포트를 선택합니다.
conf_system_jmxremote_rmi_port=
- 원격 스텁의 호스트 이름입니다. localhost의 기본 IP 주소입니다.
conf_system_java_rmi_server_hostname=
- SSL로 JMX 레지스트리를 보호합니다. 기본값은 false입니다. SSL이 사용 설정된 경우에만 적용됩니다.
conf_system_jmxremote_registry_ssl=false
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를 사용하여 사용자, 조직, 배포 상태를 모니터링할 수 있습니다. 관리 서버 및 메시지 프로세서에 대한 프록시의 IP를 실제로 보냅니다.
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 서버에 온보딩된 조직 및 환경 이름을 확인할 수 있습니다.
다음 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
RPM
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
JMX는 Cassandra에 기본적으로 사용 설정되며 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}/customer/application/apigee-cassandra/jmxremote.password conf_cassandra_env_com.sun.management.jmxremote.access.file=${APIGEE_ROOT}/customer/application/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/customer/application/apigee-cassandra/
:cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password
jmxremote.password
파일을 수정하고 JMX 사용자 이름과 비밀번호를 추가합니다. 다음 구문을 사용합니다.JMX_USERNAME JMX_PASSWORD
여기서 JMX_USERNAME 및 JMX_PASSWORD은 JMX 사용자 이름이며 비밀번호를 다시 지정할 수 있습니다.
- 파일이 'Apigee'의 소유인지 확인하세요. 파일 모드가 400인지 확인합니다.
chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
- 다음 파일을
jmxremote.access
파일을 복사하고 수정합니다. <ph type="x-smartling-placeholder">- </ph>
- 다음 파일을
$JAVA_HOME
디렉터리에서 다음으로 복사합니다./opt/apigee/customer/application/apigee-cassandra/
:cp ${JAVA_HOME}/lib/management/jmxremote.access
$APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.access
jmxremote.access
파일을 수정하고 다음 역할을 추가합니다.JMX_USERNAME readwrite
- 파일이 'Apigee'의 소유인지 확인하세요. 파일 모드가 400인지 확인합니다.
chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
chmod 400 /opt/apigee/customer/application/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
파일을 엽니다.cassandra.properties
파일을 만들고 수정합니다. <ph type="x-smartling-placeholder">- </ph>
/opt/apigee/customer/application/cassandra.properties
파일을 수정합니다. 만약 파일이 존재하지 않으면 새로 만듭니다.- 파일에 다음을 추가합니다.
conf_cassandra_env_com.sun.management.jmxremote.encrypted.authenticate=true
- cassandra.properties 파일을 저장합니다.
- 다음 예시와 같이 파일의 소유자를 apigee:apigee로 변경하세요.
chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
- 명령줄에서 다음을 입력하여 원하는 비밀번호의 SHA1 해시를 생성합니다.
echo -n 'Secret' | openssl dgst -sha1
- 의 사용자 이름에 대해 비밀번호 설정
$APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password
(생성: 참고). - Cassandra에서 config를 실행합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Cassandra를 다시 시작합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- 다른 모든 Cassandra 노드에서 이 프로세스를 반복합니다.
Cassandra용 SSL을 사용한 JMX 사용 설정
SSL로 JMX를 사용 설정하면 선택할 수 있습니다 SSL이 포함된 JMX를 사용 설정하려면 다음과 같이 Cassandra에 키와 인증서를 제공해야 합니다. SSL 기반 JMX 연결을 허용합니다. 또한 nodetool과 통신할 수 있습니다)
SSL을 사용하는 JMX는 일반 텍스트와 암호화된 JMX 비밀번호를 모두 지원합니다.
Cassandra용 SSL이 포함된 JMX를 사용 설정하려면 다음 절차를 따르세요.
- JMX를 사용 설정합니다. 필요한 경우 비밀번호 암호화를 사용 설정합니다.
- Cassandra용 JMX 인증을 사용 설정합니다.
변경할 수 있습니다. nodetool이 구성된
비밀번호를 입력합니다.
/opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
keystore와 truststore를 준비합니다.
키 저장소에는 키와 인증서가 포함되어야 합니다. Cassandra 서버를 구성하는 데 사용됩니다 키 저장소인 경우 여러 키 쌍이 포함되어 있는 경우 Cassandra는 첫 번째 키 쌍을 사용합니다. 클릭하여 SSL을 사용 설정합니다.
키 저장소의 암호와 키의 비밀번호가 동일해야 합니다. (keytool을 사용하여 키를 생성할 때의 기본값)
- 트러스트 저장소는 인증서만 포함해야 하며 클라이언트 (Apigee 서비스 기반)에서 사용합니다. 명령어 또는 nodetool)을 사용하여 JMX를 통해 연결할 수 있습니다.
위 요구사항을 확인한 후 다음을 수행합니다.
- 키 저장소 파일을
/opt/apigee/customer/application/apigee-cassandra/
에 배치합니다. - 다음을 입력하여 키 저장소 파일을 Apigee 사용자만 읽을 수 있도록 합니다.
chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/keystore.node1
chmod 400 /opt/apigee/customer/application/apigee-cassandra/keystore.node1
- 다음 단계를 수행하여 SSL로 JMX용 Cassandra를 구성합니다.
<ph type="x-smartling-placeholder">
- </ph>
- 다음을 입력하여 Cassandra 노드를 중지합니다.
apigee-service apigee-cassandra stop
- Cassandra에서 SSL 사용 설정
/opt/apigee/customer/application/cassandra.properties
파일 여는 중 다음 줄을 추가합니다.conf_cassandra_env_com.sun.management.jmxremote.ssl=true conf_cassandra_env_javax.net.ssl.keyStore=/opt/apigee/customer/application/apigee-cassandra/keystore.node1 conf_cassandra_env_javax.net.ssl.keyStorePassword=keystore-password
- 다음 예시와 같이 파일의 소유자를 apigee:apigee로 변경하세요.
chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
- Cassandra에서 config를 실행합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Cassandra를 다시 시작합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- 다른 모든 Cassandra 노드에서 이 프로세스를 반복합니다.
- 다음을 입력하여 Cassandra 노드를 시작합니다.
apigee-service apigee-cassandra start
- 다음을 입력하여 Cassandra 노드를 중지합니다.
apigee-service
Cassandra 명령어를 구성합니다. 실행 중에 특정 환경 변수를 설정해야 함 아래 명령어를 포함한apigee-service
명령어입니다.apigee-service apigee-cassandra stop apigee-service apigee-cassandra wait_for_ready apigee-service apigee-cassandra ring apigee-service apigee-cassandra backup
JMX 인증을 위해
apigee-service
을 구성하는 몇 가지 옵션이 있습니다. 사용할 수 있습니다 사용성 및 보안 관행에 따라 옵션을 선택하세요.옵션 1 (파일에 저장된 SSL 인수)
다음 환경 변수를 설정합니다.
export CASS_JMX_USERNAME=ADMIN # Provide encrypted password here if you have setup JMX password encryption export CASS_JMX_PASSWORD=PASSWORD export CASS_JMX_SSL=Y
Apigee 사용자의 홈 디렉터리 (
/opt/apigee
)에 파일을 만듭니다.$HOME/.cassandra/nodetool-ssl.properties
파일을 수정하고 다음 줄을 추가합니다.
-Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true
Apigee 사용자가 trustore 파일을 읽을 수 있는지 확인하세요.
다음
apigee-service
명령어를 실행합니다. 오류 없이 실행되면 구성이 올바른 것입니다.apigee-service apigee-cassandra ring
옵션 2 (환경 변수에 저장된 SSL 인수)
다음 환경 변수를 설정합니다.
export CASS_JMX_USERNAME=ADMIN # Provide encrypted password here if you have setup JMX password encryption export CASS_JMX_PASSWORD=PASSWORD export CASS_JMX_SSL=Y # Ensure the truststore file is accessible by Apigee user. export CASS_JMX_TRUSTSTORE=<path-to-trustore.node1> export CASS_JMX_TRUSTSTORE_PASSWORD=<truststore-password>
다음
apigee-service
명령어를 실행합니다. 오류 없이 실행되면 구성이 올바른 것입니다.apigee-service apigee-cassandra ring
옵션 3 (
apigee-service
에 직접 전달된 SSL 인수)아래와 같은
apigee-service
명령어를 실행합니다. 환경 변수는 구성할 필요가 없습니다.CASS_JMX_USERNAME=ADMIN CASS_JMX_PASSWORD=PASSWORD CASS_JMX_SSL=Y CASS_JMX_TRUSTSTORE=<path-to-trustore.node1> CASS_JMX_TRUSTSTORE_PASSWORD=<trustore-password> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra ring
nodetool을 설정합니다. Nodetool을 사용하려면 JMX 매개변수를 전달해야 합니다. 두 가지 방법이 있습니다 Nodetool이 SSL 지원 JMX에서 실행되도록 구성할 수 있습니다( 구성 옵션을 참조하세요.
옵션은 SSL 관련 구성이 nodetool에 전달되는 방식에 차이가 있습니다. 두 경우 모두 nodetool을 실행하는 사용자에게 truststore 파일에 대한 읽기 권한이 있어야 합니다. 사용성 및 보안 관행에 따라 적절한 옵션을 선택합니다.
nodetool 매개변수에 대해 자세히 알아보려면 <ph type="x-smartling-placeholder"></ph> DataStax 문서
구성 옵션 1
nodetool을 실행하는 사용자의 홈 디렉터리에 파일을 만듭니다.
$HOME/.cassandra/nodetool-ssl.properties
파일에 다음 행을 추가합니다.
-Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true
위에 지정된 truststore 경로는 실행 중인 모든 사용자가 액세스할 수 있어야 합니다. nodetool.
--ssl
옵션으로nodetool
를 실행합니다./opt/apigee/apigee-cassandra/bin/nodetool --ssl -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring
구성 옵션 2
아래에 나열된 추가 매개변수를 사용하여 단일 명령어로
nodetool
를 실행합니다./opt/apigee/apigee-cassandra/bin/nodetool -Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true -Dssl.enable=true -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring
SSL 구성 되돌리기
절차에 설명된 SSL 구성을 되돌려야 하는 경우 다음 단계를 따르세요.
- 입력하여
apigee-cassandra
중지apigee-service apigee-cassandra stop
- 다음에서
conf_cassandra-env_com.sun.management.jmxremote.ssl=true
줄을 삭제합니다./opt/apigee/customer/application/cassandra.properties
파일 /opt/apigee/apigee-cassandra/source/conf/cassandra-env.sh
에서 다음 줄을 주석 처리합니다.# JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStore=/opt/apigee/data/apigee-cassandra/keystore.node0" # JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStorePassword=keypass" # JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.registry.ssl=true”
- 다음을 입력하여
apigee-cassandra
시작 CASS_JMX_SSL
환경 변수가 설정된 경우 삭제합니다.unset CASS_JMX_SSL
ring
와 같은apigee-service
기반 명령어를 확인합니다.stop
,backup
등이 작동합니다.- nodetool과 함께
--ssl
스위치 사용 중지
apigee-service apigee-cassandra start
Cassandra용 JMX 인증 사용 중지
Cassandra용 JMX 인증을 사용 중지하려면 다음 안내를 따르세요.
/opt/apigee/customer/application/cassandra.properties
를 수정합니다.- 파일에서 다음 줄을 삭제합니다.
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
- Cassandra에서 config를 실행합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Cassandra를 다시 시작합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- 다른 모든 Cassandra 노드에서 이 프로세스를 반복합니다.
JConsole 사용: 작업 통계 모니터링
JConsole과 다음 서비스 URL을 사용하여 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용 명령줄 인터페이스로서
kube-APIserver로 전송합니다 이 유틸리티는 /opt/apigee/apigee-cassandra/bin
에서 찾을 수 있습니다.
모든 Cassandra 클러스터 노드에서 다음과 같은 호출을 수행할 수 있습니다.
- 일반 링 정보 (단일 Cassandra 노드도 가능):
"위로" 'Normal'을 kube-APIserver입니다
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
주키퍼 상태 확인
- ZaKeeper 프로세스가 실행 중인지 확인합니다. 주키퍼는 PID 파일을
opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid
- 주키퍼 포트를 테스트하여 포트 2181 및 포트 80에 TCP 연결을 설정할 수 있는지 확인 3888입니다.
- ZooKeeper 데이터베이스에서 값을 읽을 수 있는지 확인합니다. 주키퍼를 사용하여 연결
클라이언트 라이브러리 (또는
/opt/apigee/apigee-zookeeper/bin/zkCli.sh
)에서 값을 읽고 값을 읽습니다. 삭제할 수 있습니다 - 상태를 파악합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status
4자로 된 주키퍼 단어 사용
동물원은 netcat (nc) 또는 telnet을 사용하여 포트 2181에 연결합니다.
ZooKeeper 명령어에 대한 자세한 내용은 Apache ZaKeeper 명령어 참조를 확인하세요.
예를 들면 다음과 같습니다.
srvr
: 서버의 전체 세부정보를 나열합니다.stat
: 서버 및 연결된 클라이언트에 관한 간략한 세부정보를 나열합니다.
다음 명령어를 주키퍼 포트로 실행할 수 있습니다.
- 4자로 된 명령어 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
)을 사용하여 캐시에 대한 정보를 가져옵니다.