tencent cloud

Cloud Log Service

自建K8sクラスタへのLogListenerインストール

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2026-10-12 14:31:23
AI翻訳
本稿では、自社構築のKubernetesクラスタ上でLogListenerコンポーネントのインストール、設定、アップグレード、アンインストール、およびトラブルシューティングを行う方法について説明します。

前提条件

Kubernetes 1.10以降のバージョンのクラスタを作成済みです。
kubectlがインストール済みであり、かつkubectlがクラスタに正常にアクセスできます。
自社構築K8sの収集に必要なTencentCloud API権限を設定済みです。詳細については、自社構築K8sを使用したデータのアップロードドキュメントを参照してください。
ログトピックの所在地域(region)を取得しました。詳細なCLS地域リストについては、利用可能な地域ドキュメントを参照してください。
CLS側の認証に必要なAPIキーID(secretid)およびAPIキーKey(secretkey)を取得しました。APIキー管理で確認できます。

操作手順

LogListenerのインストール

依存関係:
標準のKubernetesクラスタ、およびk3s、Huawei Cloud CCEなどのKubernetesクラスタをサポートします。microk8sクラスタはサポートしません。
Helmのバージョンは3.10以上である必要があります。
Linux環境です。macOSはサポートしません。
1. Helmをインストールします。
インストールの詳細については、Helmのインストールを参照してください。
2. LogListenerをインストールします。
以下のコマンドにより、daemonsetとして各Kubernetesの非Masterノードでコレクターが1つ実行されます。コレクターをMasterノードで実行する必要がある場合は、MasterノードへのLogListenerのデプロイを参照してください。
2.1 関連スクリプトをダウンロードします。
wget https://mirrors.tencent.com/install/cls/k8s/addon-charts/tencentcloud-cls-k8s.sh
2.2 スクリプトに実行権限を付与します。
# Linux環境のみをサポートします。MacOSはサポートしません。
chmod +x tencentcloud-cls-k8s.sh
2.3 インストールスクリプト。
イントラネットインストール
./tencentcloud-cls-k8s.sh install --region ap-xxxxxx --secretid xxx --secretkey xxx --network intra
外部ネットワークインストール
./tencentcloud-cls-k8s.sh install --region ap-xxxxxx --secretid xxx --secretkey xxx --network internet
パラメータの説明は以下の通りです。
パラメータ名
必須/任意
型説明
secretid
はい
TencentCloud APIキーの一部であり、SecretIdはAPI呼び出し元の識別に使用されます。TencentCloud APIキーに関連付けられたアカウントに、対応する自己構築K8sログ収集アップロード権限が付与されていることを確認してください。
secretkey
はい
TencentCloud APIキーの一部であり、SecretKeyは署名文字列の暗号化とサーバー側での署名文字列の検証に使用されるキーです。TencentCloud APIキーに関連付けられたアカウントに、対応する自己構築K8sログ収集アップロード権限が付与されていることを確認してください。
region
はい
対象CLSサービスリージョンです。リージョンの詳細については、利用可能なリージョンをご参照ください。例:ap-guangzhou。
network
いいえ
LogListenerがどの方式でサービスドメインにアクセスするかを表します。値:intraはイントラネットアクセス(デフォルト)、internetはインターネットアクセスです。
内部ネットワークアクセス:クラスタが配置されているサーバーがTencent Cloud CVMであり、かつサーバーの所在地域がアクセス先のCLSリージョンと一致する場合に適用されます。
外部ネットワークアクセス:クラスタが配置されているサーバーがTencent Cloudサーバーではない場合、またはサーバーの所在地域がアクセス先のCLSリージョンと一致しない場合に適用されます。
docker_root
いいえ
クラスタのDockerルートディレクトリです。デフォルトは/var/lib/dockerです。クラスタがこのデフォルトディレクトリではない場合、具体的なDockerルートディレクトリを指定する必要があります。
cluster_id
いいえ
K8sクラスタにLogListenerをインストールすると、CLSに対応するマシングループが自動的に作成されます。cluster_idを設定することで、このマシングループの名前を指定できます。指定しない場合、インストール中にデフォルトのIDが生成されます(cluster_idを指定することをお勧めします。デフォルトで生成されるIDは可読性が低いためです)。
注意:
指定したcluster_idは既存のマシングループ名と同じにすることはできません。
local_region
いいえ
K8sクラスタの所在地域です。デフォルト値はregionパラメータと一致します。K8sクラスタの所在地域がregionと異なる場合、カスタマイズして変更できます。
api_network
いいえ
TencentCloud APIがイントラネットを使用するかインターネットを使用するかです。値:intraはイントラネットアクセス、internetはインターネットアクセス(デフォルト)です。Direct Connectシナリオでのみ注意が必要です。
api_region
いいえ
TencentCloud APIのリージョンです。Direct Connectシナリオでのみ注意が必要です。デフォルト値はregionパラメータと一致します。
namespace
いいえ
ログ収集コンポーネントをインストールするnamespaceを指定します。指定しない場合、デフォルトはkube-systemです(通常、特別に指定する必要はありません)。
label
いいえ
ログ収集コンポーネントが配置されているポッドのポッドラベルをカスタマイズできます。
例:ログ収集コンポーネントが配置されているポッドにservice=a、app=bのポッドラベルを設定したい場合、ここのパラメータは--label label.service=a,label.app=bと定義します。
on_master
いいえ
Masterノードにデプロイするかどうかです。指定しない場合、デフォルトはfalseです。つまり、Masterノードに収集コンポーネントをデプロイしません。
enable_metrics
いいえ
インストール時にmetric収集コンポーネントをインストールするかどうかです。デフォルトはfalseです。つまり、デフォルトではmetricコンポーネントをインストールしません。
immutable_rootfs
いいえ
ノードのルートファイルシステムが読み取り専用の場合、またはLogListenerがread-only file systemエラーを報告した場合、trueに設定します。このとき、データディレクトリはデフォルトの/usr/local/loglistenerから書き込み可能な/var/lib/loglistenerに変更されます。デフォルトはfalseです。
3. インストールを検証します。
3.1 Helmパッケージのインストールを確認します。インストールが成功したら、Helmによるtencent-cloud-cls-logのインストールを確認します。
helm list -n kube-system
3.2 コンポーネントを確認します。以下のコマンドを使用してコンポーネントがすべて正常に起動しているかどうかを確認します。正常な場合は、cls-provisionerのPodが1つ起動し、各ホストマシンにtke-log-agentの収集Podが1つずつ起動します。
kubectl get pods -o wide -n kube-system | grep tke-log-agent
kubectl get pods -o wide -n kube-system | grep cls-provisioner

