Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Paragon Automationのインストールのトラブルシューティング

以下のトピックでは、インストール中およびインストール後に発生する可能性のある一般的な問題のトラブルシューティング方法について説明します。

コンフィギュレーション・ファイルのマージ競合を解決する

initスクリプトは、テンプレート設定ファイルを作成します。インストールに使用したのと同じconfig-dirディレクトリを使用して既存のインストールを更新すると、initスクリプトが作成するテンプレートファイルは既存の設定ファイルとマージされます。場合によっては、このマージアクションによって、解決しなければならないマージの競合が発生します。スクリプトは、競合を解決する方法についてプロンプトを表示します。プロンプトが表示されたら、以下のオプションの1つを選択します。

  • C - 既存の設定ファイルを保持し、新しいテンプレートファイルを破棄できます。これはデフォルトのオプションです。

  • n—既存の設定ファイルを破棄し、テンプレートファイルを再初期化できます。

  • m—ファイルを手動でマージできます。競合するセクションは、 <<<<<<<<||||||||========>>>>>>>>で始まる行でマークされます。更新を続行する前に、ファイルを編集し、マージマーカーを削除する必要があります。

  • d—競合の解決方法を決定する前に、ファイル間の違いを確認できます。

バックアップと復元に関する一般的な問題を解決する

既存のクラスターを破棄し、同じクラスターノードにソフトウェアイメージを再デプロイするとします。このようなシナリオでは、以前にバックアップされた設定フォルダーから設定を復元しようとすると、復元操作が失敗することがあります。バックアップされた設定のマウントパスが変更されたため、復元操作は失敗します。既存のクラスターを破棄すると、永続ボリュームが削除されます。新しいイメージを再デプロイすると、永続ボリュームは、使用可能なスペースがあればクラスターノードの1つに再作成されますが、必ずしも以前に存在していたのと同じノードにあるとは限りません。その結果、復元操作は失敗します。

これらのバックアップと復元の問題を回避するには、次の手順に従います。

  1. 新しい永続ボリュームのマウントパスを決定します。

  2. 前の永続ボリュームのマウントパスの内容を新しいパスにコピーします。

  3. 復元操作を再試行してください。

インストールログファイルの表示

deployスクリプトが失敗した場合は、config-dirディレクトリ内のインストールログファイルを確認する必要があります。デフォルトでは、config-dirディレクトリには6つのzipログファイルが保存されます。現在のログファイルはlogとして保存され、以前のログファイルはlog.1からlog.5ファイルとして保存されます。deployスクリプトを実行するたびに、現在のログが保存され、最も古いログが破棄されます。

通常、エラーメッセージはログファイルの最後に表示されます。エラーメッセージを表示し、設定を修正します。

Grafanaでログファイルを表示する

Grafanaは、オープンソースのデータ可視化ツールです。Grafana UIを使用して、データの整理と理解に役立つチャート、グラフ、その他のビジュアルを作成および表示します。ダッシュボードを作成してデバイスのステータスを監視したり、UIからデータを照会したり結果を表示したりすることもできます。Grafana UIは、Paragon Automation時系列データベース(TSDB)からデータをレンダリングします。詳細については、 Grafana のドキュメントを参照してください。

Grafana アプリケーションでログを表示するには:

  1. Grafanaにアクセスするには、以下のいずれかの方法を使用します。
    • イングレスコントローラーの仮想IP(VIP)アドレスを使用します。 ブラウザを開き、URLフィールドに https://vip-of-ingress-controller-or-hostname-of-main-web-application/クラスター-logs と入力します。
    • ログページを使用します: Paragon Automation UIで、左側のナビゲーションバーにある 監視>ログ をクリックします。
  2. インストール時にconfig.ymlファイルで設定したgrafana_admin_userユーザー名とgrafana_admin_passwordパスワードを入力します。デフォルトのユーザー名はadminです。

    grafana_admin_passwordパスワードを設定しない場合、インストーラはランダムなパスワードを生成します。次のコマンドを使用してパスワードを取得できます。

    # kubectl get secret -n kube-system grafana -o jsonpath={..grafana-password} | base64 -d

  3. ページの左上隅にあるホームをクリックします。
  4. Paragonログをクリックしてログを表示します。まだ表示されない場合は、[Paragon Logs]を検索してクリックします。
  5. (オプション)クエリの作成方法の詳細については、「データのクエリと変換」を参照してください。

kubectlインターフェイスを使用したトラブルシューティング

kubectl(Kube Control)は、Kubernetes APIと対話するコマンドラインユーティリティであり、Kubernetesクラスターを制御するための最も一般的なコマンドラインです。

インストール直後にプライマリノードでkubectlコマンドを発行できます。ワーカーノードでkubectlコマンドを発行するには、 admin.conf ファイルをコピーして kubeconfig 環境変数を設定するか、 export KUBECONFIG=config-dir /admin.conf コマンドを使用する必要があります。 admin.conf ファイルは、インストールプロセスの一環として、制御ホストの config-dir ディレクトリにコピーされます。

kubectlコマンドラインツールを使用して、Kubernetes APIと通信し、ノード、ポッド、サービスなどのAPIリソースに関する情報を取得し、ログファイルを表示し、それらのリソースを作成、削除、変更します。

kubectl コマンドの構文は次のとおりです。

kubectl [command] [TYPE] [NAME] [flags]

[command]は、単に実行したいアクションです。

次のコマンドを使用して、kubectlコマンドのリストを表示できます。

root@primary-node:/# kubectl [enter]

ヘルプを求めたり、詳細を取得したり、特定のコマンドに関連するすべてのフラグとオプションをリストしたりできます。例えば:

root@primary-node:/# kubectl get -h

