Get-ServiceFabricClusterHealthChunk

Service Fabric 클러스터 및 해당 자식에 대한 상태 정보를 가져옵니다.

구문

Get-ServiceFabricClusterHealthChunk
   [-ConsiderWarningAsError <Boolean>]
   [-MaxPercentUnhealthyApplications <Byte>]
   [-MaxPercentUnhealthyNodes <Byte>]
   [-ApplicationHealthPolicies <ApplicationHealthPolicyMap>]
   [-ApplicationTypeHealthPolicyMap <ApplicationTypeHealthPolicyMap>]
   [-NodeTypeHealthPolicyMap <NodeTypeHealthPolicyMap>]
   [-ApplicationFilters <System.Collections.Generic.List`1[System.Fabric.Health.ApplicationHealthStateFilter]>]
   [-NodeFilters <System.Collections.Generic.List`1[System.Fabric.Health.NodeHealthStateFilter]>]
   [-TimeoutSec <Int32>]
   [<CommonParameters>]

Description

Get-ServiceFabricClusterHealthChunk cmdlet은 고급 입력 필터를 사용하여 요청된 대로 Service Fabric 클러스터 및 클러스터 엔터티에 대한 상태 정보를 가져옵니다. 기본적으로 자식 엔터티는 반환되지 않습니다. 지정된 경우 입력을 준수하는 모든 엔터티가 계층적 방식으로 반환됩니다.

Service Fabric은 다음과 같은 상태를 보고합니다.

  • OK. 엔터티는 상태 지침을 충족합니다.
  • 오류. 엔터티가 상태 지침을 충족하지 않습니다.
  • 경고. 엔터티는 상태 지침을 충족하지만 몇 가지 문제가 발생합니다.

클러스터의 집계된 상태는 클러스터의 모든 상태 보고서와 모든 자식의 집계된 상태를 재귀적으로 고려합니다. 상태 평가는 클러스터에 있는 각 애플리케이션의 클러스터 상태 정책 및 애플리케이션 상태 정책을 사용합니다. 클러스터 및 애플리케이션 평가에 대한 상태 정책을 입력으로 전달할 수 있습니다. 지정하지 않으면 상태 평가는 매니페스트가 지정된 경우 클러스터 및 애플리케이션 매니페스트의 적용 가능한 상태 정책을 사용하거나, 그렇지 않으면 기본 정책을 사용합니다.

클러스터 상태 청크에는 입력 필터에 지정된 대로 관심 있는 자식만 포함됩니다. 필터링은 서버 쪽에서 수행되므로 메시지 크기가 최소화됩니다.

요청된 출력이 메시지에 맞지 않으면 결과가 반환되지 않습니다.

Service Fabric 클러스터에서 작업을 수행하기 전에 Connect-ServiceFabricCluster cmdlet을 사용하여 클러스터에 대한 연결을 설정합니다.

예제

예제 1: 노드 필터를 사용하여 클러스터의 상태 가져오기

PS C:\> $ErrorFilter = [System.Fabric.Health.HealthStateFilter]::Error
PS C:\> $AllFilter = [System.Fabric.Health.HealthStateFilter]::All
PS C:\> $NodeFilter1 = New-Object System.Fabric.Health.NodeHealthStateFilter -Property @{HealthStateFilter=$AllFilter}
PS C:\> $NodeFilter2 = New-Object System.Fabric.Health.NodeHealthStateFilter -Property @{NodeNameFilter="N0010";HealthStateFilter=$ErrorFilter}
PS C:\> $NodeFilters = New-Object System.Collections.Generic.List[System.Fabric.Health.NodeHealthStateFilter]
PS C:\> $NodeFilters.Add($NodeFilter1)
PS C:\> $NodeFilters.Add($NodeFilter2)
PS C:\> Get-ServiceFabricClusterHealthChunk -NodeFilter $NodeFilters

이 명령은 클러스터의 상태를 쿼리합니다. N0010 노드를 제외한 모든 노드를 반환하는 필터를 지정합니다. 이 필터는 오류에서 집계된 상태인 경우에만 포함해야 합니다.

예제 2: 배포된 엔터티 필터를 사용하여 클러스터의 상태 가져오기

