8.2. 미터링 디버깅
다양한 구성 요소와 직접 상호 작용할 때 디버깅 미터링은 훨씬 쉬워집니다. 아래 섹션에서는 Presto 및 Hive뿐만 아니라 Presto 및 HDFS 구성 요소의 대시보드를 확인할 수 있는 방법에 대해 자세히 설명합니다.
이 섹션의 모든 명령은 openshift-metering 네임스페이스의 OperatorHub를 통해 미터링을 설치했다고 가정합니다.
8.2.1. Reporting Operator 로그 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
아래 명령을 사용하여 reporting-operator의 로그를 따릅니다.
$ oc -n openshift-metering logs -f "$(oc -n openshift-metering get pods -l app=reporting-operator -o name | cut -c 5-)" -c reporting-operator
8.2.2. presto-cli를 사용하여 Presto 쿼리 링크 복사링크가 클립보드에 복사되었습니다!
다음 명령은 Presto를 쿼리할 수 있는 대화식 presto-cli 세션을 엽니다. 이 세션은 Presto와 동일한 컨테이너에서 실행되며 추가 Java 인스턴스를 시작하므로 Pod에 대한 메모리 제한을 생성할 수 있습니다. 이 경우 Presto Pod의 메모리 요청 및 제한을 늘려야 합니다.
기본적으로 Presto는 TLS를 사용하여 전달하도록 구성됩니다. 다음 명령을 사용하여 Presto 쿼리를 실행해야 합니다.
$ oc -n openshift-metering exec -it "$(oc -n openshift-metering get pods -l app=presto,presto=coordinator -o name | cut -d/ -f2)" \
-- /usr/local/bin/presto-cli --server https://presto:8080 --catalog hive --schema default --user root --keystore-path /opt/presto/tls/keystore.pem
이 명령을 실행하면 쿼리를 실행할 수 있는 프롬프트가 표시됩니다. show tables from metering;을 사용; 표 목록을 보려면 쿼리합니다.
$ presto:default> show tables from metering;
출력 예
Table
datasource_your_namespace_cluster_cpu_capacity_raw
datasource_your_namespace_cluster_cpu_usage_raw
datasource_your_namespace_cluster_memory_capacity_raw
datasource_your_namespace_cluster_memory_usage_raw
datasource_your_namespace_node_allocatable_cpu_cores
datasource_your_namespace_node_allocatable_memory_bytes
datasource_your_namespace_node_capacity_cpu_cores
datasource_your_namespace_node_capacity_memory_bytes
datasource_your_namespace_node_cpu_allocatable_raw
datasource_your_namespace_node_cpu_capacity_raw
datasource_your_namespace_node_memory_allocatable_raw
datasource_your_namespace_node_memory_capacity_raw
datasource_your_namespace_persistentvolumeclaim_capacity_bytes
datasource_your_namespace_persistentvolumeclaim_capacity_raw
datasource_your_namespace_persistentvolumeclaim_phase
datasource_your_namespace_persistentvolumeclaim_phase_raw
datasource_your_namespace_persistentvolumeclaim_request_bytes
datasource_your_namespace_persistentvolumeclaim_request_raw
datasource_your_namespace_persistentvolumeclaim_usage_bytes
datasource_your_namespace_persistentvolumeclaim_usage_raw
datasource_your_namespace_persistentvolumeclaim_usage_with_phase_raw
datasource_your_namespace_pod_cpu_request_raw
datasource_your_namespace_pod_cpu_usage_raw
datasource_your_namespace_pod_limit_cpu_cores
datasource_your_namespace_pod_limit_memory_bytes
datasource_your_namespace_pod_memory_request_raw
datasource_your_namespace_pod_memory_usage_raw
datasource_your_namespace_pod_persistentvolumeclaim_request_info
datasource_your_namespace_pod_request_cpu_cores
datasource_your_namespace_pod_request_memory_bytes
datasource_your_namespace_pod_usage_cpu_cores
datasource_your_namespace_pod_usage_memory_bytes
(32 rows)
Query 20210503_175727_00107_3venm, FINISHED, 1 node
Splits: 19 total, 19 done (100.00%)
0:02 [32 rows, 2.23KB] [19 rows/s, 1.37KB/s]
presto:default>
8.2.3. Beeline을 사용하여 Hive 쿼리 링크 복사링크가 클립보드에 복사되었습니다!
다음에서는 Hive를 쿼리할 수 있는 대화식 Beeline 세션을 엽니다. 이 세션은 Hive와 동일한 컨테이너에서 실행되며 추가 Java 인스턴스를 시작하므로 Pod에 대한 메모리 제한을 생성할 수 있습니다. 이 경우 Hive Pod의 메모리 요청 및 제한을 늘려야 합니다.
$ oc -n openshift-metering exec -it $(oc -n openshift-metering get pods -l app=hive,hive=server -o name | cut -d/ -f2) \
-c hiveserver2 -- beeline -u 'jdbc:hive2://127.0.0.1:10000/default;auth=noSasl'
이 명령을 실행하면 쿼리를 실행할 수 있는 프롬프트가 표시됩니다. show tables; 사용. 표 목록을 보려면 쿼리합니다.
$ 0: jdbc:hive2://127.0.0.1:10000/default> show tables from metering;
출력 예
+----------------------------------------------------+
| tab_name |
+----------------------------------------------------+
| datasource_your_namespace_cluster_cpu_capacity_raw |
| datasource_your_namespace_cluster_cpu_usage_raw |
| datasource_your_namespace_cluster_memory_capacity_raw |
| datasource_your_namespace_cluster_memory_usage_raw |
| datasource_your_namespace_node_allocatable_cpu_cores |
| datasource_your_namespace_node_allocatable_memory_bytes |
| datasource_your_namespace_node_capacity_cpu_cores |
| datasource_your_namespace_node_capacity_memory_bytes |
| datasource_your_namespace_node_cpu_allocatable_raw |
| datasource_your_namespace_node_cpu_capacity_raw |
| datasource_your_namespace_node_memory_allocatable_raw |
| datasource_your_namespace_node_memory_capacity_raw |
| datasource_your_namespace_persistentvolumeclaim_capacity_bytes |
| datasource_your_namespace_persistentvolumeclaim_capacity_raw |
| datasource_your_namespace_persistentvolumeclaim_phase |
| datasource_your_namespace_persistentvolumeclaim_phase_raw |
| datasource_your_namespace_persistentvolumeclaim_request_bytes |
| datasource_your_namespace_persistentvolumeclaim_request_raw |
| datasource_your_namespace_persistentvolumeclaim_usage_bytes |
| datasource_your_namespace_persistentvolumeclaim_usage_raw |
| datasource_your_namespace_persistentvolumeclaim_usage_with_phase_raw |
| datasource_your_namespace_pod_cpu_request_raw |
| datasource_your_namespace_pod_cpu_usage_raw |
| datasource_your_namespace_pod_limit_cpu_cores |
| datasource_your_namespace_pod_limit_memory_bytes |
| datasource_your_namespace_pod_memory_request_raw |
| datasource_your_namespace_pod_memory_usage_raw |
| datasource_your_namespace_pod_persistentvolumeclaim_request_info |
| datasource_your_namespace_pod_request_cpu_cores |
| datasource_your_namespace_pod_request_memory_bytes |
| datasource_your_namespace_pod_usage_cpu_cores |
| datasource_your_namespace_pod_usage_memory_bytes |
+----------------------------------------------------+
32 rows selected (13.101 seconds)
0: jdbc:hive2://127.0.0.1:10000/default>
8.2.4. Hive 웹 UI로 포트-전달 링크 복사링크가 클립보드에 복사되었습니다!
다음 명령을 실행하여 Hive 웹 UI로 포트-전달을 수행합니다.
$ oc -n openshift-metering port-forward hive-server-0 10002
이제 브라우저 창에서 http://127.0.0.1:10002를 열어 Hive 웹 인터페이스를 볼 수 있습니다.
8.2.5. HDFS로의 포트-전달 링크 복사링크가 클립보드에 복사되었습니다!
다음 명령을 실행하여 HDFS 이름 노드에 포트-전달을 수행합니다.
$ oc -n openshift-metering port-forward hdfs-namenode-0 9870
이제 브라우저 창에서 http://127.0.0.1:9870을 열어 HDFS 웹 인터페이스를 볼 수 있습니다.
다음 명령을 실행하여 첫 번째 HDFS 데이터 노드에 포트-전달을 수행합니다.
$ oc -n openshift-metering port-forward hdfs-datanode-0 9864
- 1
- 다른 데이터 노드를 확인하려면 정보를 확인할 Pod로
hdfs-datanode-0을 바꿉니다.
8.2.6. 미터링 Ansible Operator 링크 복사링크가 클립보드에 복사되었습니다!
미터링은 Ansible Operator를 사용하여 클러스터 환경에서 리소스를 감시하고 조정합니다. 실패한 미터링 설치를 디버깅하는 경우 MeteringConfig 사용자 정의 리소스의 Ansible 로그 또는 상태를 확인하는 데 도움이 될 수 있습니다.
8.2.6.1. Ansible 로그 액세스 링크 복사링크가 클립보드에 복사되었습니다!
기본 설치에서 Metering Operator는 Pod로 배포됩니다. 이 경우 이 Pod 내에서 Ansible 컨테이너의 로그를 확인할 수 있습니다.
$ oc -n openshift-metering logs $(oc -n openshift-metering get pods -l app=metering-operator -o name | cut -d/ -f2) -c ansible
또는 요약된 출력에 대해 Operator 컨테이너(-c ansible을 -c operator로 교체)의 로그를 볼 수 있습니다.
8.2.6.2. MeteringConfig 상태 확인 링크 복사링크가 클립보드에 복사되었습니다!
최근 오류를 디버깅하도록 MeteringConfig 사용자 정의 리소스의 .status 필드를 보는 데 유용할 수 있습니다. 다음 명령은 Invalid 유형이 있는 상태 메시지를 표시합니다.
$ oc -n openshift-metering get meteringconfig operator-metering -o=jsonpath='{.status.conditions[?(@.type=="Invalid")].message}'
8.2.6.3. MeteringConfig Events 확인 링크 복사링크가 클립보드에 복사되었습니다!
Metering Operator가 생성 중인 이벤트를 확인합니다. 이는 리소스 오류를 디버깅하기 위해 설치 중 또는 업그레이드 중에 유용할 수 있습니다. 마지막 타임 스탬프로 이벤트를 정렬합니다.
$ oc -n openshift-metering get events --field-selector involvedObject.kind=MeteringConfig --sort-by='.lastTimestamp'
MeteringConfig 리소스의 최신 변경이 있는 출력 예
LAST SEEN TYPE REASON OBJECT MESSAGE
4m40s Normal Validating meteringconfig/operator-metering Validating the user-provided configuration
4m30s Normal Started meteringconfig/operator-metering Configuring storage for the metering-ansible-operator
4m26s Normal Started meteringconfig/operator-metering Configuring TLS for the metering-ansible-operator
3m58s Normal Started meteringconfig/operator-metering Configuring reporting for the metering-ansible-operator
3m53s Normal Reconciling meteringconfig/operator-metering Reconciling metering resources
3m47s Normal Reconciling meteringconfig/operator-metering Reconciling monitoring resources
3m41s Normal Reconciling meteringconfig/operator-metering Reconciling HDFS resources
3m23s Normal Reconciling meteringconfig/operator-metering Reconciling Hive resources
2m59s Normal Reconciling meteringconfig/operator-metering Reconciling Presto resources
2m35s Normal Reconciling meteringconfig/operator-metering Reconciling reporting-operator resources
2m14s Normal Reconciling meteringconfig/operator-metering Reconciling reporting resources