ログ収集の設定

LogListenerのインストールが完了した後、以下の2つの方法のいずれかを使用して、クラスタ内のログの収集を設定できます。
コンソールで対話形式により自社構築K8sのログ収集を設定します。詳細については、コンソールを使用した自社構築K8sクラスタのログ収集の設定をご参照ください。
CRD YAMLファイルを作成してK8sログ収集を設定します。詳細については、CRDを使用した自社構築K8sクラスタのログ収集の設定をご参照ください。

その他の操作

LogListenerの設定

LogListenerの設定を変更する場合(例:最大メモリ使用量)、以下の手順を参照して変更できます:
1. 以下のkubectlコマンドを実行して、tke-log-agentの環境変数を変更します。
kubectl edit ds tke-log-agent -n kube-system
2. 環境変数を追加してLogListenerの設定を定義します。



パラメータの説明は以下の通りです。
変数名
変数説明
MAX_CONNECTION
最大接続数、デフォルトは10です。
CHECKPOINT_WINDOW_SIZE
単一ファイルのcheckpointリング長、デフォルトは1024です。
MAX_FILE_BREAKPOINTS
ブレークポイントファイルのサイズはN*2kで、Nのデフォルトは8kです。
MAX_SENDRATE
最大送信レート、Bytes/s、デフォルトでは制限なしです。
MAX_FILE
最大監視ファイル数、デフォルトは15000です。
MAX_DIR
最大監視ディレクトリ数、デフォルトは5000です。
MAX_HTTPS_CONNECTION
HTTPSの最大接続数、デフォルトは100です。
CONCURRENCY_TASKS
LogListenerタスクプール、デフォルトは256です。この設定はLogListener v3.0.0以降のバージョンでのみサポートされています。
説明:
LogListener v3.0.0以上のバージョンは許可リストによる提供となります。必要な場合は、チケットを提出して利用を申請してください。
PROCESS_TASKS_EVERY_LOOP
1回のループで処理するタスク数、デフォルトは4です。
CPU_USAGE_THRES
LogListenerの最大CPU使用率は、デフォルトではLogListenerコンテナのCPU Limitと一致します。
MAX_MEM
最大メモリ使用量の上限は、デフォルトでLogListenerコンテナのメモリLimitと一致します。単位:Bytes。
MAX_SEND_RETRY_TIME
ログアップロードリクエストが失敗して再試行する場合の最大タイムアウト時間(s)、デフォルトは10800です。

