登録済みクラスターを Simple Log Service (SLS) と統合することで、複数の環境に分散している Kubernetes クラスターを統一的に管理できます。この統合は、Container Service for Kubernetes (ACK) の logtail-ds アドオンを使用して実行されます。
前提条件
-
ACK One 登録済みクラスターが作成され、データセンター内の自己管理型 Kubernetes クラスターが ACK One 登録済みクラスターに接続されていること。詳細については、「ACK One 登録済みクラスターの作成」をご参照ください。
ステップ 1:logtail-ds アドオンの RAM 権限の設定
onectl を使用した設定
-
ローカルマシンに onectl をインストールして設定します。詳細については、「onectl を使用した登録済みクラスターの管理」をご参照ください。
-
logtail-ds アドオンの RAM 権限を設定します。
onectl ram-user grant --addon logtail-ds想定される出力:
Ram policy ack-one-registered-cluster-policy-logtail-ds granted to ram user ack-one-user-ce313528c3 successfully.
コンソールを使用した設定
登録済みクラスターにアドオンをインストールする前に、クラスターがクラウドサービスにアクセスできるように、登録済みクラスターに AccessKey ペアを設定する必要があります。AccessKey ペアを設定する前に、Resource Access Management (RAM) ユーザーを作成し、必要なクラウドリソースにアクセスするための権限を付与する必要があります。
-
カスタムポリシーの作成。次のポリシー内容を使用します。
RAM ユーザーの AccessKey の作成。
警告セキュリティを強化するために、AccessKey にネットワークアクセス制御ポリシーを設定して、信頼できるネットワーク環境へのアクセスを制限し、セキュリティを向上させることを推奨します。詳細については、「AccessKey ベースのネットワークアクセス制限ポリシー」をご参照ください。
-
AccessKey ペアを使用して、登録済みクラスターに
alibaba-addon-secretという名前の Secret を作成します。logtail-ds アドオンが使用する Secret を作成します。
kubectl -n kube-system create secret generic alibaba-addon-secret --from-literal='access-key-id=<your AccessKey ID>' --from-literal='access-key-secret=<your AccessKey Secret>'<your AccessKey ID>と<your AccessKey Secret>は、前のステップで取得した AccessKey ID と AccessKey Secret です。
ステップ 2:logtail-ds アドオンのインストール
onectl を使用したインストール
logtail-ds アドオンをインストールします。
onectl addon install logtail-ds
想定される出力:
Addon logtail-ds, version **** installed.
コンソールを使用したインストール
-
ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
-
クラスターリスト ページで、対象クラスターの名前をクリックします。左側のナビゲーションウィンドウで、アドオン管理 をクリックします。
-
アドオン管理 ページで、ログとモニタリング タブをクリックします。logtail-ds アドオンを見つけ、カードの右下隅にある インストール をクリックします。
-
[注意] ダイアログボックスで、OK をクリックします。
(オプション) ステップ 3:クラスター内のすべての Pod のログ収集設定
このステップのログ収集設定では、プロジェクトや Logstore などの SLS リソースが作成および使用されます。保存されたログ、インデックス、読み取り/書き込みトラフィックに対して従量課金ベースで料金が発生し、収集を停止するまで料金は発生し続けます。詳細については、「課金概要」をご参照ください。料金の発生を停止するには、不要になったログ収集設定と関連する Logstore を削除してください。
テキストログ
クラスター内のすべての Pod からテキストログを収集するには、kubectl を使用して登録済みクラスターに接続し、次の設定をデプロイします。
apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
name: test-file # リソースの名前。名前は現在の Kubernetes クラスター内で一意である必要があります。
spec:
project: k8s-log-c326bc86**** # オプション。プロジェクトの名前。名前はカスタマイズ可能です。(推奨) プロジェクト名は [k8s-log-<クラスター ID>] のフォーマットで命名してください。
logstore: test-file # 必須。Logstore の名前。Logstore が存在しない場合、SLS が自動的に作成します。
logtailConfig: # Logtail 構成。
inputType: file # 収集するデータソースのタイプ。値 file はテキストログを示し、値 plugin は標準出力 (stdout) を示します。
configName: test-file # Logtail 構成名。名前は metadata.name で指定されたリソース名と同じである必要があります。
inputDetail: # Logtail 構成の詳細。
logType: common_reg_log # シンプルモードでテキストログを収集します。
logPath: /log/ # ログファイルが保存されているパス。
filePattern: "*.log" # ログファイルの名前。ワイルドカードがサポートされています:アスタリスク (*) と疑問符 (?)。例:log_*.log。
dockerFile: true # コンテナ内のファイルを収集するには、dockerFile を true に設定します。
advanced: # コンテナをフィルターするために使用される条件。
k8s:
# オプション。以下のフィルターはデモンストレーション用です。クラスター内のすべての Pod からテキストログを収集するには、これらのフィルターを削除するか、独自のルールに置き換えてください。
K8sNamespaceRegex: ^(default)$
K8sPodRegex: '^(nginx-log-demo.*)$'
K8sContainerRegex: ^(nginx-log-demo-0)$
IncludeK8sLabel:
job-name: "^(nginx-log-demo.*)$"
パラメーターの詳細については、「Logtail 構成 (レガシー)」をご参照ください。
標準出力 (stdout)
クラスター内のすべての Pod から標準出力 (stdout) を収集するには、kubectl を使用して登録済みクラスターに接続し、次の設定をデプロイします。設定がデプロイされると、stdout-logstore という名前の Logstore が自動的に作成され、ログがその Logstore に収集されます。
apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
# 設定の名前。名前は Kubernetes クラスター内で一意である必要があります。
name: stdout-collector
spec:
# ログがアップロードされる Logstore の名前。
logstore: stdout-logstore
# Logtail 構成の詳細。
logtailConfig:
# Docker 標準出力の入力タイプ。'plugin' である必要があります。
inputType: plugin
# Logtail 構成の名前。metadata.name と一致する必要があります。
configName: stdout-collector
inputDetail:
plugin:
inputs:
-
type: service_docker_stdout
detail:
# 標準出力 (stdout) と標準エラー出力 (stderr) を収集します。
Stdout: true
Stderr: true
# COLLECT_STDOUT_FLAG:false 環境変数を持つコンテナを除く、すべてのコンテナの標準出力 (stdout) を収集します。
ステップ 4:Simple Log Service の設定
-
詳細については、「アプリケーション作成時の Simple Log Service の設定」をご参照ください。
-
Ingress ログの収集方法の詳細については、「nginx-ingress-controller のアクセスログの分析と監視」をご参照ください。