- 概要
- 要件
- インストール
- インストール後
- クラスターの管理
- 監視とアラート機能
- 監視スタックを使用する
- アラートの Runbook
- 移行とアップグレード
- 製品固有の設定
- ベスト プラクティスとメンテナンス
- トラブルシューティング
- インストール時にサービスをトラブルシューティングする方法
- クラスターをアンインストールする方法
- オフライン成果物をクリーンアップしてディスク領域を改善する方法
- Redis データをクリアする方法
- Istio ログを有効化する方法
- ログを手動でクリーンアップする方法
- sf-logs バンドルに保存されている古いログをクリーンアップする方法
- AI Center のストリーミング ログを無効化する方法
- 失敗した Automation Suite インストールをデバッグする方法
- アップグレード後に古いインストーラーからイメージを削除する方法
- Longhorn のスナップショットを自動的にクリーンアップする方法
- TX チェックサム オフロードを無効化する方法
- ArgoCD のログ レベルを手動で Info に設定する方法
- 外部レジストリーのエンコードされたpull_secret_valueを生成する方法
- TLS 1.2 で弱い暗号に対処する方法
- RHEL 8.4 OS でオフライン インストールを実行できない
- バンドルのダウンロード中のエラー
- バイナリがないため、オフライン インストールが失敗する
- オフライン インストールでの証明書の問題
- Longhorn のセットアップ中に最初のインストールが失敗する
- SQL 接続文字列の検証エラー
- selinux iscsid モジュールの前提条件の確認が失敗する
- Azure ディスクが SSD としてマークされない
- 証明書の更新後のエラー
- ウイルス対策が原因でインストールの問題が発生する
- OS のアップグレード後に Automation Suite が動作しない
- Automation Suite で backlog_wait_time を 0 に設定する必要がある
- リソースが利用できないことの影響を受ける GPU ノード
- ワークロードの準備ができていないためボリュームをマウントできない
- 管理ポータルのタイムアウト期間を設定する
- 基になるディレクトリ接続を更新する
- 移行後に認証が機能しない
- Kinit: Cannot find KDC for realm <AD Domain> while getting initial credentials
- kinit: Keytab contains no suitable keys for *** while getting initial credentials
- 無効なステータス コードが原因で GSSAPI 操作が失敗した
- Alarm received for failed kerberos-tgt-update job
- SSPI Provider: Server not found in Kerberos database
- アカウントが無効なため AD ユーザーのログインに失敗した
- ArgoCD へのログインに失敗した
- サンドボックス イメージを取得できない
- ポッドが ArgoCD UI に表示されない
- Redis プローブの障害
- RKE2 サーバーの起動に失敗する
- UiPath 名前空間でシークレットが見つからない
- 初回インストール後に ArgoCD が進行中ステートになる
- ArgoCD の読み取り専用アカウントにアクセスする際の問題
- MongoDB ポッドが CrashLoopBackOff になるか、削除後に PVC プロビジョニングの保留中になる
- クラスターの復元またはロールバック後にサービスが異常になる
- Init:0/X でポッドがスタックする
- Prometheus が CrashloopBackoff ステートにあり、メモリ不足 (OOM) エラーを伴う
- Ceph-rook のメトリックが監視ダッシュボードに表示されない
- Automation Suite 診断ツールを使用する
- Automation Suite サポート バンドル ツールを使用する
- ログを確認する
アラートの Runbook
- アラート、メトリック、可視化に利用可能なツールの使用に関する一般的な説明については、「監視スタックを使用する」をご覧ください。
- 問題の解決方法、および UiPath® サポート エンジニア向けのサポート バンドルの作成方法の詳細については、「トラブルシューティング」をご覧ください。
- UiPath® サポートへのご連絡の際は、現在発生しているアラートを含めてください。
アラートの重要度 |
説明 |
---|---|
Info | 予期しない状況が発生しましたが、害はありません。このアラートは抑制できますが、診断時に役立つ可能性があります。 |
Warning | ターゲットとなる機能低下や、近い将来に機能低下が発生する可能性があることを示します。この機能低下はクラスター全体に影響する可能性があります。クラスターを正常に維持するため、迅速な措置 (通常は数日以内) が推奨されます。 |
Critical | 多くの場合、クラスター内の広範囲に及ぶ深刻な機能低下を引き起こすことが知られています。即座に措置 (当日) を講じてクラスターを修復する必要があります。 |
このアラート時には、Prometheus がターゲットからメトリックを収集できません。つまり、Grafana ダッシュボード、およびターゲットからのメトリックに基づくその他のアラートが利用できません。ターゲットに関係のあるその他のアラートを確認してください。
kubectl describe
でポッド イベントをチェックし、kubectl logs
でログを記録して考えられるクラッシュの詳細を確認します。問題が解決しない場合は UiPath® サポートにお問い合わせください。
kubectl logs
でポッド ログをチェックして、進展がないか確認できます。問題が解決しない場合は UiPath® サポートにお問い合わせください。
デプロイまたはステートフルセットの更新が試行されていますが、失敗しており、ロールバックがまだ発生していません。UiPath® サポートにお問い合わせください。
複数のレプリカを持つ高可用性クラスターでは、レプリカの数が最適でない場合に、このアラートが発生します。クラスター内にスケジュールするためのリソースが十分にない場合に発生する可能性があります。リソースの使用状況をチェックし、必要に応じて容量を追加します。それ以外の場合は、UiPath® サポートにお問い合わせください。
ステートフルセットの更新に失敗しました。UiPath® サポートにお問い合わせください。
「StatefulSets」もご覧ください。
デーモンセットのロールアウトに失敗しました。UiPath® サポートにお問い合わせください。
「DaemonSet」もご覧ください。
kubectl describe
をチェックしてください。コンテナーが待機中になる最も一般的な原因は、イメージのプルの失敗です。エアギャップ クラスターの場合は、ローカル レジストリが利用できないことを意味している可能性があります。問題が解決しない場合は UiPath® サポートにお問い合わせください。
いずれかのノードの問題を示している可能性があります。各ノードの正常性をチェックし、既知の問題を修正してください。それ以外の場合は、UiPath® サポートにお問い合わせください。
オートスケーラーがターゲットのリソースを構成どおりにスケーリングできません。実際の値よりも要求値のほうが大きい場合は、リソース不足の可能性があります。実際の値よりも要求値のほうが小さい場合は、シャットダウン中にポッドがスタックしている可能性があります。問題が解決しない場合は UiPath® サポートにお問い合わせください。
「Horizontal Pod Autoscaling」もご覧ください。
指定されたサービスのレプリカの数が最大数に達しています。これは、クラスターに対する要求の数が非常に多い場合に発生します。高いトラフィックが予想される場合、一時的には、このアラートを抑制できます。ただし、このアラートは、クラスターがフル稼働で、それ以上のトラフィックを処理できないということを示しています。さらに多くのリソース容量がクラスターで利用できる場合は、以下の操作を実行してサービスの最大レプリカ数を増やすことができます。
# Find the horizontal autoscaler that controls the replicas of the desired resource
kubectl get hpa -A
# Increase the number of max replicas of the desired resource, replacing <namespace> <resource> and <maxReplicas>
kubectl -n <namespace> patch hpa <resource> --patch '{"spec":{"maxReplicas":<maxReplicas>}}'
# Find the horizontal autoscaler that controls the replicas of the desired resource
kubectl get hpa -A
# Increase the number of max replicas of the desired resource, replacing <namespace> <resource> and <maxReplicas>
kubectl -n <namespace> patch hpa <resource> --patch '{"spec":{"maxReplicas":<maxReplicas>}}'
「Horizontal Pod Autoscaling」もご覧ください。
これらの警告は、クラスターがノードの障害に耐えられないことを示しています。シングルノードの評価クラスターの場合、これは既知であり、これらのアラートは抑制できます。マルチノードの HA 対応の運用環境の設定の場合、あまりにも多くのノードが異常になって高可用性をサポートできないときにこれらのアラートが発生し、ノードを正常に戻すか交換する必要があることを示します。
KubeCPUQuotaOvercommit, KubeMemoryQuotaOvercommit, KubeQuotaAlmostFull, KubeQuotaFullyUsed, KubeQuotaExceeded
これらのアラートは、カスタマイズを通じて追加された場合にのみクラスターに存在する、名前空間のリソース クォータに関連します。名前空間のリソース クォータは、Automation Suite のインストールの一環として追加されません。
「リソース クォータ」もご覧ください。
Warning の場合: 利用可能な領域が 30% を下回っており、4 日以内に満杯になる可能性があります。
Critical の場合: 利用可能な領域が 10% を下回っています。
サービスで領域を使い果たした場合、データの復元が困難になる可能性があります。したがって、利用可能な領域が 0% に達する前にボリュームのサイズを変更する必要があります。
手順については、「クラスターを構成する」をご覧ください。
Prometheus 固有のアラートに関する詳細および手順については「PrometheusStorageUsage」をご覧ください。
kube-state-metrics コレクターがクラスターからメトリックを収集しようとすると必ずエラーが発生します。これは、重要なアラートが発生しない可能性があることを意味します。UiPath® サポートにお問い合わせください。
公開中の kube-state-metrics もご覧ください。
Warning の場合: Kubernetes API サーバーへの認証に使用されるクライアント証明書の有効期限が残り 7 日を切りました。
Critical の場合: Kubernetes API サーバーへの認証に使用されるクライアント証明書の有効期限が残り 1 日を切りました。
証明書を更新する必要があります。
Kubernetes コントロール プレーンに問題があることを示しています。マスター ノードの正常性をチェックし、未解決の問題を解決します。問題が解決しない場合は、UiPath® サポートにお問い合わせください。
以下の記事もご覧ください。
KubeNodeNotReady, KubeNodeUnreachable, KubeNodeReadinessFlapping, KubeletPlegDurationHigh, KubeletPodStartUpLatencyHigh, KubeletDown
これらのアラートは、ノードに問題があることを示しています。マルチ モードの HA 対応の運用クラスターにおいて、ポッドが他のノードにスケジュール変更される可能性があります。問題が解決しない場合は、ノードの削除およびドレインを行い、クラスターの正常性を維持する必要があります。容量が追加されていないクラスターでは、まず別のノードをクラスターに参加させる必要があります。
指定したノードで実行されているポッドが多すぎます。
クラスターに別のノードを参加させます。
Warning の場合: Kubelet のクライアント証明書またはサーバー証明書の有効期限が残り 7 日を切りました。
Critical の場合: Kubelet のクライアント証明書またはサーバー証明書の有効期限が残り 1 日を切りました。
証明書を更新する必要があります。
異なるセマンティック バージョンの Kubernetes コンポーネントが実行中です。これは、Kubernetes のアップグレードに失敗した結果として生じることがあります。
Kubernetes API サーバー クライアントでのエラー発生率が 1% を超えています。このクライアントが実行されているノード、またはKubernetes API サーバー自体に問題がある可能性があります。
このアラートは、Kubernetes ノードでのメモリ使用量が非常に高いことを示しています。
このアラートが発生した場合は、メモリを多く消費しているポッドの特定を試みてください。
特定のノードのファイルシステムが満杯になりつつあります。ディスクを追加するか未使用のディスクをマウントすることによって、さらに多くの領域をプロビジョニングします。
ノードの物理的ネットワーク インターフェイスに問題があります。問題が解決しない場合は、交換が必要になることがあります。
クラスター内のノード間の通信を切断させてしまう問題が原因で、ノードが応答しなくなっています。
この問題を修正するには、影響を受けているノードを再起動してください。問題が解決しない場合は、サポート バンドル ツールを使用して UiPath® サポートにお問い合わせください。
これらのアラートは、クラスターのメモリとストレージの使用量が設定された上限に近づいていることを警告します。クラスターで使用量が最近大幅に増加した (通常はユーザーではなくロボットによる使用) 場合、または Prometheus のリソースを調整せずにノードがクラスターに追加されたときに発生する可能性が高くなります。この問題は、収集されるメトリック数の増加が原因で発生します。
ストレージ使用量の増加率は、[Kubernetes / Persistent Volumes] ダッシュボードで確認できます。
これは、「クラスターを構成する」の手順に従って PVC のサイズを変更することで、調整できます。
メモリ使用量の増加率は、[Kubernetes / Compute Resources / Pod] ダッシュボードで確認できます。
これは、ArgoCD のランチャー監視アプリで Prometheus のメモリ リソースの制限値を編集することによって調整できます。[Save] をクリックすると、ランチャー監視アプリが自動的に再同期します。
Prometheus を再起動し、Grafana でのメトリックの表示が再開するには時間がかかります。大規模なクラスタであっても、通常 10 分未満かかります。
これらは、複数の AlertManager レプリカを持つ HA クラスターを対象とする、内部の AlertManager エラーです。アラートが断続的に表示されたり消えたりする場合があります。一時的に AlertManager レプリカを縮小して拡大すると、問題が解決する可能性があります。
この問題を修正するには、次の手順に従います。
-
ゼロで表示。ポッドがシャットダウンするまで少し時間がかかることに注意してください。
kubectl scale statefulset -n cattle-monitoring-system alertmanager-rancher-monitoring-alertmanager --replicas=0
kubectl scale statefulset -n cattle-monitoring-system alertmanager-rancher-monitoring-alertmanager --replicas=0 -
2 に縮小:
kubectl scale statefulset -n cattle-monitoring-system alertmanager-rancher-monitoring-alertmanager --replicas=2
kubectl scale statefulset -n cattle-monitoring-system alertmanager-rancher-monitoring-alertmanager --replicas=2 -
Alertmanager ポッドが起動し、実行ステートになっているかどうかを確認します。
kubectl get po -n cattle-monitoring-system
kubectl get po -n cattle-monitoring-system
問題が解決しない場合は UiPath® サポートにお問い合わせください。
PrometheusOperatorListErrors, PrometheusOperatorWatchErrors, PrometheusOperatorSyncFailed, PrometheusOperatorReconcileErrors, PrometheusOperatorNodeLookupErrors, PrometheusOperatorNotReady, PrometheusOperatorRejectedResources
Prometheus リソースを制御する Prometheus 演算子の内部エラーです。このエラーが発生している間はまだ Prometheus 自体は正常ですが、このエラーは、監視の構成可能性が低下していることを示しています。UiPath® サポートにお問い合わせください。
Prometheus による構成の読み込みまたは再読み込みが失敗しました。Prometheus のカスタム構成に入力エラーがないかチェックし、それ以外の場合は、UiPath® サポートにお問い合わせください。
PrometheusErrorSendingAlertsToSomeAlertmanagers, PrometheusErrorSendingAlertsToAnyAlertmanager, PrometheusNotConnectedToAlertmanagers
Prometheus から AlertManager への接続が正常ではありません。メトリックは依然としてクエリ可能で、Grafana ダッシュボードに引き続き表示される可能性がありますが、アラートは発生しません。AlertManager のカスタム構成に入力エラーがないかチェックし、入力エラーでない場合は、UiPath® サポートにお問い合わせください。
PrometheusNotificationQueueRunningFull, PrometheusTSDBReloadsFailing, PrometheusTSDBCompactionsFailing, PrometheusNotIngestingSamples, PrometheusDuplicateTimestamps, PrometheusOutOfOrderTimestamps, PrometheusRemoteStorageFailures, PrometheusRemoteWriteBehind, PrometheusRemoteWriteDesiredShards
メトリックが期待どおりに収集されない可能性があることを示す、内部 Prometheus エラーです。UiPath® サポートにお問い合わせください。
これは、存在しないメトリックまたは誤った PromQL 構文に基づく、正しくないアラートがある場合に発生する可能性があります。カスタム アラートが追加されていない場合は、UiPath® サポートにお問い合わせください。
Prometheus がアラートを発生させるべきかどうかを評価できません。これは、アラートが多すぎる場合に発生することがあります。コストのかかるカスタム アラートの評価を削除したり、Prometheus の CPU 制限値の引き上げに関するドキュメントを参照してください。カスタム アラートが追加されていない場合は、UiPath® サポートにお問い合わせください。
UiPathAvailabilityHighTrafficUserFacing, UiPathAvailabilityHighTrafficBackend, UiPathAvailabilityMediumTrafficUserFacing, UiPathAvailabilityMediumTrafficBackend, UiPathAvailabilityLowTrafficUserFacing, UiPathAvailabilityLowTrafficBackend
UiPath® サービスからの http 500 応答の数が、指定されたしきい値を超えています。
トラフィック レベル |
20 分以内のリクエスト数 |
エラーしきい値 (http 500番台のエラー) |
---|---|---|
高 (High) |
>100,000 |
0.1% |
中 |
10,000 ~ 100,000 |
1% |
低 (Low) |
< 10,000 |
5% |
ユーザー向けのサービスでエラーが発生すると、Automation Suite UI で直接確認可能な機能低下が生じる可能性があります。これに対し、バックエンド サービスのエラーによる影響はあまり明白ではない可能性があります。
このアラートによって、どのサービスのエラー率が高いのかがわかります。レポートしているサービスが依存している他のサービスからどのような連鎖的な問題が生じ得るのかを理解するには、サービス間のエラーを表示する Istio Workload ダッシュボードを使用できます。
最近になって再構成された Automation Suite 製品すべてを再確認してください。kubectl logs コマンドで詳細なログを使用することもできます。エラーが解決しない場合は UiPath® サポートにご連絡ください。
uipath-infra/istio-configure-script-cronjob
cronjob が中断ステートにあります。
この問題を修正するには、次の手順に従って cronjob を有効化します。
export KUBECONFIG="/etc/rancher/rke2/rke2.yaml" && export PATH="$PATH:/usr/local/bin:/var/lib/rancher/rke2/bin"
kubectl -n uipath-infra patch cronjob istio-configure-script-cronjob -p '{"spec":{"suspend":false}}'
epoch=$(date +"%s")
kubectl -n uipath-infra create job istio-configure-script-cronjob-manual-$epoch --from=cronjob/istio-configure-script-cronjob
kubectl -n uipath-infra wait --for=condition=complete --timeout=300s job/istio-configure-script-cronjob-manual-$epoch
kubectl get node -o wide
#Verify if all the IP's listed by the above command are part of output of below command
kubectl -n istio-system get svc istio-ingressgateway -o json | jq '.spec.externalIPs'
export KUBECONFIG="/etc/rancher/rke2/rke2.yaml" && export PATH="$PATH:/usr/local/bin:/var/lib/rancher/rke2/bin"
kubectl -n uipath-infra patch cronjob istio-configure-script-cronjob -p '{"spec":{"suspend":false}}'
epoch=$(date +"%s")
kubectl -n uipath-infra create job istio-configure-script-cronjob-manual-$epoch --from=cronjob/istio-configure-script-cronjob
kubectl -n uipath-infra wait --for=condition=complete --timeout=300s job/istio-configure-script-cronjob-manual-$epoch
kubectl get node -o wide
#Verify if all the IP's listed by the above command are part of output of below command
kubectl -n istio-system get svc istio-ingressgateway -o json | jq '.spec.externalIPs'
このジョブによって、SQL 統合認証用に Active Directory サーバーから最新の Kerberos チケットを取得します。このジョブが失敗すると、SQL Server の認証が失敗します。UiPath® サポートにお問い合わせください。
このアラートは、Ceph ストレージ クラスターの使用状況が 75% を超えたこと、ならびに 85% に到達すると読み取り専用になることを示します。
このアラートが発生した場合は、「PVC のサイズを変更する」の手順に従って、AI Center または Task Mining の未使用のデータセットを削除して Ceph 内の一部の領域を解放するか Ceph PVC で利用可能なストレージを拡張します。
PVC のサイズを変更する前に、ストレージ要件を満たしていることを確認してください。詳しくは、「必要なストレージを評価する」をご覧ください。
このアラートは、Ceph ストレージ クラスターの使用状況が 80% を超えたこと、ならびに 85% に到達すると読み取り専用になることを示します。
このアラートが発生した場合は、「PVC のサイズを変更する」の手順に従って、AI Center または Task Mining の未使用のデータセットを削除して Ceph 内の一部の領域を解放するか Ceph PVC で利用可能なストレージを拡張します。
PVC のサイズを変更する前に、ストレージ要件を満たしていることを確認してください。詳しくは、「必要なストレージを評価する」をご覧ください。
このアラートは、Ceph ストレージ クラスターの使用状況が 85% を超えたため、これより読み取り専用になることを示します。いくつかの領域を解放するか、ストレージ クラスターを直ちに拡張してください。
このアラートが発生した場合は、「PVC のサイズを変更する」の手順に従って、AI Center または Task Mining の未使用のデータセットを削除して Ceph 内の一部の領域を解放するか Ceph PVC で利用可能なストレージを拡張します。
PVC のサイズを変更する前に、ストレージ要件を満たしていることを確認してください。詳しくは、「必要なストレージを評価する」をご覧ください。
このアラートは、Ceph のストレージ プールの使用量が 90% を超えたことを示します。
このアラートが発生した場合は、「PVC のサイズを変更する」の手順に従って、AI Center または Task Mining の未使用のデータセットを削除して CEPH 内の一部の領域を解放するか Ceph PVC で利用可能なストレージを拡張します。
PVC のサイズを変更する前に、ストレージ要件を満たしていることを確認してください。詳しくは、「必要なストレージを評価する」をご覧ください。
このアラートは、Ceph ストレージ クラスターが 10 分を超えてエラー ステートにあることを示します。
rook-ceph-mgr
ジョブが許容できない時間エラー ステートにあることを示しています。このアラートよりも前にトリガーされた可能性がある他のアラートがないか確認し、それらのアラートを先にトラブル―シューティングしてください。
このアラートは、ストレージ クラスターのクォーラムが少ないことを示します。
複数の Monitor が連携して動作し冗長性を確保します。これが可能なのは、各 Monitor がメタデータのコピーを保持しているためです。クラスターは 3 つの Monitor でデプロイされ、クォーラムのとストレージ操作を実行するには、2 つ以上の Monitor が実行されている必要があります。クォーラムが失われた場合、データへのアクセスが失われる可能性があります。
このアラートが発生した場合は、終了ステートにある OSD があるかどうかを確認し、そうである場合は、そのポッドを強制的に削除し、演算子が調整を行うまでしばらく待ちます。問題が解決しない場合は UiPath® サポートにお問い合わせください。
アラートの重要度が Critical の場合、利用可能な領域は 20% を下回っています。
サービスで領域を使い果たした場合、データの復元が困難になる可能性があります。したがって、利用可能な領域が 10% に達する前にボリュームのサイズを変更する必要があります。手順については「クラスターを構成する」をご覧ください。
このアラートは、RabbitMQ クラスターで実行されているノードが 3 つ未満であることを示します。
kubectl logs <pod-name> -n <namespace>
コマンドを使用して、どの RabbitMQ ポッドがダウンしているか確認します。この問題を修正するには、kubectl delete pod <pod-name> -n <namespace>
コマンドを使用してポッドを削除し、新しいポッドが起動したら、もう一度確認します。
このアラートは、サーバー TLS 証明書の有効期限が次の 30 日で切れることを示します。
この問題を修正するには、サーバー TLS 証明書を更新します。手順については、「サーバー証明書を管理する」をご覧ください。
このアラートは、サーバー TLS 証明書の有効期限が次の 7 日で切れることを示します。
この問題を修正するには、TLS 証明書を更新します。手順については、「サーバー証明書を管理する」をご覧ください。
このアラートは、ID トークン署名証明書の有効期限が次の 30 日で切れることを示します。
この問題を修正するには、ID トークン署名証明書を更新します。手順については、「サーバー証明書を管理する」をご覧ください。
このアラートは、ID トークン署名証明書の有効期限が次の 7 日で切れることを示します。
この問題を修正するには、ID トークン署名証明書を更新します。手順については、「サーバー証明書を管理する」をご覧ください。
このアラートは、etcd クラスターのメンバー数が不十分であることを示します。クラスターのメンバー数は奇数である必要があります。このアラートの重要度は「Critical」です。
クラスター内のサーバー ノード数が奇数で、すべてのノードが正常に動作していることを確認してください。
このアラートは、etcd サーバーが過去 1 時間に 5 件以上の提案に失敗したことを示します。このアラートの重要度は「Warning」です。
/var/lib/rancher
パーティションの空き領域が次の割合より少ないことを示します。
- 35% – アラートの重要度は「Warning」です。
- 25% – アラートの重要度は「Critical」です。
このアラートが発生した場合は、ディスクの容量を増やしてください。
/var/lib/kubelet
パーティションの空き領域が次の割合より少ないことを示します。
- 35% – アラートの重要度は「Warning」です。
-
25% – アラートの重要度は「Critical」です。
このアラートが発生した場合は、ディスクの容量を増やしてください。
このアラートは、Longhorn ディスクの空き領域が次の割合より少ないことを示します。
- 35% – アラートの重要度は「Warning」です。
- 25% – アラートの重要度は「Critical」です。
このアラートが発生した場合は、ディスクの容量を増やしてください。
Longhorn によって作成されたバックアップ オブジェクトまたはスナップショット オブジェクトの累積数が増えすぎた場合は、以下のいずれかのアラートが発生する可能性があります。
これらのアラートがトリガーされる問題を修正するには、以下のスクリプトを実行します。
#!/bin/bash
set -e
# longhorn backend URL
url=
# By default, snapshot older than 10 days will be deleted
days=-1
function display_usage() {
echo "usage: $(basename "$0") [-h] -u longhorn-url -d days"
echo " -u Longhorn URL"
echo " -d Number of days(should be >0). By default, script will delete snapshot older than 10 days."
echo " -h Print help"
}
while getopts 'hd:u:' flag "$@"; do
case "${flag}" in
u)
url=${OPTARG}
;;
d)
days=${OPTARG}
[ "$days" ] && [ -z "${days//[0-9]}" ] || { echo "Invalid number of days=$days"; exit 1; }
;;
h)
display_usage
exit 0
;;
:)
echo "Invalid option: ${OPTARG} requires an argument."
exit 1
;;
*)
echo "Unexpected option ${flag}"
exit 1
;;
esac
done
[[ -z "$url" ]] && echo "Missing longhorn URL" && exit 1
# check if URL is valid
curl -s --connect-timeout 30 ${url}/v1 >> /dev/null || { echo "Unable to connect to longhorn backend"; exit 1; }
echo "Deleting snapshots older than $days days"
# Fetch list of longhorn volumes
vols=$( (curl -s -X GET ${url}/v1/volumes |jq -r '.data[].name') )
#delete given snapshot for given volume
function delete_snapshot() {
local vol=$1
local snap=$2
[[ -z "$vol" || -z "$snap" ]] && echo "Error: delete_snapshot: Empty argument" && return 1
curl -s -X POST ${url}/v1/volumes/${vol}?action=snapshotDelete -d '{"name": "'$snap'"}' >> /dev/null
echo "Snapshot=$snap deleted for volume=$vol"
}
#perform cleanup for given volume
function cleanup_volume() {
local vol=$1
local deleted_snap=0
[[ -z "$vol" ]] && echo "Error: cleanup_volume: Empty argument" && return 1
# fetch list of snapshot
snaps=$( (curl -s -X POST ${url}/v1/volumes/${vol}?action=snapshotList | jq -r '.data[] | select(.usercreated==true) | .name' ) )
for i in ${snaps[@]}; do
echo $i
if [[ $i == "volume-head" ]]; then
continue
fi
# calculate date difference for snapshot
snapTime=$(curl -s -X POST ${url}/v1/volumes/${vol}?action=snapshotGet -d '{"name":"'$i'"}' |jq -r '.created')
currentTime=$(date "+%s")
timeDiff=$((($(date -d $snapTime "+%s") - $currentTime) / 86400))
if [[ $timeDiff -lt $days ]]; then
echo "Ignoring snapshot $i, since it is older than $timeDiff days"
continue
fi
#trigger deletion for snapshot
delete_snapshot $vol $i
deleted_snap=$((deleted_snap+1))
done
if [[ "$deleted_snap" -gt 0 ]]; then
#trigger purge for volume
curl -s -X POST ${url}/v1/volumes/${vol}?action=snapshotPurge >> /dev/null
fi
}
for i in ${vols[@]}; do
cleanup_volume $i
done
#!/bin/bash
set -e
# longhorn backend URL
url=
# By default, snapshot older than 10 days will be deleted
days=-1
function display_usage() {
echo "usage: $(basename "$0") [-h] -u longhorn-url -d days"
echo " -u Longhorn URL"
echo " -d Number of days(should be >0). By default, script will delete snapshot older than 10 days."
echo " -h Print help"
}
while getopts 'hd:u:' flag "$@"; do
case "${flag}" in
u)
url=${OPTARG}
;;
d)
days=${OPTARG}
[ "$days" ] && [ -z "${days//[0-9]}" ] || { echo "Invalid number of days=$days"; exit 1; }
;;
h)
display_usage
exit 0
;;
:)
echo "Invalid option: ${OPTARG} requires an argument."
exit 1
;;
*)
echo "Unexpected option ${flag}"
exit 1
;;
esac
done
[[ -z "$url" ]] && echo "Missing longhorn URL" && exit 1
# check if URL is valid
curl -s --connect-timeout 30 ${url}/v1 >> /dev/null || { echo "Unable to connect to longhorn backend"; exit 1; }
echo "Deleting snapshots older than $days days"
# Fetch list of longhorn volumes
vols=$( (curl -s -X GET ${url}/v1/volumes |jq -r '.data[].name') )
#delete given snapshot for given volume
function delete_snapshot() {
local vol=$1
local snap=$2
[[ -z "$vol" || -z "$snap" ]] && echo "Error: delete_snapshot: Empty argument" && return 1
curl -s -X POST ${url}/v1/volumes/${vol}?action=snapshotDelete -d '{"name": "'$snap'"}' >> /dev/null
echo "Snapshot=$snap deleted for volume=$vol"
}
#perform cleanup for given volume
function cleanup_volume() {
local vol=$1
local deleted_snap=0
[[ -z "$vol" ]] && echo "Error: cleanup_volume: Empty argument" && return 1
# fetch list of snapshot
snaps=$( (curl -s -X POST ${url}/v1/volumes/${vol}?action=snapshotList | jq -r '.data[] | select(.usercreated==true) | .name' ) )
for i in ${snaps[@]}; do
echo $i
if [[ $i == "volume-head" ]]; then
continue
fi
# calculate date difference for snapshot
snapTime=$(curl -s -X POST ${url}/v1/volumes/${vol}?action=snapshotGet -d '{"name":"'$i'"}' |jq -r '.created')
currentTime=$(date "+%s")
timeDiff=$((($(date -d $snapTime "+%s") - $currentTime) / 86400))
if [[ $timeDiff -lt $days ]]; then
echo "Ignoring snapshot $i, since it is older than $timeDiff days"
continue
fi
#trigger deletion for snapshot
delete_snapshot $vol $i
deleted_snap=$((deleted_snap+1))
done
if [[ "$deleted_snap" -gt 0 ]]; then
#trigger purge for volume
curl -s -X POST ${url}/v1/volumes/${vol}?action=snapshotPurge >> /dev/null
fi
}
for i in ${vols[@]}; do
cleanup_volume $i
done
このアラートは、Longhorn によってシステム内に作成されるバックアップ オブジェクトの累積数が増加しており、ダウンタイムが発生する可能性があることを示します。このアラートの重要度は「Warning」です。
このアラートは、Longhorn のバックアップ数が 150 以上 200 未満の場合にトリガーされます。
このアラートは、Longhorn によってシステム内に作成されるバックアップ オブジェクトの累積数が増加しており、ダウンタイムが発生する可能性があることを示します。このアラートの重要度は「Critical」です。
このアラートは、Longhorn のバックアップ数が 200 以上 240 未満の場合にトリガーされます。
このアラートは、Longhorn によってシステム内に作成されるスナップショット オブジェクトの累積数が増加しており、ダウンタイムが発生する可能性があることを示します。このアラートの重要度は「Warning」です。
このアラートは、スナップショットの数が 150 以上 200 未満の場合にトリガーされます。
- アラートの重要度キー
- general.rules
- TargetDown
- Watchdog
- kubernetes-apps
- KubePodCrashLooping
- KubePodNotReady
- KubeDeploymentGenerationMismatch, KubeStatefulSetGenerationMismatch
- KubeDeploymentReplicasMismatch, KubeStatefulSetReplicasMismatch
- KubeStatefulSetUpdateNotRolledOut
- KubeDaemonSetRolloutStuck
- KubeContainerWaiting
- KubeDaemonSetNotScheduled, KubeDaemonSetMisScheduled
- KubeJobCompletion
- KubeJobFailed
- KubeHpaReplicasMismatch
- KubeHpaMaxedOut
- kubernetes-resources
- KubeCPUOvercommit, KubeMemoryOvercommit
- KubeCPUQuotaOvercommit, KubeMemoryQuotaOvercommit, KubeQuotaAlmostFull, KubeQuotaFullyUsed, KubeQuotaExceeded
- CPUThrottlingHigh
- Kubernetes-storage
- KubePersistentVolumeFillingUp
- KubePersistentVolumeErrors
- kube-state-metrics
- KubeStateMetricsListErrors, KubeStateMetricsWatchErrors
- kubernetes-system-apiserver
- KubeClientCertificateExpiration
- AggregatedAPIErrors, AggregatedAPIDown, KubeAPIDown, KubeAPITerminatedRequests
- KubernetesApiServerErrors
- kubernetes-system-kubelet
- KubeNodeNotReady, KubeNodeUnreachable, KubeNodeReadinessFlapping, KubeletPlegDurationHigh, KubeletPodStartUpLatencyHigh, KubeletDown
- KubeletTooManyPods
- KubeletClientCertificateExpiration, KubeletServerCertificateExpiration
- KubeletClientCertificateRenewalErrors, KubeletServerCertificateRenewalErrors
- kubernetes-system
- KubeVersionMismatch
- KubeClientErrors
- KubernetesMemoryPressure
- KubernetesDiskPressure
- Kube-apiserver-slos
- KubeAPIErrorBudgetBurn
- node-exporter
- NodeFilesystemSpaceFillingUp、NodeFilesystemAlmostOutOfSpace、NodeFilesystemFilesFillingUp
- NodeRAIDDegraded
- NodeRAIDDiskFailure
- NodeNetworkReceiveErrs, NodeNetworkTransmitErrs, NodeHighNumberConntrackEntriesUsed
- NodeClockSkewDetected, NodeClockNotSynchronising
- node-network
- NodeNetworkInterfaceFlapping
- InternodeCommunicationBroken
- uipath.prometheus.resource.provisioning.alerts
- PrometheusMemoryUsage, PrometheusStorageUsage
- alertmanager.rules
- AlertmanagerConfigInconsistent
- AlertmanagerFailedReload
- prometheus-operator
- PrometheusOperatorListErrors, PrometheusOperatorWatchErrors, PrometheusOperatorSyncFailed, PrometheusOperatorReconcileErrors, PrometheusOperatorNodeLookupErrors, PrometheusOperatorNotReady, PrometheusOperatorRejectedResources
- Prometheus
- PrometheusBadConfig
- PrometheusErrorSendingAlertsToSomeAlertmanagers, PrometheusErrorSendingAlertsToAnyAlertmanager, PrometheusNotConnectedToAlertmanagers
- PrometheusNotificationQueueRunningFull, PrometheusTSDBReloadsFailing, PrometheusTSDBCompactionsFailing, PrometheusNotIngingSamples, PrometheusDuplicateTimestamps, PrometheusOutOfOrderTimestamps, PrometheusRemoteStorageFailures, PrometheusRemoteWriteBehind, PrometheusRemoteWriteDesiredShards
- PrometheusRuleFailures
- PrometheusMissingRuleEvaluations
- PrometheusTargetLimitHit
- uipath.availability.alerts
- UiPathAvailabilityHighTrafficBackend、UiPathAvailabilityMediumTrafficUserFaceing、UiPathAvailabilityMediumTrafficBackend、UiPathAvailabilityLowTrafficUserFaceing、UiPathAvailabilityLowTrafficBackend
- uipath.cronjob.alerts.rules
- CronJobSuspended
- UiPath CronJob 「kerberos-tgt-refresh」が失敗している
- IdentityKerberosTgtUpdateFailed
- Ceph のアラート
- CephClusterNearFull
- CephClusterCriticallyFull
- CephClusterReadOnly
- CephPoolQuotaBytesCriticallyExhausted
- CephClusterErrorState
- CephMonQuorumAtRisk
- CephOSDCriticallyFull
- uipath.requestrouting.alerts
- UiPathRequestRouting
- RabbitmqNodeDown
- サーバー TLS 証明書のアラート
- SecretCertificateExpiry30Days
- SecretCertificateExpiry7Days
- ID トークン署名証明書のアラート
- IdentityCertificateExpiry30Days
- IdentityCertificateExpiry7Days
- etdc のアラート
- EtcdInsufficientMembers
- EtcdNoLeader
- EtcdHighNumberOfLeaderChanges
- EtcdHighNumberOfFailedGrpcRequests
- EtcdGrpcRequestsSlow
- EtcdHighNumberOfFailedHttpRequests
- EtcdHttpRequestsSlow
- EtcdMemberCommunicationSlow
- EtcdHighNumberOfFailedProposals
- EtcdHighFsyncDurations
- EtcdHighCommitDurations
- ディスク サイズのアラート
- LowDiskForRancherPartition
- LowDiskForKubeletPartition
- LowDiskForLonghornPartition
- LowDiskForVarPartition
- バックアップのアラート
- NFSServerDisconnected
- VolumeBackupFailed
- BackupDisabled
- longhorn-snapshot-alert
- LonghornBackupObjectThresholdExceededWarn
- LonghornBackupObjectThresholdExceededCritical
- LonghornSnapshotObjectThresholdExceededWarn
- LonghornSnapshotObjectThresholdExceededCritical