はじめに
みなさん、こんにちは。
IBM Cloud Logsは、OpenShift / Kubernetes on IBM Cloudのログをまとめて収集・可視化できる便利なサービスです。
一方で、ログは出力量が多くなりやすく、取り込み量によってはコストの増加につながります。
そのため、必要なログを残しつつ、不要なログを抑えるフィルタリングは運用面だけでなくコスト最適化の観点でも重要です。
2026年3月時点では、OpenShift on IBM Cloud向けにLogging Agentのフィルタリング方法をまとめた日本語記事があまり見当たらなかったため、本記事で整理します。
IBM Cloud Logsの構成
OpenShiftのログをCloud Logsで管理する際はLogging Agentが必要です。
OpenShiftへDaemonSetでLogging Agent Podをデプロイし、各ノードからログを収集します。
Logging AgentはOSSツールのFluent Bitがベースとなっており、Fluent Bitのログフィルタリング機能が利用できます。
具体的には、次の2つの方法があります。
-
Exclude Pathでログファイルを指定して除外
-
フィルタ機能でログファイル内の内容をもとにログを除外
2の方法は複数のアプローチを提供しており、ユーザーが設定した詳細な条件に基づいてログのフィルタリングができますが、公式ドキュメントにIBMサポートの範囲外であることが明記されている点に注意が必要です。
本番環境で利用する場合は十分に検証した上でご利用ください。
一部機能の公式サポートについて:Fluent Bitプラグイン対応 | IBM Cloud 資料(「## プラグインは利用可能だが、直接はサポートされていない」項参照)
ちなみにFluent BitはCloud Native Computing Foundation(CNCF)のGraduated Projectとなっており、コンテナログ収集ツールの中では有名です。AWSのコンテナログ転送でも利用されています。
フィルタリングの方法
フィルタリングの設定方法は以下の2パターンの方法があります。
-
Logging AgentのHelmインストール時にlogs-values.yamlで設定
-
インストール後にConfigMapを編集して設定
どちらの方法も実態としてはFluent Bitの設定ファイルで設定します。
今回はHelmで検証した内容を解説します。
検証環境
今回の説明する内容の検証環境は以下の通りです。
-
Red Hat OpenShift on IBM Cloud (Infrastructure: VPC)
-
IBM Cloud Logs インスタンス
-
対象のOpenShiftクラスターにOCコマンドが実行可能な踏み台サーバ
- 上記サーバにHelmをインストール
※本記事ではHelmインストールについては割愛します。
手順1. Exclude Pathでログファイルを指定して除外
手順フローは以下の通り、
ワーカーノードにoc debugで接続
↓
除外したいログファイルのパスを確認
↓
logs-values.yamlにExclude Pathを設定
デフォルトでは、ワーカーノードの/var/log/containers配下の.logファイルがExclude Pathの対象となります。
logs-values.yamlの設定前に/var/log/containers配下の不要なコンテナログの名前を確認する必要があります。
確認した内容はlogs-values.yamlに追記します。
Exclude Pathの設定例は以下の通りです。
metadata:
name: "logs-agent"
image:
version: "1.8.0" # required
clusterName: "<OpenShift Cluster Name>"
env:
ingestionHost: "<Cloud Logs Instance Ingress Endpoint>"
ingestionPort: "443" #setting using port number
iamMode: "IAMAPIKey" #setting Authentication mode
scc:
# true here enables creation of Security Context Constraints in Openshift
create: true
# comma separated list, for example “/var/log/abc/*.log,/var/log/xyz/*.log”
excludeLogSourcePaths: "/var/log/containers/aaa*.log,/var/log/containers/bbb*.log"
上記はyamlの最終行にExclude Pathを設定した例となります。ワイルドカードを利用してファイル名がaaaとbbbで始まるコンテナログファイルをすべて除外対象としています。
helmインストール後に設定の反映を確認したい場合はlogs-agentという名前のConfigMapのfluent-bit.yamlの内容を確認します。
手順2. フィルタ機能でログファイル内の内容をもとにログを除外
手順フローは以下の通り、
Cloud LogsのGUIにて除外したいログの内容や表示形式を確認。
↓
logs-values.yamlにフィルタリングを設定
Fluent Bitのフィルタ機能は環境やケースに応じて使い分けが可能です。
今回はシンプルな条件で除外できるGrepをご紹介します。
GrepはPodやNamespace、ログレベルなど特定のフィールド値を指定して、ログが除外できます。
例えばNamespace単位でログを除外したい場合は下記のように記述します。
metadata:
name: ""logs-agent""
image:
version: ""1.8.0"" # required
clusterName: "<OpenShift Cluster Name>"
env:
ingestionHost: "<Cloud Logs Instance Ingress Endpoint>"
ingestionPort: "443" #setting using port number
iamMode: "IAMAPIKey" #setting Authentication mode
scc:
# true here enables creation of Security Context Constraints in Openshift
create: true
additionalFilters:
- name: grep
match: "kube.*"
exclude: "$kubernetes['namespace_name'] ^prod$"
この例ではNamespaceがprodのログを除外します。
設定の詳細は下記の通りです。
nameは利用するフィルタを指定します。
matchはタグを指定します。フィルタ機能はここで定義したタグにマッチしたレコードに適用されます。上記例はkube.で始まるタグにフィルタを適用するという意味です。
excludeは指定したフィールド値に一致するログを除外する設定です。ここではkubernetes.namespace_name=prodのログを除外しています。
手順1と同様にhelmインストール後に設定の反映を確認したい場合はlogs-agentという名前のConfigMapのfluent-bit.yamlの内容を確認します。
また、Grepでは、andやorなど簡単な条件を指定したログ除外も可能です。
additionalFilters:
- name: grep
match: "*"
logical_op: AND
exclude:
- "$kubernetes['container_name'] ^app$"
- "log Information"
上記例ではコンテナ名appのログのうち、Informationという文字列を含むログを除外します。不要な定型ログを減らしたい場合に有効です。
手順フローにも書いていますが、ログの内容やタグはコンテナによってさまざまなため、除外前にログの出力形式や情報を確認することをお勧めします。
まとめ
IBM Cloud LogsのLogging Agentを利用してログ転送前にフィルタリングする方法を紹介しました。
Fluent Bitベースのフィルタ機能ではほかにも、ログ内容の書き換えや複雑な条件によるログの抽出などもでき、きめ細かなログ管理が可能です。
また、本記事では触れませんでしたがIBM Cloud Logs側でもTCO Optimizerやブロック・ルールを利用することでログの除外が可能です。
こちらも機会があれば記事にしたいですね。
それでは、また!
参考文献
-
Logging Agentについて:ログエージェントについて | IBM Cloud 資料
-
Logging Agentのフィルタリングについて:コスト管理 | IBM Cloud 資料(「ロギング・エージェントを 通じて送信されたデータをフィルタリングし、再構築する。 」項参照)
-
Fluent Bitについて:What is Fluent Bit? | Fluent Bit: Official Manual
-
Fluent BitのGrepについて:Grep | Fluent Bit: Official Manual
-
Exclude Pathを利用したログファイルの除外:収集するログファイルの設定 | IBM Cloud 資料
