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パッケージをダウンロードする
以下のステップを実行します。
-
必要なRPMまたはDEBパッケージをダウンロードする。
現在のロギング・エージェントバージョンについては、エージェントのリリースノート を参照してください。
-
以下のコマンドを実行してチェックサムを検証する:
sha256sum -c <sha256_filename>ここで、
<sha256_filename>はダウンロード*.sha256ファイルのファイル名です。 -
最新バージョンのエージェントをインストールしている場合、
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
ロギング・エージェントの設定を行い、デプロイする
以下のステップを実行します。
-
Linux 環境にログインする。
-
エージェントをインストールします。
-
RHELの場合:
rpm -ivh <rpm_filename> -
DebianとUbuntuは実行してください:
dpkg -i <deb_filename>
ここで、
<rpm_filename>または<deb_filename>はダウンロードした*.rpmまたは*.debファイルの名前である。 -
-
構成スクリプトを実行します。
/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インスタンス
OverviewのEndpointsセクションにあります。 イングレス・エンドポイントを使用する。 詳細については、イングレス・エンドポイント を参照のこと -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 ファイルを変更します。
メタデータ・フィールドの追加
ルーティングされたログにメタデータフィールドを追加することができる。
以下のステップを実行します。
-
/etc/fluent-bit/フォルダ内のfluent-bit.confファイルを編集する。 -
カスタム・メタデータを次の構造で追加する: '
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 -
構成ファイルを保存します。
-
エージェントを再起動して変更を適用します。
systemctl daemon-reload && systemctl restart fluent-bit
ファイルをインクルードまたは除外する
ロギング・エージェントが監視するログファイルを構成する必要があります。
以下のステップを実行します。
-
/etc/fluent-bit/フォルダ内のfluent-bit.confファイルを編集する。 -
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 -
SERVICE セクションを修正する。
storage.path ファイルシステム上の場所に設定し、ストリームとデータを保存します。
-
構成ファイルを保存します。
-
エージェントを再起動して変更を適用します。
systemctl daemon-reload && systemctl restart fluent-bit
ログが目的の宛先に配信されていることを確認する
以下のステップを実行します。
-
エージェントが正しく設定されている場合、デフォルトのダッシュボードビューでログを見ることができます。
例えば、エージェントのホスト名に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