Paragon Automationの動作を検証してトラブルシューティングするには、以下のコマンドを使用します。

[コマンド] 説明
取得

1つまたは複数のリソースを表示します。

出力は、指定されたリソースに関する最も重要な情報の表を示しています。

説明 特定のリソースまたはリソースグループの詳細を表示します。
説明 リソースのドキュメント化。
ログ ポッド内のコンテナーのログを表示します。
ロールアウト再起動 リソースのロールアウトを管理します。
編集 リソースを編集します。

[TYPE] は、表示するリソースのタイプを表します。リソースタイプでは大文字と小文字が区別されず、単数形、複数形、または短縮形を使用できます。

たとえば、ポッド、ノード、サービス、デプロイメントなどです。リソースの完全なリストと許可される省略形(例:pod = po)については、次のコマンドを発行してください。

kubectl api-resources

リソースの詳細については、次のコマンドを発行します。

kubectl explain [TYPE]

例えば:

[NAME] は、特定のリソースの名前(サービスやポッドの名前など)です。名前は大文字と小文字に区別されます。

root@primary-node:/# kubectl get pod pod_name

[flags]コマンドに追加オプションを提供します。たとえば、-oはリソースの属性をさらにリストします。ヘルプ(-h)を使用して、使用可能なフラグに関する情報を取得します。

ほとんどのKubernetesリソース(ポッドやサービスなど)は一部の名前空間に存在し、他の名前空間にはない(ノードなど)存在することに注意してください。

名前空間は、単一のクラスター内でリソースのグループを分離するメカニズムを提供します。リソースの名前は、名前空間内で一意である必要がありますが、名前空間全体では一意ではありません。

名前空間内のリソースでコマンドを使用する場合は、名前空間をコマンドの一部として含める必要があります。名前空間では大文字と小文字が区別されます。適切な名前空間がないと、関心のある特定のリソースが表示されない可能性があります。

kubectl get namespaceコマンドを発行すると、すべての名前空間のリストを取得できます。

すべての名前空間のリソースを表示する場合、または関心のある特定のリソースが属している名前空間が不明な場合は、「 --all-namespaces 」または「 - A」と入力します。

Kubernetesの詳細については、以下を参照してください。

以下のトピックを使用して、kubectl インターフェイスを使用したトラブルシューティングとインストールの詳細の表示を行います。

ノードステータスの表示

kubectl get nodesコマンド(略してkubectl get noコマンド)を使用して、クラスターノードの状態を表示します。ノードのステータスはReadyで、ロールはcontrol-planeまたはnoneのいずれかである必要があります。例えば:

ノードが Readyしない場合は、kubeletプロセスが実行されているかどうかを確認します。ノードのシステムログを使用して問題を調査することもできます。

kubeletを検証するには: root@primary-node:/# kubelet

ポッドのステータスを表示

ポッドのステータスを表示するには、 kubectl get po –n namespace または kubectl get po -A コマンドを使用します。個々の名前空間( healthbotnorthstarcommonなど)を指定することも、 -A パラメーターを使用してすべての名前空間のステータスを表示することもできます。例えば:

正常なポッドのステータスは Running または Completed である必要があり、準備完了のコンテナーの数は合計と一致する必要があります。ポッドのステータスが Running しない場合、またはコンテナの数が一致しない場合は、 kubectl describe po または kubectl log (POD | TYPE/NAME) [-c CONTAINER] コマンドを使用して問題のトラブルシューティングをさらに進めてください。

ポッドに関する詳細情報の表示

kubectl describe po -n namespace pod-name コマンドを使用すると、特定のポッドに関する詳細情報が表示されます。例えば:

Pod内のコンテナのログを表示する

kubectl logs -n namespace pod-name [-c container-name]コマンドを使用して、特定のポッドのログを表示します。Pod に複数のコンテナーがある場合は、ログを表示するコンテナーを指定する必要があります。例えば:

ポッド内のコンテナでコマンドを実行する

kubectl exec –ti –n namespace pod-name [-c container-name] -- command-line コマンドを使用して、Pod 内のコンテナーでコマンドを実行します。例えば:

execコマンドを実行すると、Postgresデータベースサーバーにbashシェルが取得されます。コンテナー内の bash シェルにアクセスし、コマンドを実行してデータベースに接続できます。すべてのコンテナが bash シェルを提供するわけではありません。SSHのみを提供するコンテナもあれば、シェルを持たないコンテナもあります。

サービスを表示

クラスターサービスを表示するには、 kubectl get svc -n namespace または kubectl get svc -A コマンドを使用します。個々の名前空間( healthbotnorthstarcommonなど)を指定することも、 -A パラメーターを使用してすべての名前空間のサービスを表示することもできます。例えば:

この例では、サービスがタイプ別にソートされ、タイプ LoadBalancer のサービスのみが表示されます。クラスターによって提供されるサービスと、それらのサービスにアクセスするためにロードバランサーによって選択された外部IPアドレスを表示できます。

これらのサービスには、クラスターの外部からアクセスできます。外部IPアドレスは公開され、クラスター外のデバイスからアクセスできます。

よく使うkubectlコマンド

  • レプリケーションコントローラーを一覧表示します。

  • コンポーネントを再起動します。

  • Kubernetesリソースの編集: デプロイメントまたは任意のKubernetes APIオブジェクトを編集でき、これらの変更はクラスターに保存されます。ただし、クラスターを再インストールしても、これらの変更は保持されません。

Paragon CLIユーティリティを使用したトラブルシューティング

システムで実行されているポッドでコマンドを実行するための paragon コマンドCLIユーティリティを導入しました。 paragon コマンドは、クラスターの分析、照会、トラブルシューティングを可能にする直感的なコマンドセットです。コマンドを実行するには、いずれかのプライマリ ノードにログインします。一部のコマンドでは、 paragon コマンドユーティリティがkubectlではなくkubecolorコマンドを実行するため、一部のコマンドの出力は色分けされています。出力例については 、図1 を参照してください。

