Linux用のロギング・エージェントの配置

ロギング・エージェントをデプロイして、RHEL8、RHEL9、Debian、Ubuntuなどの Linux環境からインフラストラクチャとアプリケーションのログを収集し、IBM Cloud Logsインスタンスにルーティングすることができます。 サポートされるLinux環境の詳細については 、ロギング・エージェント を参照してください。

これらの説明は Red Hat Linux システム用ですが、他の Linux RPM ベースのサーバーにも使用できます。

サポートされているLinux環境にエージェントをデプロイするには、以下の手順を実行します。

エージェントの認証方法を定義する

エージェントの ID タイプと認証方法を選択します。 次に、信頼できるプロファイルまたはAPIキーを作成する。 IBM Cloud Logsにログを送信するために必要なロールは Sender です。

エージェントがIBM® Cloud Logsサービスで認証するために使用するIDとして、サービスIDまたは信頼できるプロファイルを使用できます。 詳細については、取り込みのためのIAM権限の付与 を参照してください。

次のオプションのいずれかを選択してください。

オプション1:信頼できるプロファイルを使った認証

トラステッド・プロファイルを作成します。 詳細については、取り込みのための信頼済みプロファイルの生成 を参照してください。

オプション2:サービスIDのAPIキーを使った認証

サービスID認証用のAPIキーを生成する。 詳細については、取り込み用のAPIキーを生成する を参照してください。

必要なRPMまたはDEBパッケージをダウンロードする

以下のステップを実行します。

  1. 必要なRPMまたはDEBパッケージをダウンロードする。

    現在のロギング・エージェントバージョンについては、エージェントのリリースノート を参照してください。

  2. 以下のコマンドを実行してチェックサムを検証する:

    sha256sum -c <sha256_filename>
    

    ここで、<sha256_filename> はダウンロード *.sha256 ファイルのファイル名です。

  3. 最新バージョンのエージェントをインストールしている場合、 post-config.sh ファイルは RPM または DEB パッケージの一部であり、 /opt/fluent-bit/bin/post-config.sh にあります。 1.6.2 より前のバージョンをお使いの場合は、この手順で post-config.sh ファイルをダウンロードする必要があります。

    このステップは、 ロギング・エージェント 1.6.1、またはそれ以前を使用している場合にのみ必要です。 ロギング・エージェント 1.6.2 またはそれ以降のリリースには適用されません。

    wget https://logs-router-agent-config.s3.us.cloud-object-storage.appdomain.cloud/post-config.sh
    
    chmod +x post-config.sh
    

ロギング・エージェントの設定を行い、デプロイする

