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 作業において、私たちが最も多く行う作業の 2 つの側面はコンテンツとリンク構築です。これは、...

Baidu Bear Accountの機能と用途について簡単に説明します

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

中国職業教育産業レポート

「二重削減」政策の実施により、K12科目の訓練は後退し、職業教育は新しい時代に入った。有利な政策であ...

4K秒で開く高速VPSをオススメしますので、海外動画の視聴も問題ありません!

「4Kで数秒で開ける高速VPSがおすすめ」このような要望をお持ちの方は多いようです!初心者にとって、...

VMware: 革新的な Workspace ONE プラットフォームで企業のビジネス拡大と変革を加速

[51CTO.com からのオリジナル記事] 今日のデジタル時代では、オフィスの効率を改善し、生産性...

企業がエッジとクラウドを採用する理由

コンピューティング戦略は数十年にわたって大きく変化しました。ますます多くの企業が AI と機械学習機...

Linode、ハロウィンに賞金プレゼント

Linode.com は長い間、良いニュースを届けていません。XEN から KVM への切り替えの最...

中国の新経済産業レポート:ネットセレブ

新セレブ経済の商業収益化モデルは、主にセレブトラフィック、セレブコンテンツ、周辺サービスの収益化を含...

Ubuntu 13.0はOpenStack Havanaを統合します

Ubuntu の開発元 Canonical は、Linux ディストリビューションの最新バージョンで...

鉱業博覧会の「クラウド」ツアー 天一クラウドと鉱業博覧会が鉱業博覧会と協力し、スマート鉱業博覧会クラウドを創出

5G、クラウドコンピューティング、VR、AR技術の急速な発展により、クラウド展示会は主要展示会の「寵...

WeChat:2年で15言語、100カ国以上で3億人のユーザーを獲得

出典:人民日報 著者:張易軒 周飛亜外国製品は入ってこられず、国内製品は出てこられない。中国のインタ...

SAASオンラインエンパワーメント、不動産エコシステムはフルシナリオ接続とインテリジェントな運用へと移行しています

[51CTO.comからのオリジナル記事] 2016年の「不動産エコシステムの革新を推進する新技術」...

クラウドコンピューティングは中小銀行の変革を支援

近年、我が国はクラウドコンピューティングの発展に向けた一連の政策を導入しており、関連産業に対するマク...

知虎は左に行き、豆班は右に行く

Zhihu は10 年、 Douban は16 年の歴史があります。この節目に立って、私たちが歩んで...

知っておくべきすべてのJVMパラメータは次のとおりです

[[439460]]この記事はWeChatの公開アカウント「Java Technology Guid...