データプレーンモニタリング機能は、OpenAnolis コミュニティと Simple Log Service によって開発された非侵入型モニタリング機能を提供します。この機能を使用すると、データフローを分析し、クラウドネイティブシナリオにおける Kubernetes クラスターのボトルネック問題を特定できます。
前提条件
Full-stack Observability インスタンスが作成されていること。詳細については、「インスタンスの作成」をご参照ください。
Simple Log Service コンソールを使用してデータを収集する場合、必要なモニタリングコンポーネントがインストールされていること。詳細については、「モニタリングコンポーネントのインストール」をご参照ください。
制限事項
データプレーンモニタリングを有効にするには、ホストのオペレーティングシステムが Linux x86_64、またはバージョン 7.6 から 7.9 までの CentOS である必要があります。Linux オペレーティングシステムのカーネルバージョンは 4.19 以降である必要があります。CentOS オペレーティングシステムのカーネルバージョンは 3.1.0 である必要があります。uname -r コマンドを実行して、オペレーティングシステムのカーネル情報を表示できます。
Simple Log Service コンソールを使用したデータ収集
Simple Log Service コンソール にログインします。
[ログアプリケーション] セクションで、[インテリジェント O&M] タブをクリックします。次に、[full-stack Observability] をクリックします。
[simple Log Service Full-stack Observability] ページで、管理するインスタンスをクリックします。
左側のナビゲーションウィンドウで、[フルスタック監視] をクリックします。
インスタンスの [フルスタック監視] 機能を初めて使用する場合は、[有効化] をクリックします。
左側のナビゲーションウィンドウで、[データインポート] をクリックします。[データインポート構成] ページで、[kubernetes 監視] セクションの [非侵入型サービス監視] スイッチを見つけます。
ホストモニタリングデータの Logtail 構成を初めて作成する場合は、スイッチをオンにして構成ページに移動します。Logtail 構成を作成した場合は、
アイコンをクリックして構成ページに移動します。マシングループを作成します。
マシングループがすでに作成されている場合は、この手順をスキップします。
Container Service for Kubernetes (ACK) クラスターのマシングループを作成します。詳細については、「IP アドレスベースのマシングループの作成」をご参照ください。
セルフマネージドクラスターのマシングループを作成します。詳細については、「カスタム識別子ベースのマシングループの作成」をご参照ください。
コマンドラインインターフェイス (CLI) を使用したデータ収集
カスタムリソース定義 (CRD) 生成ツールをダウンロードします。
メソッド
説明
クラスター外に CRD テンプレートツールをインストールする
クラスター外に CRD テンプレートツールをインストールする場合は、ログインアカウントに
~/.kube/config構成ファイルが存在することを確認してください。構成ファイルには、クラスターで管理操作を実行できるようにする設定が含まれています。kubectl コマンドを実行して、関連する操作を実行できます。クラスター内に CRD テンプレートツールをインストールする
コンテナーに CRD テンプレートツールをインストールする場合、システムは
alibaba-log-controllerという名前のインストール済みコンポーネントの権限に基づいて CRD を作成します。~/.kube/config構成ファイルが存在しない場合、またはネットワーク状態が悪いことによる接続エラーが発生した場合は、この方法を使用して CRD テンプレートツールをインストールできます。クラスター外への CRD テンプレートツールのインストール
クラスターにログインし、CRD テンプレートツールをダウンロードします。
中国
curl https://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/kubernetes/crd-tool.tar.gz -o /tmp/crd-tool.tar.gz中国以外
curl https://logtail-release-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/kubernetes/crd-tool.tar.gz -o /tmp/crd-tool.tar.gz
CRD テンプレートツールをインストールします。ツールがインストールされると、CRD テンプレートツールがインストールされているフォルダーに
sls-crd-toolが生成されます。tar -xvf /tmp/crd-tool.tar.gz -C /tmp &&chmod 755 /tmp/crd-tool/install.sh && sh -x /tmp/crd-tool/install.sh./sls-crd-tool listコマンドを実行して、ツールがインストールされているかどうかを確認します。値が返された場合、ツールはインストールされています。
クラスター内への CRD テンプレートツールのインストール
クラスターにログインし、
alibaba-log-controllerコンテナーにアクセスします。kubectl get pods -n kube-system -o wide |grep alibaba-log-controller | awk -F ' ' '{print $1}' kubectl exec -it {pod} -n kube-system bash cd ~CRD テンプレートツールをダウンロードします。
インターネット経由でクラスター内のリソースをダウンロードできる場合は、次のいずれかのコマンドを実行して CRD テンプレートツールをダウンロードします。
中国
curl https://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/kubernetes/crd-tool.tar.gz -o /tmp/crd-tool.tar.gz中国以外
curl https://logtail-release-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/kubernetes/crd-tool.tar.gz -o /tmp/crd-tool.tar.gz
インターネット経由でクラスター内のリソースをダウンロードできない場合は、クラスター外に CRD テンプレートツールをダウンロードできます。次に、
kubectl cp <source> <destination>コマンドを実行するか、ACK のファイルアップロード機能を使用して CRD テンプレートツールをコンテナーにアップロードします。
CRD テンプレートツールをインストールします。ツールがインストールされると、CRD テンプレートツールがインストールされているフォルダーに
sls-crd-toolが生成されます。tar -xvf /tmp/crd-tool.tar.gz -C /tmp &&chmod 755 /tmp/crd-tool/install.sh && sh -x /tmp/crd-tool/install.sh./sls-crd-tool listコマンドを実行して、ツールがインストールされているかどうかを確認します。値が返された場合、ツールはインストールされています。
CRD 生成ツールを使用して Logtail 構成を生成します。
次のコマンドを実行して、テンプレートの定義を表示します。
./sls-crd-tool get ebpfK8sPlugin必須パラメーターを現在のインスタンス ID に置き換え、次のコマンドを実行してパラメーターの値をプレビューします。
./sls-crd-tool apply -f template-ebpfK8sPlugin.yaml --create=falseプロジェクトパラメーターで現在のインスタンスが属するプロジェクトが指定されているかどうかを確認します。指定されている場合は、次のコマンドを実行してテンプレートファイルをデプロイし、データを収集します。
./sls-crd-tool apply -f template-ebpfK8sPlugin.yaml[データインポート構成] ページに移動します。次の図に示すように、Logtail 構成が生成されます。[リソース監視] セクションの [構成] の横にある数字が 1 ずつ増えます。システムが Logtail 構成を生成できなかった場合、数字は変更されません。