使用可能なコマンドヘルプオプションのセット全体を表示するには、以下のコマンドのいずれかを使用します。

ヘルプオプションは、どのコマンドレベルでも表示できます(最上位レベルだけでなく)。例えば:

タブオプションを使用して、コマンドのオートコンプリートオプションを表示できます。トップレベル コマンドのオートコンプリートを表示するには、「 paragon 」と入力して Tab キーを押します。例えば:

Paragonコマンドが実行する基になるコマンドを表示するには、echoまたは -e オプションを使用します。例えば:

Paragonコマンドを実行し、それが実行する基になるコマンドを表示するには、debugまたは -d オプションを使用します。例えば:

paragonコマンドの全リストと、コマンドが実行される対応する基になるコマンドを表示するには、以下を使用します。

図1:コマンド出力Terminal output of Kubernetes commands showing cluster nodes. Node details: name ix-pgn-pr-01, status Ready, roles control-plane and master, age 17d, version v1.26.6+k2e2r1. Output is color-coded for readability.paragon

各コマンドのヘルプセクションにある引数や前提条件など、特定の使用基準に関する指示に従ってください。一部のコマンドには必須の引数が必要です。たとえば、 paragon insights logs devicegroup analytical コマンドには引数 --dg devicegroup-name-with subgroup が必要です。例えば:

paragon insights logs devicegroup analytical --dg controller-0

一部のコマンドには前提条件があります。例えば、 paragon insights get playbooks コマンドを使用する前に、 paragon set username --cred username および paragon set password --cred password コマンドを使用して、ユーザー名とパスワードを設定する必要があります。

コマンドの完全なセットとその使用基準を 表 1 に示します。

表1:paragon CLIユーティリティ

コマンド

説明

paragon ambassador get emissary

Paragonアンバサダーの使者ポッドを表示します。

paragon ambassador get pods

すべてのParagonアンバサダーポッドを表示します。

paragon ambassador get services

すべてのParagonアンバサダーサービスを表示します。

paragon common postgres roles

Postgres ロールを見つけるのに役立ちます。

paragon describe node

クラスター内の特定のノードの説明を表示します。

--node node-ip 引数を使用します。

例: paragon describe node --node 172.16.x.221

paragon get nodes allコマンドを使用して、ノードのIPアドレスを取得できます。

paragon ems get devicemanager

デバイスマネージャーのParagon emsポッドを表示します。

paragon ems get jobmanager

ジョブマネージャーのParagon EMSポッドを表示します。

paragon ems get pods

すべてのParagon EMSポッドを表示します。

paragon ems get services

すべてのParagon EMSサービスを表示します。

paragon ems logs devicemanager

Paragon EMSデバイスマネージャーポッドのログを表示します。

--type follow引数を使用して、ライブストリーミングログを取得します。

paragon ems logs jobmanager

paragon emsジョブマネージャーポッドのログを表示します。 --type follow 引数を使用して、ライブストリーミングログを取得します。

paragon get namespaces

Paragonで使用可能なすべての名前空間を表示します。

paragon get nodes all

クラスター内のすべてのノードのリストを表示します。

paragon get nodes diskpressure

kubeletにディスク圧があるかどうかを検証します。

--node node_ip/node_name 引数を使用します。

例: paragon get nodes diskpressure --node 172.16.x.221

paragon get nodes memorypressure

kubeletに十分なメモリがあるかどうかを検証します。

--node node_ip/node_name 引数を使用します。

例: paragon get nodes memorypressure --node 172.16.x.221

paragon get nodes networkunavailable

calico とネットワークに問題がないか確認します。

--node node_ip/node_name 引数を使用します。

例: paragon get nodes networkunavailable --node davinci-primary

paragon get nodes notready

クラスター内で準備ができていないすべてのノードのリストを表示します。

paragon get nodes pidpressure

kubeletに十分なPIDが使用可能かどうかを検証します。

--node node_ip/node_name 引数を使用します。

例: paragon get nodes pidpressure --node davinci-worker1

paragon get nodes ready

クラスターで準備が整っているすべてのノードのリストを表示します。

paragon get nodes taint

ノード上のすべてのテイントのリストを表示します。

paragon get pods healthy

正常なParagonポッドをすべて表示します。

paragon get pods unhealthy

不健全な Paragon ポッドをすべて表示します。

paragon get services exposed

公開されているすべてのParagonサービスを表示します。

paragon insights cli alerta

Paragon InsightsアラートポッドのCLIにログインします。

paragon insights cli byoi

BYOIプラグインのCLIにログインします。

--byoi BYOI plugin name 引数を使用します。

paragon insights cli configserver

Paragon Insights設定サーバーポッドのCLIにログインします。

paragon insights cli grafana

Paragon Insights grafana ポッドの CLI にログインします。

paragon insights cli influxdb

Paragon Insights influxdbポッドのCLIにログインします。

--influx influxdb-nodeip 引数を使用してノードIPを指定します。そうでない場合、コマンドは最初のinfluxdbノードをデフォルトノードとして使用します。

例: paragon insights cli influxdb --influx influxdb-172.16.x.21

paragon insights cli mgd

Paragon Insights mgdポッドのCLIにログインします。

paragon insights describe alerta

Paragon Insightsアラートポッドについて説明します。

paragon insights describe api

Paragon Insights REST APIポッドについて説明します。

paragon insights describe configserver

Paragon Insights設定サーバーポッドについて説明します。

paragon insights describe grafana

Paragon Insights grafana ポッドについて説明します。

