すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:Ingressログセンターの設定

最終更新日:Dec 10, 2024

このトピックでは、Ingress Log Centerを有効にして、Ingressログをリアルタイムで収集する方法について説明します。

前提条件

Logtailコンポーネントがインストールされます。 詳細については、「ACKクラスターへのLogtailコンポーネントのインストール」をご参照ください。

説明

デフォルトでは、LogtailコンポーネントはKubernetesクラスターの作成中に自動的にインストールされます。

手順1: Ingressコレクション設定のデプロイ

ACKは、AliyunLogConfigという名前のCustomResourceDefinition (CRD) のタイプを定義します。AliyunLogConfigを作成して、ログ収集を設定できます。 alibaba-log-controllerは、Simple Log Serviceの設定を自動的に生成して、ログデータを収集し、関連するダッシュボードのデータを更新します。

  1. KubernetesクラスターでAliyunLogConfig CRD設定を定義します。

    説明
    • alibaba-log-controllerコンポーネントのバージョンが0.2.0.0-76648ee-aliyun以降であることを確認します。

      CRD設定の適用後にコンポーネントバージョンを更新する場合は、CRD設定を削除し、コンポーネントバージョンの更新後に再適用します。

    • CRD設定は、Container Service for Kubernetes (ACK) のデフォルトのIngress Controllerのアクセスログ形式に対してのみ有効です。 Ingress Controllerのアクセスログ形式を変更した場合は、それに応じてCRD設定のprocessor_regex部分を更新します。 詳細については、「DaemonSetモードでのKubernetesコンテナーからのテキストログの収集」のCRD設定をご参照ください。

    • 現在、アクセスログに依存する他のシステムがない場合は、Simple Log Serviceの推奨アクセスログ形式の採用を検討してください。 これを行うには、kubectl edit configmap -n kube-system nginx-configurationコマンドを実行してconfigmapを変更し、log-format-upstreamフィールドを次のように更新します。

    • log-format-upstream: $the_real_ip - [$the_real_ip] - $remote_user [$time_local] "$request" $status 
      $body_bytes_sent "$http_referer" "$http_user_agent" $request_length $request_time [$proxy_upstream_name] 
      $upstream_addr $upstream_response_length $upstream_response_time $upstream_status $req_id $host
    apiVersion: log.alibabacloud.com/v1alpha1
    kind: AliyunLogConfig
    metadata:
      # your config name, must be unique in you k8s cluster
      name: k8s-nginx-ingress
    spec:
      # logstore name to upload log
      logstore: nginx-ingress
      # product code, only for k8s nginx ingress
      productCode: k8s-nginx-ingress
      # logtail config detail
      logtailConfig:
        inputType: plugin
        # logtail config name, should be same with [metadata.name]
        configName: k8s-nginx-ingress
        inputDetail:
          plugin:
            inputs:
            - type: service_docker_stdout
              detail:
                IncludeLabel:
                  io.kubernetes.container.name: nginx-ingress-controller
                Stderr: false
                Stdout: true
            processors:
            - type: processor_regex
              detail:
                KeepSource: false
                Keys:
                - client_ip
                - x_forward_for
                - remote_user
                - time
                - method
                - url
                - version
                - status
                - body_bytes_sent
                - http_referer
                - http_user_agent
                - request_length
                - request_time
                - proxy_upstream_name
                - upstream_addr
                - upstream_response_length
                - upstream_response_time
                - upstream_status
                - req_id
                - host
                - proxy_alternative_upstream_name
                NoKeyError: true
                NoMatchError: true
                Regex: ^(\S+)\s-\s\[([^]]+)]\s-\s(\S+)\s\[(\S+)\s\S+\s"(\w+)\s(\S+)\s([^"]+)"\s(\d+)\s(\d+)\s"([^"]*)"\s"([^"]*)"\s(\S+)\s(\S+)+\s\[([^]]*)]\s(\S+)\s(\S+)\s(\S+)\s(\S+)\s(\S+)\s*(\S*)\s*\[*([^]]*)\]*.*
                SourceKey: content
  2. Ingressコレクション構成をデプロイします。

    次のいずれかの配置方法を選択します。

ステップ2: ログセンターを追加する

  1. Simple Log Serviceコンソールにログインします。

  2. ログ申請セクションをクリックし、インテリジェントO&Mタブをクリックし、Ingressログセンター.

  3. 追加.

  4. ログセンターの追加パネル、次のパラメータを設定し、OK.

    パラメーター

    説明

    ログセンター名

    ログセンターの名前を入力します。

    プロジェクト

    プロジェクトを選択してください。

    ログストア

    ログストアを選択します。 手順1: Ingressコレクション構成のデプロイで指定されたログストアと一致することを確認します。

次のステップ

設定が完了したら、Ingress Log Centerで関連レポートを表示し、ログクエリ分析、ダウンロード、出荷、変換、アラートなどのタスクを実行できます。 詳細については、「Alibaba Cloudサービスのログに対する一般的な操作」をご参照ください。 クエリ分析とモニタリングデータのアラートを管理することもできます。 詳細については、「メトリックデータの照会と分析」をご参照ください。