Simple Log Service コンソールを使用したデータ収集
[既存のマシングループを使用する] をクリックします。
モニタリングコンポーネントがインストールされると、Simple Log Service は
k8s-group-${your_k8s_cluster_id}形式の名前を持つマシングループを自動的に作成します。このマシングループを使用できます。[ソースサーバーグループ] から
k8s-group-${your_k8s_cluster_id}マシングループを選択し、[適用済みサーバーグループ] に移動します。次に、[次へ] をクリックします。重要マシングループのハートビートステータスが [失敗] の場合は、[自動再試行] をクリックできます。問題が解決しない場合は、「Logtail マシングループにハートビートがない場合の対処方法」をご参照ください。
[データソースの指定] ステップで、パラメーターを構成し、[完了] をクリックします。次の表にパラメーターを示します。
パラメーター
説明
[一般設定]
[構成名]
Logtail 構成の名前。カスタム名を指定できます。
[クラスター]
クラスターのカスタム名。
このパラメーターを構成すると、Simple Log Service は Logtail 構成を使用して収集されたモニタリングデータに
cluster=クラスター名形式のタグを追加します。重要クラスター名が一意であることを確認してください。そうしないと、データの競合が発生する可能性があります。
[アプリケーション層プロトコルの監視]
[アプリケーション層プロトコルの監視] をオンにすると、Logtail は HTTP、MySQL、Redis などのアプリケーション層のネットワークプロトコルを解析します。
[ネットワークメトリックの統計間隔]
レイヤー 4 ネットワークデータが集約される間隔。間隔内に生成されたデータが集約され、集約結果が返されます。単位:秒。600 秒以下の間隔を指定することをお勧めします。
[プロトコルメトリックの統計間隔]
レイヤー 7 ネットワークデータが集約される間隔。間隔内に生成されたデータが集約され、集約結果が返されます。単位:秒。60 秒以下の間隔を指定することをお勧めします。
[プロトコルサンプルレート]
ネットワークデータのサンプルレート。レイヤー 7 ネットワークデータのみがフィルタリングされます。サンプルレートは統計に影響しません。
[プロトコルホワイトリスト]
解析するアプリケーション層プロトコル。
[kubernetes セレクター]
[名前空間ホワイトリスト]
名前空間名正規表現を構成して、データを収集する名前空間を指定します。
[名前空間ブラックリスト]
名前空間名正規表現を構成して、データを収集しない名前空間を指定します。
[pod ホワイトリスト]
Pod 名正規表現を構成して、データを収集する Pod を指定します。
[pod ブラックリスト]
Pod 名正規表現を構成して、データを収集しない Pod を指定します。
[コンテナーホワイトリスト]
コンテナー名正規表現を構成して、データを収集するコンテナーを指定します。
[コンテナーブラックリスト]
コンテナー名正規表現を構成して、データを収集しないコンテナーを指定します。
[ラベルホワイトリスト]
コンテナーラベルホワイトリスト。ホワイトリストは、ログが収集されるコンテナーを指定します。
[ラベルキー] をラベルの名前に設定し、[ラベル値] を正規表現に設定します。たとえば、[ラベルキー] を io.kubernetes.container.name に設定し、[ラベル値] を ^(nginx|cube)$ に設定すると、nginx という名前のコンテナーと cube という名前のコンテナーからログが収集されます。
キーと値のペアは論理 OR 関係にあります。コンテナーのキーと値のペア形式のラベルが、指定されたキーと値のペアのいずれかと一致する場合、コンテナーのログが収集されます。
[ラベルブラックリスト]
コンテナーラベルブラックリスト。ブラックリストは、ログが収集されないコンテナーを指定します。
[ラベルキー] をラベルの名前に設定し、[ラベル値] を正規表現に設定します。たとえば、[ラベルキー] を io.kubernetes.container.name に設定し、[ラベル値] を ^(nginx|cube)$ に設定すると、nginx という名前のコンテナーまたは cube という名前のコンテナーからログは収集されません。
キーと値のペアは論理 OR 関係にあります。コンテナーのキーと値のペア形式のラベルが、指定されたキーと値のペアのいずれかと一致する場合、コンテナーのログは収集されません。
[環境変数ホワイトリスト]
環境変数ホワイトリスト。ホワイトリストは、ログが収集されるコンテナーを指定します。
[環境変数キー] を環境変数の名前に設定し、[環境変数値] を正規表現に設定します。たとえば、[環境変数キー] を NGINX_SERVICE_PORT に設定し、[環境変数値] を ^(80|6379)$ に設定すると、ポート番号が 80 のコンテナーとポート番号が 6379 のコンテナーからログが収集されます。
キーと値のペアは論理 OR 関係にあります。コンテナーのキーと値のペア形式の環境変数が、指定されたキーと値のペアのいずれかと一致する場合、コンテナーのログが収集されます。
[環境変数ブラックリスト]
環境変数ブラックリスト。ブラックリストは、ログが収集されないコンテナーを指定します。
[環境変数キー] を環境変数の名前に設定し、[環境変数値] を正規表現に設定します。たとえば、[環境変数キー] を NGINX_SERVICE_PORT に設定し、[環境変数値] を ^(80|6379)$ に設定すると、ポート番号が 80 または 6379 のコンテナーからログは収集されません。
キーと値のペアは論理 OR 関係にあります。コンテナーのキーと値のペア形式の環境変数が、指定されたキーと値のペアのいずれかと一致する場合、コンテナーのログは収集されません。
[詳細構成]
[ローカルパケットのドロップ]
[ローカルパケットのドロップ] をオンにすると、Logtail は INET ドメインソケットから送信された受信リクエストのパケットをドロップします。
[unix パケットのドロップ]
[unix パケットのドロップ] をオンにすると、Logtail は Unix ドメインソケットから送信されたリクエストのパケットをドロップします。
ほとんどの場合、Unix ドメインソケットはローカルデータ転送に使用されます。
[不明なパケットのドロップ]
[不明なパケットのドロップ] をオンにすると、Logtail は INET ドメインソケットまたは Unix ドメインソケットから送信されていないリクエストのパケットをドロップします。
[コンテナーデータの読み取り間隔]
コンテナーメタデータを読み取る間隔。単位:秒。60 秒以下の間隔を指定することをお勧めします。
[ソケットデータの読み取り間隔]
ソケットメタデータを読み取る間隔。単位:秒。30 秒以下の間隔を指定することをお勧めします。
[プロトコル集約ウィンドウ]
プロトコルメトリックの統計間隔内のプロセスレベルデータ集約ウィンドウのサイズ。このパラメーターは、リソース消費を制御し、多数の異なる呼び出しによって発生する Logtail メモリ増加の問題を防ぐために使用されます。クライアントのデフォルト値は 500、サーバーのデフォルト値は 5000 です。
設定を構成すると、Simple Log Service はメトリックストアなどのアセットを自動的に作成します。
次のステップ
Kubernetes データプレーンのモニタリングデータが Simple Log Service に収集されると、フルスタック監視アプリケーションはモニタリングデータ専用のダッシュボードを自動的に作成します。ダッシュボードを使用して、モニタリングデータを分析できます。詳細については、「ダッシュボードの表示」をご参照ください。