paragon insights describe influxdb

Paragon Insights influxdbポッドについて説明します。

--influx influxdb-nodeip 引数を使用してノードIPを指定します。そうでない場合、コマンドは最初の influxdb ノードをデフォルト ノードとして使用します。

例: paragon insights describe influxdb --influx influxdb-172.16.x.21

paragon insights describe mgd

Paragon Insights mgdポッドについて説明します。

paragon insights get alerta

Paragon Insightsアラートポッドを表示します。

paragon insights get api

Paragon Insights REST APIポッドを表示します。

paragon insights get configserver

Paragon Insights 設定サーバー ポッドを表示します。

paragon insights get devicegroups

すべてのParagon Insightsデバイスグループを表示します。

デフォルトのユーザー名は adminです。ユーザー名を変更するには、 paragon set user --cred username >コマンドを実行します。

前提として、 paragon set password --cred password コマンドを実行してParagon(UIホスト)パスワードを設定します。

paragon insights get devices

すべてのParagon Insightsデバイスを表示します。

デフォルトのユーザー名は adminです。ユーザー名を変更するには、 paragon set user --cred username コマンドを実行します。

前提として、 paragon set password --cred password コマンドを実行してParagon(UIホスト)パスワードを設定します。

paragon insights get grafana

Paragon Insights grafana ポッドを表示します。

paragon insights get influxdb

Paragon Insights influxdbポッドを表示します。

paragon insights get ingest

Paragon Insightsネットワークテレメトリの取り込みポッドを表示します。

paragon insights get mgd

Paragon Insights mgdポッドを表示します。

paragon insights get playbooks

すべてのParagon Insightsプレイブックを表示します。

デフォルトのユーザー名は adminです。ユーザー名を変更するには、 paragon set user --cred username コマンドを実行します。

前提として、 paragon set password --cred password コマンドを実行してParagon(UIホスト)パスワードを設定します。

paragon insights get pods

すべてのParagon Insightsポッドを表示します。

paragon insights get services

すべてのParagon Insightsサービスを表示します。

paragon insights logs alerta

Paragon Insightsアラートポッドのログを表示します。

paragon insights logs api

Paragon Insights rest APIポッドのログを表示します。

paragon insights logs byoi

Paragon Insights BYOIプラグインのログを表示します。

--byoi BYOI plugin name 引数を使用します。

paragon insights logs configserver

Paragon Insights 設定サーバー ポッドのログを表示します。

paragon insights logs devicegroup analytical

サービス分析エンジン用のParagon Insightsデバイスグループのログを表示します。

--dg device Group name with subgroup 引数を使用します。

例: paragon insights logs devicegroup analytical --dg controller-0

この例では、 controller はデバイスグループ名で、 0 はサブグループです。

paragon insights logs devicegroup itsdb

サービスitsdbのParagon Insightsデバイスグループのログを表示します。

--dg device Group name with subgroup 引数を使用します。

例: paragon insights logs devicegroup itsdb --dg controller-0

この例では、 controller はデバイスグループ名で、 0 はサブグループです。

paragon insights logs devicegroup jtimon

サービスjtimonのParagon Insightsデバイスグループのログを表示します。

--dg device Group name with subgroup 引数を使用します。

例: paragon insights logs devicegroup jtimon --dg controller-0

この例では、 controller はデバイスグループ名で、 0 はサブグループです。

paragon insights logs devicegroup native

サービスjtiネイティブのParagon Insightsデバイスグループのログを表示します。

--dg device Group name with subgroup 引数を使用します。

例: paragon insights logs devicegroup native --dg controller-0

この例では、 controller はデバイスグループ名で、 0 はサブグループです。

paragon insights logs devicegroup syslog

サービスsyslog用のParagon Insightsデバイスグループのログを表示します。

--dg device Group name with subgroup 引数を使用します。

例: paragon insights logs devicegroup syslog --dg controller-0

この例では、 controller はデバイスグループ名で、 0 はサブグループです。

paragon insights logs grafana

Paragon Insights Grafana ポッドのログを表示します。

paragon insights logs influxdb

Paragon Insights influxdbポッドのログを表示します。

--influx influxdb-nodeip 引数を使用してノードIPを指定します。そうでない場合、コマンドは最初の influxdb ノードをデフォルト ノードとして使用します。

例: paragon insights logs influxdb --influx influxdb-172.16.x.21

paragon insights logs mgd

Paragon Insights mgdポッドのログを表示します。

paragon pathfinder cli bmp

Paragon Pathfinder BMPコンテナのCLIにログインします。

paragon pathfinder cli configserver

Paragon Pathfinder ns-configserverコンテナのCLIにログインします。

paragon pathfinder cli crpd

Paragon Pathfinder cRPDコンテナのCLIにログインします。

paragon pathfinder cli debugutils

Paragon Pathfinder debugutilsコンテナのCLIにログインします。

paragon pathfinder cli netconf

Paragon Pathfinder netconfコンテナのCLIにログインします。

paragon pathfinder cli pceserver

Paragon Pathfinder ns-pceserverコンテナ(PCEP)サービスのCLIにログインします。

paragon pathfinder cli pcserver

Paragon Pathfinder ns-pcserver(PCS)コンテナのCLIにログインします。

paragon pathfinder cli pcviewer

Paragon Pathfinder ns-pcsviewer(Paragon Plannerデスクトップアプリケーション)コンテナのCLIにログインします。

paragon pathfinder cli scheduler

paragon pathfinderスケジューラコンテナのCLIにアクセスします。

paragon pathfinder cli toposerver

Paragon Pathfinder ns-toposerver(トポロジーサービス)コンテナのCLIにログインします。

paragon pathfinder cli web

