次の方法で共有


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>]

説明

Get-ServiceFabricClusterHealthChunk コマンドレットは、高度な入力フィルターで要求されたとおりに、Service Fabric クラスターとクラスター エンティティの正常性情報を取得します。 既定では、子エンティティは返されません。 指定した場合、入力を考慮するすべてのエンティティが階層形式で返されます。

Service Fabric は、次の正常性状態を報告します。

  • わかりました。 エンティティは正常性ガイドラインを満たしています。
  • エラー。 エンティティが正常性ガイドラインを満たしていません。
  • 警告。 エンティティは正常性ガイドラインを満たしていますが、いくつかの問題が発生しています。

クラスターの集計された正常性状態では、クラスター上のすべての正常性レポートと、すべての子の集計された正常性状態が再帰的に考慮されます。 正常性評価では、クラスターの正常性ポリシーと、クラスター内の各アプリケーションのアプリケーション正常性ポリシーが使用されます。 クラスターとアプリケーション評価の正常性ポリシーを入力として渡すことができます。 指定しない場合、正常性評価では、マニフェストが指定されている場合はクラスターとアプリケーション マニフェストの該当する正常性ポリシーが使用され、それ以外の場合は既定のポリシーが使用されます。

クラスターの正常性チャンクには、入力フィルターで指定されている対象の子のみが含まれます。 フィルター処理はサーバー側で行われるので、メッセージ サイズは最小限に抑えられます。

要求された出力がメッセージに収まらない場合、結果は返されません。

Service Fabric クラスターで操作を実行する前に、Connect-ServiceFabricCluster コマンドレットを使用してクラスターへの接続を確立します。

例 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を除くすべてのレプリカが含まれます。このレプリカは Error の場合にのみ返されます。

パラメーター

-ApplicationFilters

System.Fabric.Health.ApplicationHealthStateFilter オブジェクトの Systems.Collections.Generic.List 指定します。 最も具体的なフィルターを考慮するアプリケーションのみが返されます。 個々のアプリケーションまたはすべてのアプリケーションのフィルターを指定できます。 アプリケーションごとに 1 つの一般的なフィルターと 1 つのフィルターのみが許可されます。

このパラメーターを指定しない場合、アプリケーションは返されません。

型:System.Collections.Generic.List`1[System.Fabric.Health.ApplicationHealthStateFilter]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ApplicationHealthPolicies

一部またはすべてのアプリケーションのカスタム正常性ポリシーを含む System.Fabric.Health.ApplicationHealthPolicyMap を指定します。 このパラメーターを指定しない場合、またはアプリケーションのマップにエントリを含めない場合、そのアプリケーションは、アプリケーション マニフェストに定義されているアプリケーション正常性ポリシー (存在する場合) または既定のポリシーで評価されます。

型:ApplicationHealthPolicyMap
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ApplicationTypeHealthPolicyMap

アプリケーションの種類ごとに許可される異常なアプリケーションの最大割合を定義するマップを指定します。 このマップ内のアプリケーションの種類は、グローバル MaxPercentUnhealthyApplications percentage ではなく、特定の割合を使用して評価されます。

たとえば、種類の一部のアプリケーションが重要な場合、クラスター管理者は、そのアプリケーションの種類のマップにエントリを追加し、値 0% を割り当てることができます (つまり、エラーは許容されません)。 他のすべてのアプリケーションは、MaxPercentUnhealthyApplications 20% に設定して評価し、数千のアプリケーション インスタンスからいくつかの障害を許容できます。

アプリケーションの種類の正常性ポリシー マップは、クラスター マニフェストが HealthManager/EnableApplicationTypeHealthEvaluation の構成エントリを使用してアプリケーションの種類の正常性評価を有効にする場合にのみ使用されます。

型:ApplicationTypeHealthPolicyMap
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ConsiderWarningAsError

正常性評価中に警告正常性レポートをエラーとして扱うかどうかを示します。 この値は、ノードとクラスターの正常性レポートの評価に使用されます。

クラスター正常性ポリシー パラメーターが指定されていない場合、正常性評価では、クラスター マニフェストのクラスター正常性ポリシー (存在する場合) または障害を許容しない既定のポリシーが使用されます。

型:Boolean
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-MaxPercentUnhealthyApplications

異常なアプリケーションの許容される最大割合を指定します。 正常性状態がエラーの集計されたアプリケーションの数が許容よりも多い場合、クラスターの正常性状態は Error です。

クラスター正常性ポリシー パラメーターが指定されていない場合、正常性評価では、クラスター マニフェストのクラスター正常性ポリシー (存在する場合) または障害を許容しない既定のポリシーが使用されます。

型:Byte
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-MaxPercentUnhealthyNodes

異常なノードの許容される最大パーセンテージを指定します。 正常性状態が集計されたエラーのノードが許容される数より多い場合、クラスターはエラーとして評価されます。 このパラメーターを指定しない場合、正常性評価ではクラスター マニフェストで指定された値が使用されます。

クラスター正常性ポリシー パラメーターが指定されていない場合、正常性評価では、クラスター マニフェストのクラスター正常性ポリシー (存在する場合) または障害を許容しない既定のポリシーが使用されます。

型:Byte
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-NodeFilters

System.Fabric.Health.NodeHealthStateFilter オブジェクトの Systems.Collections.Generic.List 指定します。 最も具体的なフィルターを考慮するノードのみが返されます。 個々のノードまたはすべてのノードのフィルターを指定できます。 一般的なフィルターとノードごとに 1 つのフィルターのみが許可されます。 このパラメーターを指定しない場合、ノードは返されません。

型:System.Collections.Generic.List`1[System.Fabric.Health.NodeHealthStateFilter]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-NodeTypeHealthPolicyMap

特定のノード タイプの異常なノードの最大パーセンテージを持つマップを定義します。

ノード タイプの正常性ポリシー マップは、クラスターの正常性評価中に特殊なノードの種類を記述するために使用できます。 マップに含まれるノードの種類は、マップに含まれる割合に対して評価され、グローバルも使用されます (System.Fabric.Health.ClusterHealthPolicy.MaxPercentUnhealthyNodes を参照)。 マップで指定されたノード タイプのノードも、ノードのグローバル プールに対してカウントされます。これらは独立したチェックです。

型:NodeTypeHealthPolicyMap
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-TimeoutSec

操作のタイムアウト期間を秒単位で指定します。

型:Int32
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

None

出力

System.Object