PS C:\> $ErrorFilter = [System.Fabric.Health.HealthStateFilter]::Error
PS C:\> $AllFilter = [System.Fabric.Health.HealthStateFilter]::All
PS C:\> $DspFilter1 = New-Object System.Fabric.Health.DeployedServicePackageHealthStateFilter -Property @{HealthStateFilter=$AllFilter}
PS C:\> $DaFilter1 =  New-Object System.Fabric.Health.DeployedApplicationHealthStateFilter -Property @{HealthStateFilter=$AllFilter;NodeNameFilter="N0020"}
PS C:\> $DaFilter1.DeployedServicePackageFilters.Add($DspFilter1)
PS C:\> $AppFilter = New-Object System.Fabric.Health.ApplicationHealthStateFilter -Property @{HealthStateFilter=$AllFilter}
PS C:\> $AppFilter.DeployedApplicationFilters.Add($DaFilter1)
PS C:\> $AppFilters = New-Object System.Collections.Generic.List[System.Fabric.Health.ApplicationHealthStateFilter]
PS C:\> $AppFilters.Add($AppFilter)
PS C:\> Get-ServiceFabricClusterHealthChunk -ApplicationFilters $AppFilters

이 명령은 클러스터의 상태를 쿼리합니다. 지정된 노드(N0020)에 모든 애플리케이션과 배포된 애플리케이션 및 배포된 서비스 패키지를 반환하는 필터를 지정합니다.

예제 3: 재귀 내부 필터를 포함하는 애플리케이션 필터를 사용하여 클러스터의 상태 가져오기

PS C:\> $ErrorFilter = [System.Fabric.Health.HealthStateFilter]::Error
PS C:\> $AllFilter = [System.Fabric.Health.HealthStateFilter]::All
PS C:\> $ReplicaFilter1 = New-Object System.Fabric.Health.ReplicaHealthStateFilter -Property @{ReplicaOrInstanceIdFilter= 130984777977143495;HealthStateFilter=$ErrorFilter}
PS C:\> $ReplicaFilter2 = New-Object System.Fabric.Health.ReplicaHealthStateFilter -Property @{HealthStateFilter=$AllFilter}

PS C:\> $PartitionFilter = New-Object System.Fabric.Health.PartitionHealthStateFilter -Property @{HealthStateFilter=$AllFilter}
PS C:\> $PartitionFilter.ReplicaFilters.Add($ReplicaFilter1)
PS C:\> $PartitionFilter.ReplicaFilters.Add($ReplicaFilter2)

PS C:\> $SvcFilter1 = New-Object System.Fabric.Health.ServiceHealthStateFilter -Property @{HealthStateFilter=$AllFilter}
PS C:\> $SvcFilter1.PartitionFilters.Add($PartitionFilter)

PS C:\> $AppFilter = New-Object System.Fabric.Health.ApplicationHealthStateFilter -Property @{ApplicationNameFilter="fabric:/app1"}
PS C:\> $AppFilter.ServiceFilters.Add($SvcFilter1)

PS C:\> $AppFilters = New-Object System.Collections.Generic.List[System.Fabric.Health.ApplicationHealthStateFilter]
PS C:\> $AppFilters.Add($AppFilter)
PS C:\> Get-ServiceFabricClusterHealthChunk -ApplicationFilters $AppFilters

이 명령은 클러스터의 상태를 쿼리합니다. 애플리케이션만 반환하도록 필터를 지정합니다. 필터는 모든 애플리케이션 서비스를 반환하고 각 서비스에 대해 모든 파티션을 반환합니다. 각 파티션에 대해 130984777977143495 제외한 모든 복제본이 포함되며, 오류 발생 시 반환되어야 합니다.

매개 변수

-ApplicationFilters

System.Fabric.Health.ApplicationHealthStateFilter 개체의 Systems.Collections.Generic.List를 지정합니다. 가장 구체적인 필터를 준수하는 애플리케이션만 반환됩니다. 개별 애플리케이션 또는 모든 애플리케이션에 대한 필터를 지정할 수 있습니다. 애플리케이션당 하나의 일반 필터와 하나의 필터만 허용됩니다.

이 매개 변수를 지정하지 않으면 애플리케이션이 반환되지 않습니다.

형식:System.Collections.Generic.List`1[System.Fabric.Health.ApplicationHealthStateFilter]
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-ApplicationHealthPolicies

일부 또는 모든 애플리케이션에 대한 사용자 지정 상태 정책을 포함하는 System.Fabric.Health.ApplicationHealthPolicyMap 을 지정합니다. 이 매개 변수를 지정하지 않거나 애플리케이션에 대한 맵에 항목을 포함하지 않으면 해당 애플리케이션이 있는 경우 애플리케이션 매니페스트에 정의된 애플리케이션 상태 정책을 사용하여 평가되거나, 그렇지 않으면 기본 정책으로 평가됩니다.

형식:ApplicationHealthPolicyMap
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-ApplicationTypeHealthPolicyMap

애플리케이션 유형별로 허용되는 비정상 애플리케이션의 최대 백분율을 정의하는 맵을 지정합니다. 이 맵의 애플리케이션 유형은 전역 MaxPercentUnhealthyApplications 백분율이 아닌 특정 백분율을 사용하여 평가됩니다.

예를 들어 형식의 일부 애플리케이션이 중요한 경우 클러스터 관리자는 해당 애플리케이션 유형에 대한 맵에 항목을 추가하고 0% 값을 할당할 수 있습니다(즉, 오류를 용납하지 않음). 다른 모든 애플리케이션은 MaxPercentUnhealthyApplications 를 20%로 설정하여 수천 개의 애플리케이션 인스턴스에서 일부 오류를 허용할 수 있습니다.

애플리케이션 유형 상태 정책 맵은 클러스터 매니페스트가 HealthManager/EnableApplicationTypeHealthEvaluation에 대한 구성 항목을 사용하여 애플리케이션 유형 상태 평가를 활성화한 경우에만 사용됩니다.

형식:ApplicationTypeHealthPolicyMap
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-ConsiderWarningAsError

상태 평가 중에 경고 상태 보고서를 오류로 처리할지 여부를 나타냅니다. 이 값은 노드 및 클러스터 상태 보고서를 평가하는 데 사용됩니다.

클러스터 상태 정책 매개 변수가 지정되지 않은 경우 상태 평가는 클러스터 매니페스트의 클러스터 상태 정책(있는 경우)을 사용하거나 실패를 용납하지 않는 기본 정책을 사용합니다.

형식:Boolean
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-MaxPercentUnhealthyApplications

비정상 애플리케이션의 최대 허용 비율을 지정합니다. 집계된 상태의 오류가 허용되는 것보다 많은 애플리케이션이 있는 경우 클러스터의 상태는 오류입니다.

클러스터 상태 정책 매개 변수가 지정되지 않은 경우 상태 평가는 클러스터 매니페스트의 클러스터 상태 정책(있는 경우)을 사용하거나 실패를 용납하지 않는 기본 정책을 사용합니다.

형식:Byte
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-MaxPercentUnhealthyNodes

비정상 노드의 최대 허용 비율을 지정합니다. 집계된 상태의 오류가 허용되는 것보다 많은 노드가 있는 경우 클러스터는 오류로 평가됩니다. 이 매개 변수를 지정하지 않으면 상태 평가에서 클러스터 매니페스트에 제공된 값을 사용합니다.

클러스터 상태 정책 매개 변수가 지정되지 않은 경우 상태 평가는 클러스터 매니페스트의 클러스터 상태 정책(있는 경우)을 사용하거나 실패를 용납하지 않는 기본 정책을 사용합니다.

형식:Byte
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-NodeFilters

System.Fabric.Health.NodeHealthStateFilter 개체의 Systems.Collections.Generic.List를 지정합니다. 가장 구체적인 필터를 준수하는 노드만 반환됩니다. 개별 노드 또는 모든 노드에 대한 필터를 지정할 수 있습니다. 하나의 일반 필터와 노드당 하나의 필터만 허용됩니다. 이 매개 변수를 지정하지 않으면 노드가 반환되지 않습니다.

형식:System.Collections.Generic.List`1[System.Fabric.Health.NodeHealthStateFilter]
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-NodeTypeHealthPolicyMap

특정 노드 형식에 대한 최대 백분율 비정상 노드가 있는 맵을 정의합니다.

클러스터 상태를 평가하는 동안 노드 유형 상태 정책 맵을 사용하여 특수 노드 유형을 설명할 수 있습니다. 맵에 포함된 노드 형식은 맵에 포함된 백분율 및 전역 노드에 대해 평가됩니다(System.Fabric.Health.ClusterHealthPolicy.MaxPercentUnhealthyNodes 참조). 맵에 지정된 노드 형식의 노드도 노드의 전역 풀에 대해 계산됩니다. 독립적인 검사입니다.

형식:NodeTypeHealthPolicyMap
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-TimeoutSec

작업의 제한 시간(초)을 지정합니다.

형식:Int32
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

입력

None

출력

System.Object