Paragon Pathfinder ns-webコンテナのCLIにログインします。

paragon pathfinder debug bgpls config

BGP-LS に関連する Paragon Pathfinder cRPD ルーティング オプション設定をデバッグします。

paragon pathfinder debug bgpls routes

BGP-LS に関連する Paragon Pathfinder cRPD ルートをデバッグします。

paragon pathfinder debug genjvisiondata help

Paragon Pathfinder debugutils genjvisiondata ヘルプを表示します。

paragon pathfinder debug genjvisiondata params

Paragon Pathfinder debugutils genjvisiondata パラメータを表示します。

paragon pathfinder debug lsp

デバッグのために Paragon Pathfinder PCEP CLI にログインします。

paragon pathfinder debug postgres status

KubernetesクラスターのPostgresステータスを表示します。

paragon pathfinder debug rabbitmq status

rabbitmqctl クラスターのステータスを表示します。

paragon pathfinder debug snoop amqp

Paragon Pathfinder debugutils ポッドを実行して、AMQP 間でやりとりされるデータをスヌーピングしてデコードします。

paragon pathfinder debug snoop help

Paragon Pathfinderのdebugutilsスヌープヘルプを表示します。

paragon pathfinder debug snoop postgres

Paragon Pathfinder debugutils podを実行して、Postgres間でやり取りされるデータをスヌーピングしてデコードします。

paragon pathfinder debug snoop redis link

Paragon Pathfinder debugutils podを実行して、Redisリンク間でやり取りされるデータをスヌーピングしてデコードします。

paragon pathfinder debug snoop redis lsp

Paragon Pathfinder debugutils podを実行して、Redis lsp 間でやり取りされるデータをスヌーピングしてデコードします。

paragon pathfinder debug snoop redis node

Paragon Pathfinder debugutils podを実行して、redisノード間でやり取りされるデータをスヌーピングしてデコードします。

paragon pathfinder debug topoutil help

debugutils Paragon Pathfinderヘルプtopo_utilを示します。

paragon pathfinder debug topoutil safemode deactivate

debugutils Paragon Pathfinderセーフモードを無効にするためのツールtopo_util示します。

paragon pathfinder debug topoutil topo refresh

debugutils topo_utilツールParagon Pathfinder実行して、現在のトポロジーを更新します。

paragon pathfinder debug topoutil topo save

debugutils topo_utilツールParagon Pathfinder実行して、現在のトポロジースナップショットを保存します。

paragon pathfinder describe bmp

cRPDおよびBMPコンテナを含むParagon Pathfinderポッドについて説明します。

paragon pathfinder describe configserver

構成サーバーコンテナを含むParagon Pathfinderポッドについて説明します。

paragon pathfinder describe debugutils

debugutilsコンテナを含むParagon Pathfinderポッドについて説明します。

paragon pathfinder describe netconf

ns-netconfdコンテナを含むParagon Pathfinderポッドについて説明します。

paragon pathfinder describe pceserver

ns-pceserverコンテナ(PCEPサービス)を含むParagon Pathfinderポッドについて説明します。

paragon pathfinder describe pcserver

ns-pcserver コンテナ(PCS)を含む Paragon Pathfinder ポッドについて説明します。

paragon pathfinder describe pcviewer

ns-pcsviewerコンテナ(Paragon Plannerデスクトップアプリケーション)を含むParagon Pathfinderポッドについて説明します。

paragon pathfinder describe scheduler

スケジューラコンテナを含むParagon Pathfinderポッドについて説明します。

paragon pathfinder describe toposerver

ns-toposerver(トポロジーサービス)コンテナを含むParagon Pathfinderポッドについて説明します。

paragon pathfinder describe web

Webコンテナを含むParagon Pathfinderポッドについて説明します。

paragon pathfinder get bmp

cRPDおよびBMPコンテナを含むParagon Pathfinderポッドを表示します。

paragon pathfinder get configserver

ns-configserver コンテナと syslog コンテナを含む Paragon Pathfinder ポッドを表示します。

paragon pathfinder get debugutils

debugutilsコンテナを含むParagon Pathfinderポッドを表示します。

paragon pathfinder get netconf

netconfプロセスに関連付けられたParagon Pathfinderポッドを表示します。

paragon pathfinder get pceserver

ns-pceserverコンテナ(PCEPサービス)を含むParagon Pathfinderポッドを表示します。

paragon pathfinder get pcserver

ns-pcserver コンテナ(PCS)を含む Paragon Pathfinder ポッドを表示します。

paragon pathfinder get pcviewer

ns-pcsviewerコンテナ(Paragon Plannerデスクトップアプリケーション)を含むParagon Pathfinderポッドを表示します。

paragon pathfinder get pods

すべてのParagon Pathfinderポッドを表示します。

paragon pathfinder get scheduler

スケジューラプロセスに関連付けられたParagon Pathfinderポッドを表示します。

paragon pathfinder get services

すべてのParagon Pathfinderサービスを表示します。

paragon pathfinder get toposerver

ns-toposerverコンテナ(トポロジーサービス)を含むParagon Pathfinderポッドを表示します。

paragon pathfinder get web

ns-webプロセスに関連付けられたParagon Pathfinderポッドを表示します。

paragon pathfinder logs bmp container bmp

Paragon Pathfinder bmpポッドbmpコンテナのログを表示します。 --type follow 引数を使用して、ライブストリーミングログを取得します。

paragon pathfinder logs bmp container crpd

Paragon Pathfinder bmpポッドcRPDコンテナのログを表示します。 --type follow 引数を使用して、ライブストリーミングログを取得します。

paragon pathfinder logs bmp container syslog

Paragon Pathfinder bmpポッドsyslogコンテナのログを表示します。 --type follow 引数を使用して、ライブストリーミングログを取得します。

