Filebeat、Easysearch、Consoleを活用した統合ログ管理プラットフォームの構築

現代のシステム運用において、ログの一元管理とリアルタイム分析は欠かせません。本記事では、軽量なデータ収集ツール、分散検索エンジン、そして可視化ツールを組み合わせ、効率的にログを収集・蓄積・分析する環境を構築する手順を解説します。

システム構成

本構成では、以下の3つのコンポーネントを使用します。

  • Filebeat: サーバー上のログファイルを軽量に転送するデータシッパー。
  • Easysearch: データの保存、検索、集計を行う分散検索エンジン。
  • Console: データの検索、可視化、ダッシュボード作成を行うWebインターフェース。

構築手順

1. 環境の準備

最初にデータの保存先となるEasysearchと、可視化ツールであるConsoleをデプロイします。Easysearchの設定ファイル(easysearch.yml)を開き、Elasticsearch互換のAPIを有効化する設定項目のコメントアウトを解除してください。

2. Filebeatのインストールと設定

Filebeat(推奨バージョン7.10.2)をダウンロードし、設定ファイル(filebeat.yml)を編集して、Easysearchへのデータ転送設定を行います。以下は設定例です。

setup.ilm.enabled: false
setup.template.name: "infra-template"
setup.template.pattern: "sys-logs-*"
setup.template.fields: "${path.config}/fields.yml"

output.elasticsearch:
  hosts: ["https://192.168.1.100:9200"]
  protocol: "https"
  ssl.verification_mode: none
  username: "admin"
  password: "secure_admin_password"
  index: "sys-logs"

3. モジュールの有効化とパイプラインの登録

OSのシステムログを収集するために、systemモジュールを有効にし、Easysearch側でデータ処理を行うためのパイプラインを登録します。

./filebeat modules enable system
./filebeat setup --pipelines --modules system

4. インデックステンプレートの作成とストレージ最適化

ディスク容量を効率的に活用するため、ZSTD圧縮とSOURCE_REUSE機能を利用したインデックステンプレートを作成します。また、文字列フィールドは自動的にkeyword型としてマッピングし、集計効率を向上させます。

PUT _template/sys_logs_template
{
  "order": 10,
  "index_patterns": [
    "sys-logs*"
  ],
  "settings": {
    "index": {
      "codec": "ZSTD",
      "source_reuse": true,
      "number_of_shards": "1",
      "lifecycle": {
        "name": "logs-30days-policy",
        "rollover_alias": "sys-logs"
      },
      "translog": {
        "durability": "async"
      }
    }
  },
  "mappings": {
    "dynamic_templates": [
      {
        "strings_as_keywords": {
          "match_mapping_type": "string",
          "mapping": {
            "type": "keyword",
            "ignore_above": 256
          }
        }
      }
    ]
  }
}

PUT sys-logs-000001
{
  "aliases": {
    "sys-logs": {
      "is_write_index": true
    }
  }
}

5. Filebeatの起動

設定が完了したら、Filebeatをバックグラウンドプロセスとして起動し、ログの収集を開始します。

./filebeat -e -c filebeat.yml > /dev/null 2>&1 &

6. ログの確認と分析

Consoleにアクセスし、データが正しく格納されていることを確認します。Discover機能を使用してログを検索したり、ダッシュボードを作成してログ傾向の可視化を行ったりします。

7月22日 03:28 投稿