Python スクリプトを使用して OpenStack Overcloud の問題を発見する

Python スクリプトを使用して OpenStack Overcloud の問題を発見する

[[314897]]

LogTool は、オーバークラウド ノードの問題の根本原因を見つけるのに役立つ Python スクリプトのセットです。

OpenStack は、オーバークラウド ノードとアンダークラウド ホスト上に多数のログ ファイルを保存および管理します。したがって、特に問題の原因がわからない場合は、OSP ログ ファイルを使用して発生した問題のトラブルシューティングを行うことは簡単ではありません。

このような状況であれば、LogTool を使用すると作業がずっと楽になります。これにより、手動で問題のトラブルシューティングを行うために必要な時間と労力を節約できます。 LogTool は、あいまい文字列マッチング アルゴリズムに基づいており、過去に発生したすべての固有のエラーと警告情報を提供します。ログのタイムスタンプに基づいて、特定の期間 (10 分前、1 時間前、1 日前など) のこの情報をエクスポートできます。

LogTool は Python スクリプトのセットであり、そのメイン モジュールPyTool.pyはアンダークラウド ホスト上で実行されます。特定の操作モードでは、オーバークラウド ログからエラーや警告情報をエクスポートするなど、オーバークラウド ノード上で直接実行される他のスクリプトが使用されます。

LogTool は Python 2 と Python 3 の両方をサポートしています。必要に応じて作業ディレクトリを変更できます: LogTool_Python2 または LogTool_Python3。

仕組み

1. オーバークラウドログからエラーと警告をエクスポートする

このモードは、オーバークラウド ノードから過去に発生したエラー警告を抽出するために使用されます。ユーザーは、エラーまたは警告メッセージを抽出するために使用する開始時間とデバッグ レベルを指定するよう求められます。たとえば、過去 10 分以内に問題が発生した場合は、その期間のエラー メッセージと警告メッセージのみを抽出できます。

この操作モードでは、結果ファイルを含む各オーバークラウド ノードのディレクトリが生成されます。結果として得られるファイルは、オーバークラウド ノードからのダウンロードにかかる時間を短縮するために圧縮された単純なテキスト ファイル ( *.gz ) です。圧縮ファイルを通常のテキスト ファイルに変換するには、 zcatまたは同様のツールを使用できます。また、Vi の一部のバージョンと Emacs の最近のバージョンでは、圧縮されたデータの読み取りがサポートされています。生成されたファイルはセクションに分割され、下部に目次が含まれます。

LogTool は、標準と非標準の 2 種類のログ ファイルをすぐに検出できます。標準ファイルでは、各ログ行には、タイムスタンプ、デバッグ レベル、情報などの既知の定義済み構造があります。非標準ファイルでは、ログの構造は不明です。たとえば、第三者のログなどが考えられます。目次では、各セクションの「名前 -> 行番号」を見つけることができます。例:

  • 生データ - 標準 OSP ログから抽出されたエラー/警告メッセージ:このセクションには、変更や修正を加えずに抽出されたすべてのエラー/警告メッセージが含まれます。これらのメッセージは、LogTool がファジー マッチング分析に使用する生データです。
  • 統計 - 各標準 OSP ログのエラー/警告の数:このセクションでは、各標準ログ ファイルのエラーと警告の数を確認できます。この情報は、問題の根本原因をトラブルシューティングするための潜在的なコンポーネントを理解するのに役立ちます。
  • 統計 - 標準 OSP ログ ファイルごとの一意のメッセージ:このセクションでは、指定されたタイムスタンプ内の一意のエラー メッセージと警告メッセージが提供されます。それぞれの固有のエラーまたは警告の詳細については、生データ セクションで同じメッセージを探してください。
  • 統計 - いつでも非標準ログ ファイルごとに一意のメッセージ:このセクションには、非標準ログ ファイル内の一意のメッセージが含まれます。残念ながら、LogTool はこれらのログ ファイルを標準のログ ファイルと同じ方法で処理することはできません。したがって、「特定の時間」のログ情報を抽出すると、その情報は無視され、過去に作成されたすべての固有のエラー/警告メッセージが表示されます。まず、結果ファイルの下部にある目次までスクロールして、そのセクションを確認します。目次の行インデックスを使用して、関連するセクションにジャンプします。行 3、4、5 の情報が最も重要です。

2. オーバークラウドノードからすべてのログをダウンロードする

すべてのオーバークラウド ノードからのログは圧縮され、アンダークラウド ホストのローカル ディレクトリにダウンロードされます。

3. すべてのオーバークラウドログで文字列を検索する

このパターンは、すべての Overcloud ログでユーザーが指定した文字列を「grep」(検索) します。たとえば、「VM の作成」の失敗したリクエスト ID など、特定のリクエストのすべてのログ メッセージを表示したい場合があります。

4. オーバークラウドの現在のCPU、RAM、ディスク使用量を確認する

このモードでは、各オーバークラウド ノードの現在の CPU、RAM、ディスク情報が表示されます。

5. ユーザースクリプトを実行する

このモードでは、ユーザーはオーバークラウド ノード上で独自のスクリプトを実行できます。たとえば、オーバークラウドのデプロイメントが失敗した場合、問題を解決するには各コントローラー ノードで同じプロセスを実行する必要があります。このパターンを使用して、「回避策」スクリプトを実装し、コントローラー上で実行できます。

6. 指定されたタイムスタンプで関連するログのみをダウンロードする

このモードでは、オーバークラウド上の「指定されたタイムスタンプ」の「最終変更時刻」を持つログのみがダウンロードされます。たとえば、エラーが 10 分前に発生した場合、古いログ ファイルは無関係であるため、ダウンロードする必要はありません。また、一部のバグ報告ツールでは大きなファイルを添付できない (または添付すべきではない) ため、このモードはバグ報告を書くときに役立つ場合があります。

7. アンダークラウドログからエラーと警告情報をエクスポートする

これは上記のモード 1 と同じです。

8. オーバークラウド上の異常なDockerを確認する

このモードは、ノード上の不健全な Docker を検索するために使用されます。

9. OSPログをダウンロードし、LogToolをローカルで実行する

このモードでは、Jenkins またはログ ストレージ ( cougar11.scl.lab.tlv.redhat.comなど) から OSP ログをダウンロードし、ローカルで分析できます。

10. アンダークラウドでのデプロイメントログの分析

このパターンは、オーバークラウドまたはアンダークラウドのデプロイメント中に何が問題だったかを理解するのに役立ちます。たとえば、 overcloud_deploy.shスクリプトでは、 --logオプションを使用するとデプロイメント ログが生成されます。このようなログの問題点は、ログが「わかりにくく」、何が問題なのか理解しにくいことです。特に、詳細度がvv以上に設定されている場合は、ログ内のデータが読みにくくなります。このモードでは、失敗したすべてのタスクに関する詳細な情報が提供されます。

11. Gerrit (Zuul) の失敗ログを分析する

このモードは、Gerrit (Zuul) ログ ファイルを分析するために使用されます。リモート Gerrit ゲート (HTTP ダウンロード) からすべてのファイルを自動的にダウンロードし、ローカルで分析します。

インストール

LogTool は GitHub で入手できます。次のコマンドを使用して、アンダークラウド ホストにクローンを作成します。

  1. git clone https : //github.com/zahlabut/LogTool.git

このツールは、いくつかの外部 Python モジュールも使用します。

パラミコ

SSH モジュールは通常、Undercloud にデフォルトでインストールされます。インストールされていることを確認するには、次のコマンドを使用します。

  1. ls - a / usr / lib / python2 . 7 / site - packages | grep paramiko

モジュールをインストールする必要がある場合は、アンダークラウドで次のコマンドを実行します。

  1. sudo easy_install pip
  2. sudo pip install paramiko == 2.1 . 1

美しいスープ

この HTML パーサー モジュールは、ログ ファイルをダウンロードするために HTTP が使用されるモードでのみ使用されます。これは、Artifacts HTML ページを解析して、その中のすべてのリンクを取得するために使用されます。 BeautifulSoup をインストールするには、次のコマンドを入力します。

  1. pip install beautifulsoup4