LogListenerのアップグレード

1. アップグレード前に最新バージョンのインストールスクリプトを再取得し、最新のコレクターコンポーネントを取得する必要があります:
wget https://mirrors.tencent.com/install/cls/k8s/addon-charts/tencentcloud-cls-k8s.sh
chmod +x tencentcloud-cls-k8s.sh
2. 以下のコマンドを実行してアップグレードします。
./tencentcloud-cls-k8s.sh upgrade --region ap-xxxxxx --<options>
パラメータの説明:
パラメータ
パラメータ説明
region
対象CLSサービスリージョンです。詳細については、製品がサポートするリージョンリストをご参照ください。
upgrade_metrics
アップグレード時にmetric収集コンポーネントをインストールするかどうかを指定します。このパラメータを指定しない場合、アップグレード前の状態が維持されます(もともとインストール済みの場合は維持され、未インストールの場合はインストールされません)。明示的に有効または無効にする必要がある場合は、trueまたはfalseを渡すことができます。
namespace
ログ収集コンポーネントをインストールするnamespaceです。デフォルトではkube-systemにインストールされ、通常は特別に指定する必要はありません。

LogListenerキーの表示/更新

自社構築KubernetesにLogListenerをインストールしてデプロイした後、ユーザーが指定したsecretidとsecretkeyはKubernetesクラスタのconfigmapに保存されます。
以下のコマンドを実行してキーを確認できます:
kubectl get configmap -n kube-system cls-credential
キーを変更する場合、configmap内のキーと有効期限を直接編集して変更すれば、コンポーネントが自動的にキーを更新します。

LogListenerのアンインストール

以下のコマンドを使用して、インストール済みのtencent-cloud-cls-log helmパッケージをアンインストールできます。ここで、-nはLogListenerが存在する名前空間であり、通常はkube-systemです。
helm uninstall tencent-cloud-cls-log -n kube-system
注意:
tencent-cloud-cls-logパッケージを完全に削除する場合は、以下のコマンドを実行して関連するsecret設定を削除する必要があります。ここで、-nはLogListenerが存在する名前空間であり、通常はkube-systemです。
kubectl delete secret -n kube-system cls-k8s

MasterノードへのLogListenerのデプロイ

デフォルトでは、コレクターはdaemonsetとしてKubernetesの各非Masterノードで実行されます。Masterノードでコレクターを実行する必要がある場合は、以下の手順を参照して、tke-log-agentのdaemonset宣言ファイルを調整してください。
1. 以下のkubectlコマンドを実行して、tke-log-agentの宣言ファイルを変更します。
kubectl edit ds tke-log-agent -n kube-system
2. 以下の図中の設定項目を削除します:affinity、tolerations。



注意:
Masterノードにtaintが存在する場合、tolerations設定項目を削除する必要はありません。設定内のkeyフィールド値を該当Masterノードのtaintのkeyに置き換えることができます。

taintの検索手順は以下の通りです:
1. Masterノードの名前を見つけます:Masterノードには通常、control-planeまたはMasterのTagが付いています。
kubectl get nodes -l node-role.kubernetes.io/control-plane
# または旧バージョンのクラスタです。
kubectl get nodes -l node-role.kubernetes.io/master
2. 該当ノードの詳細情報を表示します:<node-name>を前の手順で確認したノード名に置き換えます。
kubectl describe node <node-name>
3. 出力でTaintsセクションを検索します。ここにはすべてのtaintが一覧表示されます:
Taints: node-role.kubernetes.io/control-plane:NoSchedule
node.kubernetes.io/not-ready:NoSchedule

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



ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック