3.4. Elasticsearch 로그 저장소의 상태 보기
OpenShift Elasticsearch Operator 및 여러 Elasticsearch 구성 요소의 상태를 볼 수 있습니다.
3.4.1. Elasticsearch 로그 저장소의 상태 보기
Elasticsearch 로그 저장소의 상태를 볼 수 있습니다.
사전 요구 사항
- Red Hat OpenShift Logging Operator 및 OpenShift Elasticsearch Operator가 설치되어 있습니다.
절차
다음 명령을 실행하여
openshift-logging
프로젝트로 변경합니다.$ oc project openshift-logging
상태를 보려면 다음을 수행합니다.
다음 명령을 실행하여 Elasticsearch 로그 저장소 인스턴스의 이름을 가져옵니다.
$ oc get Elasticsearch
출력 예
NAME AGE elasticsearch 5h9m
다음 명령을 실행하여 Elasticsearch 로그 저장소 상태를 가져옵니다.
$ oc get Elasticsearch <Elasticsearch-instance> -o yaml
예를 들면 다음과 같습니다.
$ oc get Elasticsearch elasticsearch -n openshift-logging -o yaml
출력에는 다음과 유사한 정보가 포함됩니다.
출력 예
status: 1 cluster: 2 activePrimaryShards: 30 activeShards: 60 initializingShards: 0 numDataNodes: 3 numNodes: 3 pendingTasks: 0 relocatingShards: 0 status: green unassignedShards: 0 clusterHealth: "" conditions: [] 3 nodes: 4 - deploymentName: elasticsearch-cdm-zjf34ved-1 upgradeStatus: {} - deploymentName: elasticsearch-cdm-zjf34ved-2 upgradeStatus: {} - deploymentName: elasticsearch-cdm-zjf34ved-3 upgradeStatus: {} pods: 5 client: failed: [] notReady: [] ready: - elasticsearch-cdm-zjf34ved-1-6d7fbf844f-sn422 - elasticsearch-cdm-zjf34ved-2-dfbd988bc-qkzjz - elasticsearch-cdm-zjf34ved-3-c8f566f7c-t7zkt data: failed: [] notReady: [] ready: - elasticsearch-cdm-zjf34ved-1-6d7fbf844f-sn422 - elasticsearch-cdm-zjf34ved-2-dfbd988bc-qkzjz - elasticsearch-cdm-zjf34ved-3-c8f566f7c-t7zkt master: failed: [] notReady: [] ready: - elasticsearch-cdm-zjf34ved-1-6d7fbf844f-sn422 - elasticsearch-cdm-zjf34ved-2-dfbd988bc-qkzjz - elasticsearch-cdm-zjf34ved-3-c8f566f7c-t7zkt shardAllocationEnabled: all
- 1
- 출력에서 클러스터 상태 필드가
상태
스탠자에 나타납니다. - 2
- Elasticsearch 로그 저장소의 상태:
- 활성 기본 shard 수입니다.
- 활성 shard 수입니다.
- 초기화 중인 shard 수입니다.
- Elasticsearch 로그 저장소 데이터 노드의 수입니다.
- 총 Elasticsearch 로그 저장소 노드 수입니다.
- 보류 중인 작업 수입니다.
-
Elasticsearch 로그 저장소 상태:
green
,red
,yellow
. - 할당되지 않은 shard 수
- 3
- 존재하는 경우 모든 상태 조건. Elasticsearch 로그 저장소 상태는 Pod를 배치할 수 없는 경우 스케줄러의 이유를 나타냅니다. 다음 조건과 관련된 모든 이벤트가 표시됩니다.
- 컨테이너는 Elasticsearch 로그 저장소 및 프록시 컨테이너를 모두 대기합니다.
- 컨테이너는 Elasticsearch 로그 저장소 및 프록시 컨테이너 모두에 대해 종료되었습니다.
- Pod 예약 불가. 또한 여러 가지 문제에 대한 조건이 표시됩니다(조건 메시지 예 참조).
- 4
upgradeStatus
가 있는 클러스터의 Elasticsearch 로그 저장소 노드- 5
실패한
,notReady
또는ready
상태에 나열된 클러스터의 Elasticsearch 로그 저장소 클라이언트, 데이터 및 마스터 Pod
3.4.1.1. 상태 메시지 예
다음은 Elasticsearch 인스턴스의 상태
섹션에 있는 일부 조건 메시지의 예입니다.
다음 상태 메시지는 노드가 구성된 낮은 워터마크를 초과했으며 이 노드에 shard가 할당되지 않음을 나타냅니다.
status: nodes: - conditions: - lastTransitionTime: 2019-03-15T15:57:22Z message: Disk storage usage for node is 27.5gb (36.74%). Shards will be not be allocated on this node. reason: Disk Watermark Low status: "True" type: NodeStorage deploymentName: example-elasticsearch-cdm-0-1 upgradeStatus: {}
다음 상태 메시지는 노드가 구성된 높은 워터마크를 초과했으며 shard가 다른 노드로 재배치됨을 나타냅니다.
status: nodes: - conditions: - lastTransitionTime: 2019-03-15T16:04:45Z message: Disk storage usage for node is 27.5gb (36.74%). Shards will be relocated from this node. reason: Disk Watermark High status: "True" type: NodeStorage deploymentName: example-elasticsearch-cdm-0-1 upgradeStatus: {}
다음 상태 메시지는 CR(사용자 정의 리소스)의 Elasticsearch 로그 저장소 노드 선택기가 클러스터의 노드와 일치하지 않음을 나타냅니다.
status: nodes: - conditions: - lastTransitionTime: 2019-04-10T02:26:24Z message: '0/8 nodes are available: 8 node(s) didn''t match node selector.' reason: Unschedulable status: "True" type: Unschedulable
다음 상태 메시지는 Elasticsearch 로그 저장소 CR에서 PVC(영구 볼륨 클레임)가 존재하지 않음을 나타냅니다.
status: nodes: - conditions: - last Transition Time: 2019-04-10T05:55:51Z message: pod has unbound immediate PersistentVolumeClaims (repeated 5 times) reason: Unschedulable status: True type: Unschedulable
다음 상태 메시지는 Elasticsearch 로그 저장소 클러스터에 중복 정책을 지원하기에 충분한 노드가 없음을 나타냅니다.
status: clusterHealth: "" conditions: - lastTransitionTime: 2019-04-17T20:01:31Z message: Wrong RedundancyPolicy selected. Choose different RedundancyPolicy or add more nodes with data roles reason: Invalid Settings status: "True" type: InvalidRedundancy
이 상태 메시지는 클러스터에 컨트롤 플레인 노드가 너무 많음을 나타냅니다.
status: clusterHealth: green conditions: - lastTransitionTime: '2019-04-17T20:12:34Z' message: >- Invalid master nodes count. Please ensure there are no more than 3 total nodes with master roles reason: Invalid Settings status: 'True' type: InvalidMasters
다음 상태 메시지는 Elasticsearch 스토리지가 변경 작업을 지원하지 않음을 나타냅니다.
예를 들면 다음과 같습니다.
status: clusterHealth: green conditions: - lastTransitionTime: "2021-05-07T01:05:13Z" message: Changing the storage structure for a custom resource is not supported reason: StorageStructureChangeIgnored status: 'True' type: StorageStructureChangeIgnored
reason
및 type
필드는 지원되지 않는 변경 유형을 지정합니다.
StorageClassNameChangeIgnored
- 스토리지 클래스 이름에 대한 지원되지 않는 변경 사항입니다.
StorageSizeChangeIgnored
- 스토리지 크기에 대한 지원되지 않는 변경 사항입니다.
StorageStructureChangeIgnored
임시 스토리지 구조와 영구저장장치 구조 간에는 지원되지 않는 변경 사항입니다.
중요임시 스토리지에서 영구 스토리지로 전환하도록
ClusterLogging
CR을 구성하려고 하면 OpenShift Elasticsearch Operator는 PVC(영구 볼륨 클레임)를 생성하지만 PV(영구 볼륨)를 생성하지 않습니다.StorageStructureChangeIgnored
상태를 지우려면ClusterLogging
CR로 변경 사항을 취소하고 PVC를 삭제해야 합니다.
3.4.2. 로그 저장소 구성 요소의 상태 보기
여러 로그 저장소 구성 요소의 상태를 볼 수 있습니다.
- Elasticsearch 인덱스
Elasticsearch 인덱스의 상태를 볼 수 있습니다.
Elasticsearch Pod의 이름을 가져옵니다.
$ oc get pods --selector component=elasticsearch -o name
출력 예
pod/elasticsearch-cdm-1godmszn-1-6f8495-vp4lw pod/elasticsearch-cdm-1godmszn-2-5769cf-9ms2n pod/elasticsearch-cdm-1godmszn-3-f66f7d-zqkz7
인덱스의 상태를 가져옵니다.
$ oc exec elasticsearch-cdm-4vjor49p-2-6d4d7db474-q2w7z -- indices
출력 예
Defaulting container name to elasticsearch. Use 'oc describe pod/elasticsearch-cdm-4vjor49p-2-6d4d7db474-q2w7z -n openshift-logging' to see all of the containers in this pod. green open infra-000002 S4QANnf1QP6NgCegfnrnbQ 3 1 119926 0 157 78 green open audit-000001 8_EQx77iQCSTzFOXtxRqFw 3 1 0 0 0 0 green open .security iDjscH7aSUGhIdq0LheLBQ 1 1 5 0 0 0 green open .kibana_-377444158_kubeadmin yBywZ9GfSrKebz5gWBZbjw 3 1 1 0 0 0 green open infra-000001 z6Dpe__ORgiopEpW6Yl44A 3 1 871000 0 874 436 green open app-000001 hIrazQCeSISewG3c2VIvsQ 3 1 2453 0 3 1 green open .kibana_1 JCitcBMSQxKOvIq6iQW6wg 1 1 0 0 0 0 green open .kibana_-1595131456_user1 gIYFIEGRRe-ka0W3okS-mQ 3 1 1 0 0 0
- 로그 저장소 Pod
로그 저장소를 호스팅하는 Pod의 상태를 볼 수 있습니다.
Pod 이름을 가져옵니다.
$ oc get pods --selector component=elasticsearch -o name
출력 예
pod/elasticsearch-cdm-1godmszn-1-6f8495-vp4lw pod/elasticsearch-cdm-1godmszn-2-5769cf-9ms2n pod/elasticsearch-cdm-1godmszn-3-f66f7d-zqkz7
Pod 상태를 가져옵니다.
$ oc describe pod elasticsearch-cdm-1godmszn-1-6f8495-vp4lw
출력에는 다음 상태 정보가 포함됩니다.
출력 예
.... Status: Running .... Containers: elasticsearch: Container ID: cri-o://b7d44e0a9ea486e27f47763f5bb4c39dfd2 State: Running Started: Mon, 08 Jun 2020 10:17:56 -0400 Ready: True Restart Count: 0 Readiness: exec [/usr/share/elasticsearch/probe/readiness.sh] delay=10s timeout=30s period=5s #success=1 #failure=3 .... proxy: Container ID: cri-o://3f77032abaddbb1652c116278652908dc01860320b8a4e741d06894b2f8f9aa1 State: Running Started: Mon, 08 Jun 2020 10:18:38 -0400 Ready: True Restart Count: 0 .... Conditions: Type Status Initialized True Ready True ContainersReady True PodScheduled True .... Events: <none>
- 로그 스토리지 Pod 배포 구성
로그 저장소 배포 구성의 상태를 볼 수 있습니다.
배포 구성의 이름을 가져옵니다.
$ oc get deployment --selector component=elasticsearch -o name
출력 예
deployment.extensions/elasticsearch-cdm-1gon-1 deployment.extensions/elasticsearch-cdm-1gon-2 deployment.extensions/elasticsearch-cdm-1gon-3
배포 구성 상태를 가져옵니다.
$ oc describe deployment elasticsearch-cdm-1gon-1
출력에는 다음 상태 정보가 포함됩니다.
출력 예
.... Containers: elasticsearch: Image: registry.redhat.io/openshift-logging/elasticsearch6-rhel8 Readiness: exec [/usr/share/elasticsearch/probe/readiness.sh] delay=10s timeout=30s period=5s #success=1 #failure=3 .... Conditions: Type Status Reason ---- ------ ------ Progressing Unknown DeploymentPaused Available True MinimumReplicasAvailable .... Events: <none>
- 로그 저장소 복제본 세트
로그 저장소 복제본 세트의 상태를 볼 수 있습니다.
복제본 세트의 이름을 가져옵니다.
$ oc get replicaSet --selector component=elasticsearch -o name replicaset.extensions/elasticsearch-cdm-1gon-1-6f8495 replicaset.extensions/elasticsearch-cdm-1gon-2-5769cf replicaset.extensions/elasticsearch-cdm-1gon-3-f66f7d
복제본 세트의 상태를 가져옵니다.
$ oc describe replicaSet elasticsearch-cdm-1gon-1-6f8495
출력에는 다음 상태 정보가 포함됩니다.
출력 예
.... Containers: elasticsearch: Image: registry.redhat.io/openshift-logging/elasticsearch6-rhel8@sha256:4265742c7cdd85359140e2d7d703e4311b6497eec7676957f455d6908e7b1c25 Readiness: exec [/usr/share/elasticsearch/probe/readiness.sh] delay=10s timeout=30s period=5s #success=1 #failure=3 .... Events: <none>
3.4.3. Elasticsearch 클러스터 상태
OpenShift Cluster Manager 의 Observe 섹션에 있는 대시보드에는 Elasticsearch 클러스터의 상태가 표시됩니다.
OpenShift Elasticsearch 클러스터의 상태를 보려면 OpenShift Cluster Manager 의 Observe 섹션에 있는 대시보드를 < cluster_url>/monitoring/dashboards/grafana-dashboard-cluster-logging
에서 참조하십시오.
Elasticsearch 상태 필드
eo_elasticsearch_cr_cluster_management_state
Elasticsearch 클러스터가 관리 상태인지 또는 관리되지 않는 상태에 있는지를 표시합니다. 예를 들면 다음과 같습니다.
eo_elasticsearch_cr_cluster_management_state{state="managed"} 1 eo_elasticsearch_cr_cluster_management_state{state="unmanaged"} 0
eo_elasticsearch_cr_restart_total
인증서 재시작, 롤링 재시작 또는 예약된 재시작을 위해 Elasticsearch 노드가 다시 시작된 횟수를 표시합니다. 예를 들면 다음과 같습니다.
eo_elasticsearch_cr_restart_total{reason="cert_restart"} 1 eo_elasticsearch_cr_restart_total{reason="rolling_restart"} 1 eo_elasticsearch_cr_restart_total{reason="scheduled_restart"} 3
es_index_namespaces_total
Elasticsearch 인덱스 네임스페이스의 총 수를 표시합니다. 예를 들면 다음과 같습니다.
Total number of Namespaces. es_index_namespaces_total 5
es_index_document_count
각 네임스페이스에 대한 레코드 수가 표시됩니다. 예를 들면 다음과 같습니다.
es_index_document_count{namespace="namespace_1"} 25 es_index_document_count{namespace="namespace_2"} 10 es_index_document_count{namespace="namespace_3"} 5
"Secret Elasticsearch 필드가 누락되었거나 비어 있음" 메시지
Elasticsearch에 admin-cert
,admin-key
,logging-es.crt
또는 logging-es.key
파일이 없는 경우 대시보드에는 다음 예와 유사한 상태 메시지가 표시됩니다.
message": "Secret \"elasticsearch\" fields are either missing or empty: [admin-cert, admin-key, logging-es.crt, logging-es.key]", "reason": "Missing Required Secrets",