paragon pathfinder logs configserver container nsconfigserver

Paragon Pathfinder configserver ポッド ns-configserver コンテナのログを表示します。 --type follow 引数を使用して、ライブストリーミングログを取得します。

paragon pathfinder logs configserver container syslog

Paragon Pathfinder configserver ポッドの syslog コンテナのログを表示します。 --type follow 引数を使用して、ライブストリーミングログを取得します。

paragon pathfinder logs netconf container nsnetconfd

Paragon Pathfinderのnetconfポッドns-netconfdコンテナのログを表示します。 --type follow 引数を使用して、ライブストリーミングログを取得します。

paragon pathfinder logs netconf container syslog

Paragon Pathfinderのnetconfポッドsyslogコンテナのログを表示します。 --type follow 引数を使用して、ライブストリーミングログを取得します。

paragon pathfinder logs pceserver container nspceserver

Paragon Pathfinder pceserver ポッド ns-pceserver コンテナのログを表示します。 --type follow 引数を使用して、ライブストリーミングログを取得します。

paragon pathfinder logs pceserver container syslog

Paragon Pathfinder pceserver pods syslogコンテナのログを表示します。 --type follow 引数を使用して、ライブストリーミングログを取得します。

paragon pathfinder logs pceserver syslog filtered

タイムスタンプ、レベル、メッセージのみを取得する Paragon Pathfinder pceserver ポッド syslog コンテナの処理済みログを表示します。 --type follow 引数を使用して、ライブストリーミングログを取得します。

paragon pathfinder logs pcserver container nspcserver

Paragon Pathfinder pcserver ポッド ns-pcserver コンテナのログを表示します。 --type follow 引数を使用して、ライブストリーミングログを取得します。

paragon pathfinder logs pcserver container syslog

Paragon Pathfinder pcserver ポッドの syslog コンテナのログを表示します。 --type follow 引数を使用して、ライブストリーミングログを取得します。

paragon pathfinder logs pcserver syslog filtered

タイムスタンプ、レベル、メッセージのみを含む Paragon Pathfinder pceServer Pods syslog コンテナ取得の処理済みログを表示します。 --type follow 引数を使用して、ライブストリーミングログを取得します。

paragon pathfinder logs pcviewer container nspcviewer

Paragon Pathfinder pcviewerポッドns-pcviewerコンテナのログを表示します。 --type follow 引数を使用して、ライブストリーミングログを取得します。

paragon pathfinder logs pcviewer container syslog

Paragon Pathfinder pcviewerポッドsyslogコンテナのログを表示します。 --type follow 引数を使用して、ライブストリーミングログを取得します。

paragon pathfinder logs toposerver container nstopodbinit

Paragon Pathfinderトポサーバーポッドns-topo-dbinitコンテナのログを表示します。 --type follow 引数を使用して、ライブストリーミングログを取得します。

paragon pathfinder logs toposerver container nstopodbinitcache

Paragon Pathfinderトポサーバーポッドns-topo-dbinit-cacheコンテナのログを表示します。 --type follow 引数を使用して、ライブストリーミングログを取得します。

paragon pathfinder logs toposerver container nstoposerver

Paragon Pathfinder toposerver Pods ns-toposerver コンテナのログを表示します。 --type follow 引数を使用して、ライブストリーミングログを取得します。

paragon pathfinder logs toposerver container syslog

Paragon Pathfinderトポサーバーポッドsyslogコンテナのログを表示します。 --type follow 引数を使用して、ライブストリーミングログを取得します。

paragon pathfinder logs toposerver syslog filtered

Paragon Pathfinderトポサーバーポッドsyslogコンテナフェッチの処理済みログを、タイムスタンプ、レベル、メッセージのみで表示します。 --type follow 引数を使用して、ライブストリーミングログを取得します。

paragon pathfinder logs web container nsweb

Paragon Pathfinder Web ポッドの ns-web コンテナのログを表示します。 --type follow 引数を使用して、ライブストリーミングログを取得します。

paragon pathfinder logs web container nswebdbinit

Paragon Pathfinder Web ポッド ns-web-dbinit コンテナのログを表示します。 --type follow 引数を使用して、ライブストリーミングログを取得します。

paragon pathfinder logs web container syslog

Paragon Pathfinder Web Podのsyslogコンテナのログを表示します。 --type follow 引数を使用して、ライブストリーミングログを取得します。

paragon pathfinder rabbitmq geoha status

フェデレーションステータスを表示します(rabbitmq-0インスタンスから)。GeoHaステータスは、デュアルクラスター設定でのみ使用できます。

paragon rookceph ceph osddf

Rook および Ceph OSD ファイルシステムのディスク容量の使用状況を報告します。

paragon rookceph ceph osdpoolstats

Rook および Ceph OSD プール統計情報を表示します。

paragon rookceph ceph osdstatus

Rook および Ceph OSD ステータスを表示します。

paragon rookceph ceph osdtree

RookとCephのOSDツリーを表示します。

paragon rookceph ceph osdutilization

Rook および Ceph OSD の使用率を示します。

paragon rookceph ceph pgstat

Rook と Ceph の pg ステータスを表示します。

paragon rookceph ceph status

Rook と Ceph のステータスを表示します。

paragon rookceph cli toolbox

Rook および Ceph ツールボックス ポッドの CLI にログインします。

paragon rookceph get pods

Rook および Ceph ポッドを表示します。

paragon rookceph get services

Rook および Ceph サービスを表示します。

paragon rookceph radosgw get period

これは、期間情報を取得するRADOSゲートウェイユーザー管理ユーティリティです。

paragon rookceph radosgw synch status

これは、メタデータ同期ステータスを取得するRADOSゲートウェイユーザー管理ユーティリティです。