次のコマンドを実行して、requirements.txt ファイルを使用して必要なすべてのモジュールをインストールすることもできます。

  1. pip install - r requirements . txt

構成

必要なすべてのパラメータは、 PyTool.pyスクリプトで直接設定されます。デフォルト値は次のとおりです。

  1. overcloud_logs_dir = '/var/log/containers'
  2. overcloud_ssh_user = 'heat-admin'
  3. overcloud_ssh_key = '/home/stack/.ssh/id_rsa'
  4. undercloud_logs_dir = '/var/log/containers'
  5. source_rc_file_path = '/home/stack/'

使用法

このツールはインタラクティブなので、起動するには次のように入力するだけです。

  1. cd LogTool
  2. python PyTool . py

LogTool のトラブルシューティング

実行時にError.logRuntime.logの 2 つのログ ファイルが作成されます。報告する問題の説明には、両方を含めてください。

制限

LogTool は、最大 500 MB のファイルを処理するようにハードコードされています。

LogTool_Python3 スクリプト

github.com/zahlabut/LogTool から入手してください。

<<:  ハイブリッド クラウドは長期的な UC 展開オプションですか?

>>:  傍観者から CTO へ: Cloud Foundry Foundation での 5 年間

推薦する

SEO実践:外部リンクを増やす方法と外部リンクを増やす際の注意点

良いランキングを得るには、ウェブサイトの適切な内部構造に加えて、外部リンクも非常に重要な要素です。外...

悟空Q&Aが終了:バイトダンス初の敗北

「戦略的に放棄された」 Wukong Q&Aは、ByteDanceのアプリ陣営から撤退しよう...

ローカルポータルの成功した運用モデルは再現できる

ローカル ポータルの成功した運用モデルを複製できます。もちろん、すべてをコピーするだけではだめで、地...

クラウド コンピューティングはビジネス モデルに変化をもたらします。 CIO はどこへ行くのでしょうか?

モバイルインターネットの時代において、企業はより柔軟な情報投資戦略を採用する傾向が高まっています。新...

アマゾンとグーグル、マイクロソフトのクラウドコンピューティング調整を非難:顧客の自由な流れを制限

米国現地時間の火曜日、アマゾンとグーグルはマイクロソフトのクラウドコンピューティング事業への調整を激...

Qinzhe EXCEL Server をプロジェクト電子アーカイブ管理 OA システムとして使用する

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています情報技術ア...

江蘇省史上最大のオンライン求人詐欺事件で12人が有罪判決

今年3月、江蘇省高郵警察は大規模なオンライン求人詐欺事件を摘発し、容疑者12人を逮捕した。被害者は全...

「共引用」についての私の意見

業界の著名人である呂松松氏(以下、「呂」)が自身のブログに「『共通引用』は『アンカーテキスト』に取っ...

クラウド コンピューティングに関する 8 つの予測: 将来のビジネス戦争に勝つための 8 つの重要な考慮事項

今年、業界ではクラウドコンピューティングの目覚ましい発展が話題になりました。パーソナルコンピュータの...

豆班の不安は解消が難しい

Doubanは3月29日に非公開グループの閉鎖を発表したばかりで、3月30日にはWeiboに「不正競...

openvirtuals-$7/4 コア/1g メモリ/2g vSwap/200g ハードディスク/3T トラフィック/4 データセンター

openvirtuals は、第 2 世代の openvz をベースにした特別価格の VPS 6 台...

あなたのウェブサイトを保存するにはどうすればよいですか?

SEO、ウェブマスター、そして勤勉の代名詞です。現在、Baidu の殺人手段はますます恐ろしくなって...

Qiyiマーケティングの携帯電話技術専門家が「基礎技術開発」の嘘を暴露します

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています最近、多く...

クルンはどうですか?共有ポイントロサンゼルス サーバーの評価データは参考用です。

Kurun のコア リソースは、米国のロサンゼルス データ センターにあります。Kurun のロサン...