以下のステップを実行します。

  1. Linux 環境にログインする。

  2. エージェントをインストールします。

    • RHELの場合:

      rpm -ivh <rpm_filename>
      
    • DebianとUbuntuは実行してください:

      dpkg -i <deb_filename>
      

    ここで、<rpm_filename> または <deb_filename> はダウンロードした *.rpm または *.deb ファイルの名前である。

  3. 構成スクリプトを実行します。

    /opt/fluent-bit/bin/post-config.sh -h <target_host> -p <target_port> [-t <target_path>] -a <auth_mode> -k <iam_api_key> [-s <vsi_secure_access_enabled>] [-i <IAM_environment>] [--subsystem-name <name>] [--application-name <name>]
    

    説明

    -t <target_path>

    IBM Cloud Logs インスタンスにデータを送信するパスを指定する。 指定がない場合、デフォルトは /logs/v1/singles です。

    -a <auth_mode>

    IAMAPIKey または VSITrustedProfile を指定します。

    -k <iam_api_key>

    Cloud Identity and Access Management APIキーを指定します(IAMAPIKey モードでは必須)。 APIキーの生成 の指示に従ってください。

    Cloud Identity and Access Management APIキーの詳細については、APIキーの管理 を参照してください。

    -d <trusted_profile_id>

    信頼済みプロファイルIDを指定する(「VSITrustedProfile モードでは必須)。 信頼されたプロファイルを使用する場合は、「取り込みのための権限の設定」で設定したIDに設定します。 メタデータ・サービスを有効にしてインスタンスを作成し、作成時にIDを指定して信頼済みプロファイルをインスタンスにリンクする必要があります。 詳細については、 仮想サーバー・インスタンスの作成を 参照してください。

    信頼済みプロファイルの詳細については、信頼済みプロファイルの作成 を参照してください。

    --send-directly-to-icl 非推奨

    IBM Cloud Logsに直接ログを送るには、このパラメータを設定します。

    -h <target_host>

    IBM Cloud Logs取り込み用のホストで、IBM Cloud Logsインスタンス OverviewEndpoints セクションにあります。 イングレス・エンドポイントを使用する。 詳細については、イングレス・エンドポイント を参照のこと

    -i <IAM_environment>

    IAM 認証にパブリック・エンドポイントとプライベート・エンドポイントのどちらを使用するかを指定します。 Production は、パブリックエンドポイントを使用することを示します。 PrivateProduction は、プライベートエンドポイントを使用することを指定します。 Production がデフォルトです。

    システムが公共のインターネットにアクセスできない場合、プライベート・エンドポイントを使用するには「PrivateProduction 使用しなければならない。

    -p <target_port>

    IBM Cloud Logsに直接ログを送るには 443 を使います。

    -s <vsi_secure_access_enabled>

    (オプション) VSIでセキュアアクセスを有効にしている場合は、true に設定します。 デフォルトでは false。 例えば、-s trueなどです。

    --application-name <name>

    アプリケーション名は、ログを生成し、 IBM Cloud Logs に送信する環境を定義する。 指定がない場合、デフォルトは ${HOSTNAME} です。

    --subsystem-name <name>

    サブシステム名は、ログを生成して IBM Cloud Logs に送信するサービスまたはアプリケーションです。 指定がない場合、デフォルトは not-found です。

    スクリプトを実行して、パラメータを変更して設定を更新します。

ロギング・エージェント デフォルト設定

ロギング・エージェント には、あらかじめ定義された入力ソースとフィルターを含むデフォルトのコンフィギュレーションが付属している。 このデフォルトのセットアップは、一般的な場所からログを収集し、基本的なメタデータでそれらを豊かにするように構成されている。

デフォルト入力ソース

ロギング・エージェント は、 ディレクトリとそのサブディレクトリのログファイルを監視するようにあらかじめ設定されている。 /var/log/ 以下は、デフォルトの inputs.conf の例である:

[INPUT]
  Name              tail
  Tag               host.*
  Path              /var/log/**/*.log
  Path_Key          file
  Exclude_Path      /var/log/at/**
  DB                /var/lib/fluent-bit/fluent-bit.DB
  Buffer_Chunk_Size 32KB
  Buffer_Max_Size   256KB
  Mem_Buf_Limit     30MB
  Skip_Long_Lines   On
  Refresh_Interval  10
  storage.type      filesystem
  storage.pause_on_chunks_overlimit on

デフォルトのフィルター

デフォルトの設定には、ログレコードをメタデータで強化し、より簡単に処理できるように整理する2つのフィルターが含まれています:

  • フィルタの変更 :サブシステム名、アプリケーション名、ホスト名、プラットフォームなどのメタデータ・フィールドを追加します。

  • ネストフィルター :メタデータフィールドを1つの meta キーの下にグループ化する。

以下は、デフォルトの filters.conf の例である:

[FILTER]
  Name modify
  Match *
  Add subsystemName    ${SUBSYSTEM_NAME}
  Add applicationName  ${APPLICATION_NAME}
  Add meta.hostname    ${HOSTNAME}
  Add meta.environment prod   # Sample values: prod, staging, dev, qa
  Add meta.platform    linux

[FILTER]
  Name nest
  Match *
  Operation nest
  Wildcard meta.*
  Nest_under meta
  Remove_prefix meta.

ロギング・エージェント 設定のカスタマイズ

これらのデフォルトは、ログを収集し、充実させるための基盤となる。 エージェントをニーズに合わせて設定するには、 /etc/fluent-bit/ ディレクトリにある inputs.conf, filters.conf, outputs.conf ファイルを変更します。

メタデータ・フィールドの追加

ルーティングされたログにメタデータフィールドを追加することができる。

以下のステップを実行します。

  1. /etc/fluent-bit/ フォルダ内の fluent-bit.conf ファイルを編集する。

  2. カスタム・メタデータを次の構造で追加する: 'Add <meta.key_name> <your_custom_value>

    [FILTER]
      Name modify
      Match *
      Add subsystemName    ${SUBSYSTEM_NAME}
      Add applicationName  ${APPLICATION_NAME}
      Add meta.hostname    ${HOSTNAME}
      Add meta.env         prod   # Sample values: prod, staging, dev, qa
      Add meta.platform    linux
    

    説明

    • <meta.key_name> は追加するメタデータ・フィールドの名前(例えば 'meta.env )で、'<your_custom_value> はフィールドに割り当てる値(例えば環境名)です。

    例えば、 region をメタデータとして追加したり、バージョンを新しいフィールドとして追加したい場合は、次のような設定になる:

    [FILTER]
      Name modify
      Match *
      Add subsystemName    ${SUBSYSTEM_NAME}
      Add applicationName  ${APPLICATION_NAME}
      Add meta.hostname    ${HOSTNAME}
      Add meta.env         prod
      Add meta.platform    linux
      Add meta.region      us-east
      Add version          my-version
    
  3. 構成ファイルを保存します。

  4. エージェントを再起動して変更を適用します。

    systemctl daemon-reload && systemctl restart fluent-bit
    

ファイルをインクルードまたは除外する

ロギング・エージェントが監視するログファイルを構成する必要があります。

以下のステップを実行します。

  1. /etc/fluent-bit/ フォルダ内の fluent-bit.conf ファイルを編集する。

  2. INPUT セクションを修正する。

    監視したいディレクトリとファイルを Path に設定します。

    Exclude_Path に監視から除外したいディレクトリとファイルを設定します。

    [INPUT]
      Name              tail
      Tag               *
      Path              /var/log/*.log
      Path_Key          file
      Exclude_Path      /var/log/audit.log
      DB                /var/lib/fluent-bit/fluent-bit.DB
      Buffer_Chunk_Size 32KB
      Buffer_Max_Size   256KB
      Skip_Long_Lines   On
      Refresh_Interval  10
      storage.type      filesystem
      storage.pause_on_chunks_overlimit on
    
  3. SERVICE セクションを修正する。

    storage.path ファイルシステム上の場所に設定し、ストリームとデータを保存します。

  4. 構成ファイルを保存します。

  5. エージェントを再起動して変更を適用します。

    systemctl daemon-reload && systemctl restart fluent-bit
    

ログが目的の宛先に配信されていることを確認する

以下のステップを実行します。

  1. IBM Cloud LogsインスタンスのウェブUIに移動します。.

  2. エージェントが正しく設定されている場合、デフォルトのダッシュボードビューでログを見ることができます。

    例えば、エージェントのホスト名にapplicationNameを設定した場合、ビューの applicationname フィルタにホスト名を設定することができます。

エージェントの更新

エージェントを更新するには、必要なエージェントパッケージをダウンロードし、お使いの環境に適したコマンドを実行します。 現在の ロギング・エージェント バージョンについては、 エージェントのリリースノートを 参照してください

  • RHELの場合:

    rpm -Uvh <rpm_filename>
    
  • DebianとUbuntuは実行してください:

    dpkg -i <deb_filename>
    

ここで、<rpm_filename> または <deb_filename> はダウンロードした *.rpm または *.deb ファイルの名前である。

エージェントを再インストールまたはアップグレードする場合、既存の設定ファイルは変更されません。

アップデート後、サービスを再起動する:

systemctl daemon-reload && systemctl restart fluent-bit

エージェントのアンインストール

ターミナルからsudoユーザーとして適切なコマンドを実行すれば、インストールされたエージェントを削除できる。

  • RHEL、 CentOS,、Fedora Linux :

    sudo yum erase draios-agent
    
  • DebianとUbuntuは実行してください:

    sudo apt-get remove draios-agent