paragon set password

RESTコール認証用のParagon(UIホスト)パスワードを設定します。

この必須のワンタイムパスワード設定コマンドを使用して、 --cred password 引数を使用してパスワードを設定します。

例: paragon set password --cred AdminXYX!

paragon set username

Rest呼び出し認証用のParagon(UIホスト)ユーザー名を設定します。デフォルトのユーザー名は adminです。

--cred username 引数を使用して、別のユーザー名を設定します。

例: paragon set username --cred newadmin

Ceph と Rook のトラブルシューティング

Ceph には、比較的新しいカーネルバージョンが必要です。Linux カーネルが非常に古い場合は、新しいカーネルをアップグレードまたは再インストールすることを検討してください。

このセクションでは、Ceph と Rook に関する問題のトラブルシューティングを行います。

ディスク容量が不足しています

インストールに失敗する一般的な理由は、オブジェクトストレージデーモン(OSD)が作成されていないことです。OSDは、クラスターノード上のストレージを設定します。OSD は、リソースが不足しているか、ディスク領域が正しくパーティション化されていないという形で、ディスクリソースが利用できないために作成されない場合があります。ノードにパーティション化されていないディスク領域が十分にあることを確認します。

ディスクの再フォーマット

「rook-ceph-osd-prepare-hostname-*」ジョブのログを調べます。ログは記述的なものです。ディスクまたはパーティションを再フォーマットし、Rookを再起動する必要がある場合は、次の手順を実行します。

  1. 以下の方法のいずれかを使用して、既存のディスクまたはパーティションを再フォーマットします。
    • Ceph に使用されるはずのブロックストレージデバイスが、使用不能な状態であったために使用されなかった場合は、ディスクを完全に再フォーマットできます。
    • Ceph に使用するはずのディスクパーティションがある場合は、パーティション上のデータを完全にクリアできます。
    注:

    これらのコマンドは、使用しているディスクまたはパーティションを完全に再フォーマットし、それらの上のすべてのデータを失います。

  2. Rookを再起動して変更を保存し、OSD作成プロセスを再試行します。

ポッドのステータスを表示

rook-ceph 名前空間にインストールされている Rook および Ceph Pod のステータスを確認するには、# kubectl get po -n rook-ceph コマンドを使用します。次のポッドはrunning状態である必要があります。

  • rook-ceph-mon-*—通常、3つのモニターポッドが作成されます。
  • rook-ceph-mgr-*—1つのマネージャーポッド
  • rook-ceph-osd-*—3つ以上のOSDポッド
  • rook-ceph-mds-cephfs-*—メタデータサーバー
  • rook-ceph-rgw-object-store-* - ObjectStore ゲートウェイ
  • rook-ceph-tools*—追加のデバッグオプション。

    ツールボックスに接続するには、次のコマンドを使用します。

    $ kubectl exec -ti -n rook-ceph $(kubectl get po -n rook-ceph -l app=rook-ceph-tools \ -o jsonpath={..metadata.name}) -- bash

    ツールボックスで使用できる一般的なコマンドには、次のものがあります。

    # ceph status # ceph osd status, # ceph osd df, # ceph osd utilization, # ceph osd pool stats, # ceph osd tree, and # ceph pg stat

Ceph OSD 障害のトラブルシューティング

rook-ceph名前空間にインストールされているポッドのステータスを確認します。

# kubectl get po -n rook-ceph

rook-ceph-osd-* ポッドがErrorまたはCrashLoopBackoff状態の場合は、ディスクを修復する必要があります。

  1. rook-ceph-operatorを停止します。

    # kubectl scale deploy -n rook-ceph rook-ceph-operator --replicas=0

  2. 失敗したOSDプロセスを削除します。

    # kubectl delete deploy -n rook-ceph rook-ceph-osd-number

  3. ツールボックスに接続します。

    $ kubectl exec -ti -n rook-ceph $(kubectl get po -n rook-ceph -l app=rook-ceph-tools -o jsonpath={..metadata.name}) -- bash

  4. 障害が発生しているOSDを特定します。

    # ceph osd status

  5. 失敗したOSDをマークします。

  6. 障害が発生したOSDを削除します。

    # ceph osd purge number --yes-i-really-mean-it

  7. 障害が発生したOSDをホストしたノードに接続し、以下のいずれかを実行します。
    • ハードウェアに障害が発生した場合は、ハードディスクを交換してください。
    • ディスクを完全に再フォーマットします。
    • パーティションを完全に再フォーマットします。
  8. rook-ceph-operator再起動します。

    # kubectl scale deploy -n rook-ceph rook-ceph-operator --replicas=1

  9. OSD ポッドを監視します。

    # kubectl get po -n rook-ceph

    OSDが回復しない場合は、同じ手順でOSDを削除し、ディスクを削除するかパーティションを削除してから rook-ceph-operator再起動します。

エアギャップ設置失敗のトラブルシューティング

既存の/etc/resolv.confファイルがないため、エアギャップのインストールとkube-apiserverは次のエラーで失敗します。

新しいファイルを作成するには、root ユーザーとして #touch /etc/resolv.conf コマンドを実行し、Paragon Automation クラスターを再デプロイする必要があります。

RabbitMQクラスター障害からの復旧

Paragon Automation クラスターに障害が発生した場合 (停電など)、RabbitMQ メッセージバスが正しく再起動しないことがあります。

この状態を確認するには、 kubectl get po -n northstar -l app=rabbitmq コマンドを実行します。このコマンドでは、ステータスが Running という 3 つのポッドが表示されます。例えば:

