アプリケーションが Kubernetes コンテナ内で実行されている場合、OpenResty XRay Agent を直接 K8s 環境にデプロイすることができます。本記事では、Kubernetes クラスター上に XRay Agent サービスをインストールし、システム内の様々なアプリケーションやコンテナの自動分析と診断を実現する方法を段階的にご案内いたします。

コンソールにログイン

アカウントにログインします。

Screenshot

「Go to console」をクリックします。

Screenshot

Agent インストールのガイドページに移動します。

Screenshot

コンテナを使用したインストール方法をご紹介いたします。

Screenshot

今回の例では「Kubernetes」を選択しています。

Screenshot

Kubernetes クラスター上に Agent をインストール

まず、このコマンドを使用して Kubernetes クラスター内に Docker イメージレジストリのシークレットキーを作成します。

Screenshot

コピーボタンをクリックします。

Screenshot

コマンドを貼り付けて実行します。

Screenshot

シークレットキーが正常に作成されました。

Screenshot

この yaml ファイルを使用して Agent をデプロイします。

Screenshot

対象マシンの CPU アーキテクチャに応じて x86_64 または arm64 を選択できます。この例では、x86_64 アーキテクチャを選択しています。

Screenshot

vim エディタを使用して新しい yaml ファイルを作成します。このファイルをローカルに保存し、openresty-xray-agent.yml という名前を付けます。

Screenshot

この yaml ファイルの内容をコピーします。

Screenshot

内容を貼り付けてファイルを保存します。

Screenshot

以下のコマンドを使用してアプリケーションを設定できます。

Screenshot

コマンドをコピーします。

Screenshot

コマンドを貼り付けて実行します。

Screenshot

Agent が正常にデプロイされました。

Screenshot

次に、このコマンドを使用して pod の状態を確認します。

Screenshot

コピーします。

Screenshot

コマンドを貼り付けて実行します。

Screenshot

Agent が正常にインストールされ、実行中であることが確認できます。

Screenshot

アプリケーションの設定と検出

ガイドページに戻ります。

Screenshot

非本番モードでは、システムはより積極的な分析方法を採用し、より迅速に結果を得ることができます。

Screenshot

本番モードは、オンラインの本番環境を分析するために使用され、対象アプリケーションとサーバーのパフォーマンスへの影響を最小限に抑えます。ただし、これは分析時間が長くなる可能性があることを意味します。

Screenshot

パラノイアモードは本番モードと似ていますが、対象サーバーのリクエスト遅延へのパフォーマンス影響をさらに低減しようとします。それに応じて、サンプリング時間はより長くなります。

Screenshot

次に、対象システムで実行中のアプリケーションとコンテナを自動検出します。

Screenshot

これらは自動検出された対象アプリケーションです。

Screenshot

検出されなかった新しいアプリケーションを追加する場合は、カスタムアプリケーションを設定できます。

Screenshot

ここで新しいアプリケーションの名前を入力できます。

Screenshot

アプリケーションのタイプを選択します。

Screenshot

このプロセスリストから新しいアプリケーションに対応するプロセスを選択できます。

Screenshot

アナライザーの起動と分析結果の確認

ここをクリックしてアナライザーの実行を開始します。

Screenshot

アナライザーが実行を開始しました。

Screenshot

「Traffic and Load」をクリックします。

Screenshot

システムは対象マシン上に十分なトラフィックと負荷があることを検出しました。対象アプリケーションに負荷とトラフィックがある場合にのみ、システムは意味のある分析を行うことができます。

Screenshot

コンソールに移動します。

Screenshot

最初の分析レポートが生成されるのを待ちます。最初の Agent がインストールを完了したばかりだからです。「Insights」ページの分析レポートは、すべての Agent 上のすべてのアプリケーションから生成されたものを集約しています。

Screenshot

リアルタイムの生成進捗を観察できます。

Screenshot

最初の完全自動化された分析レポートが生成しました!

Screenshot

今後、日次レポートと週次レポートが定期的に自動生成されます。

Screenshot

「Dashboard」ページに切り替えます。

Screenshot

Apache や OpenResty XRay アプリケーションなど、さまざまなタイプのアプリケーションのフレームグラフやその他のチャートを確認できます。

Screenshot

別の Agent のインストール

別の Agent をインストールする場合は、ここをクリックするだけです。

Screenshot

ここで使用する手順は、先ほど Kubernetes クラスター上にインストールした際の手順と同じです。

Screenshot

他のオペレーティングシステムにインストールする場合や、RPM パッケージのインストール方法に切り替える場合は、ここをクリックします。

Screenshot

以前に見たガイドページに戻り、ここで異なるインストール方法やオペレーティングシステムを選択できます。

Screenshot

OpenResty XRay について

OpenResty XRay動的トレーシング製品であり、実行中のアプリケーションを自動的に分析して、パフォーマンスの問題、動作の問題、セキュリティの脆弱性を解決し、実行可能な提案を提供いたします。基盤となる実装において、OpenResty XRay は弊社の Y 言語によって駆動され、Stap+、eBPF+、GDB、ODB など、様々な環境下で複数の異なるランタイムをサポートしております。

著者について

章亦春(Zhang Yichun)は、オープンソースの OpenResty® プロジェクトの創始者であり、OpenResty Inc. の CEO および創業者です。

章亦春(GitHub ID: agentzh)は中国江蘇省生まれで、現在は米国ベイエリアに在住しております。彼は中国における初期のオープンソース技術と文化の提唱者およびリーダーの一人であり、Cloudflare、Yahoo!、Alibaba など、国際的に有名なハイテク企業に勤務した経験があります。「エッジコンピューティング」、「動的トレーシング」、「機械プログラミング」 の先駆者であり、22 年以上のプログラミング経験と 16 年以上のオープンソース経験を持っております。世界中で 4000 万以上のドメイン名を持つユーザーを抱えるオープンソースプロジェクトのリーダーとして、彼は OpenResty® オープンソースプロジェクトをベースに、米国シリコンバレーの中心部にハイテク企業 OpenResty Inc. を設立いたしました。同社の主力製品である OpenResty XRay動的トレーシング技術を利用した非侵襲的な障害分析および排除ツール)と OpenResty XRay(マイクロサービスおよび分散トラフィックに最適化された多機能ゲートウェイソフトウェア)は、世界中の多くの上場企業および大企業から高い評価を得ております。OpenResty 以外にも、章亦春は Linux カーネル、Nginx、LuaJITGDBSystemTapLLVM、Perl など、複数のオープンソースプロジェクトに累計 100 万行以上のコードを寄与し、60 以上のオープンソースソフトウェアライブラリを執筆しております。

翻訳

英語版の原文と日本語訳版(本文)をご用意しております。読者の皆様による他の言語への翻訳版も歓迎いたします。全文翻訳で省略がなければ、採用を検討させていただきます。心より感謝申し上げます!