ただし、1 つ以上のポッドのステータスが Error の場合は、次のリカバリー手順を使用します。

  1. RabbitMQを削除します。

    kubectl delete po -n northstar -l app=rabbitmq

  2. ポッドのステータスを確認します。

    kubectl get po -n northstar -l app=rabbitmq

    すべてのポッドのステータスがRunningになるまで、kubectl delete po -n northstar -l app=rabbitmqを繰り返します。

  3. Paragon Pathfinderアプリケーションを再起動します。

OSD 作成中に udevd デーモンを無効にする

udevdデーモンは、ディスク、ネットワークカード、CDなどの新しいハードウェアの管理に使用します。OSD の作成中に、 udevd デーモンは OSD を検出し、完全に初期化される前に OSD をロックできます。Paragon Automation インストーラーは、インストール中に systemd-udevd を無効にし、Rook が OSD を初期化した後に有効にします。

ノードを追加または置き換えたり、障害が発生したノードを修復したりする場合は、OSD の作成が失敗しないように、 udevd デーモンを手動で無効にする必要があります。OSDの作成後にデーモンを再度有効にできます。

これらのコマンドを使用して、 udevdを手動で無効または有効にします。

  1. 追加または修復するノードにログインします。
  2. udevdデーモンを無効にします。
    1. udevd が実行されているかどうかを確認します。

      # systemctl is-active systemd-udevd

    2. udevdアクティブになっている場合は無効にします# systemctl mask system-udevd --now
  3. ノードを修復または交換しても、Ceph 分散ファイルシステムは自動的に更新されません。修復プロセスの一環としてデータディスクが破棄された場合は、それらのデータディスクでホストされているオブジェクトストレージデーモン(OSD)を復元する必要があります。

    1. Ceph ツールボックスに接続し、OSD のステータスを表示します。 ceph-tools スクリプトがプライマリノードにインストールされます。プライマリノードにログインし、kubectlインターフェイスを使用して ceph-toolsにアクセスできます。プライマリ ノード以外のノードを使用するには、 admin.conf ファイル(制御ホストの config-dir ディレクトリ内)をコピーして kubeconfig 環境変数を設定するか、 export KUBECONFIG=config-dir/admin.conf コマンドを使用する必要があります。

      $ ceph-tools # ceph osd status

    2. すべてのOSDが exists,upとしてリストされていることを確認します。OSD が損傷している場合は、 Ceph および Rook のトラブルシューティングで説明されているトラブルシューティング手順に従ってください。

  4. すべてのOSDが作成されていることを確認した後、追加または修復したノードにログインします。
  5. ノードで udevd を再度有効にします。

    systemctl unmask system-udevd

または、 config.ymldisable_udevd: trueを設定して、 ./run -c config-dir deployコマンドを実行することもできます。 udevdデーモンを無効にするためだけにクラスターを再デプロイすることはお勧めしません。

一般的なユーティリティコマンドのラッパースクリプト

/usr/local/bin にインストールされた以下のラッパースクリプトを使用して、システムで実行されているポッドに接続し、コマンドを実行できます。
コマンド の説明
paragon-db [arguments] データベースサーバーに接続し、スーパーユーザーアカウントを使用してPostgres SQLシェルを起動します。オプションの引数は、Postgres SQL コマンドに渡されます。
pf-cmgd [arguments] Paragon PathfinderのCMGDポッドでCLIを起動します。オプションの引数は、CLIによって実行されます。
pf-crpd [arguments] Paragon Pathfinder cRPDポッドでCLIを起動します。オプションの引数は、CLIによって実行されます。
pf-redis [arguments] Paragon Pathfinder Redisポッドで(認証された)redis-cliを起動します。オプションの引数は、Redis Pod によって実行されます。
pf-debugutils [arguments] Paragon Pathfinderのdebugutilsポッドでシェルを起動します。オプションの引数はシェルによって実行されます。Pathfinder debugutils ユーティリティは、config.yml ファイルで設定されている場合install_northstar_debugutils: trueインストールされます。
ceph-tools [arguments] シェルを起動して Ceph ツールボックスを作成します。オプションの引数はシェルによって実行されます。

制御ホストをバックアップする

制御ホストに障害が発生した場合、クラスターを再構築できるように、 config-dirディレクトリをリモートの場所にバックアップする必要があります。 config-dirには、 インベントリconfig.ymlid_rsaファイルが含まれています。

または、以下のコマンドを使用してクラスターから情報をダウンロードすることで、 インベントリconfig.yml ファイルを再構築することもできます。

# kubectl get cm -n common metadata -o jsonpath={..inventory} > inventory

# kubectl get cm -n common metadata -o jsonpath={..config_yml} > config.yml

SSHキーは復元できません。失敗したキーを新しいキーと置き換える必要があります。

デバッグ用のユーザーサービスアカウント

Paragon Pathfinder、テレメトリマネージャー、およびベースプラットフォームアプリケーションは、内部でテレメトリ収集にParagon Insightsを使用します。これらのアプリケーションに関連する設定の問題をデバッグするために、Paragon Automationのインストール中にデフォルトで3つのユーザーサービスアカウントが作成されます。これらのサービスアカウントの範囲は、対応するアプリケーションのデバッグのみに限定されます。サービスアカウントの詳細を以下の表に示します。

表2:サービスアカウントの詳細
アプリケーション名と範囲 アカウントユーザー名 アカウント デフォルトパスワード
Paragon Pathfinder(ノーススター) hb-northstar-admin 管理者123!
テレメトリマネージャー(tm) hb-tm-admin
ベースプラットフォーム(ems-dmon) HB-EMS-DMON

これらのアカウントは、デバッグ目的にのみ使用する必要があります。これらのアカウントを日常的な運用や設定の変更に使用しないでください。セキュリティ上の理由から、ログイン資格情報を変更することをお勧めします。