AI

オープンソースSIEM比較:Wazuh vs OpenSearch vs Graylog でセキュリティ監視をセルフホストする

オープンソースラボ編集部2026年6月13日

オープンソースSIEM比較:Wazuh vs OpenSearch(旧ELK)vs Graylog でセキュリティ監視をセルフホストする

SIEM(Security Information and Event Management)は、サーバー・アプリケーション・ネットワーク機器のログを一元収集してセキュリティインシデントを検知するシステムです。Wazuh・OpenSearch Security Analytics・Graylogはオープンソースで構築できるSIEMプラットフォームです。

SIEMが検知する脅威

  • ブルートフォース攻撃: 短時間でのSSHログイン失敗が多数発生
  • 特権エスカレーション: sudoの不正使用・rootになろうとする試み
  • ファイル改ざん検知(FIM): 重要なシステムファイルが変更された
  • コンプライアンス違反: PCI DSS・HIPAA・SOC 2要件の違反
  • 異常なネットワーク接続: 夜中に外部IPへの大量データ送信
  • マルウェア検知: 既知のマルウェアシグネチャとのマッチ

主要ツールの概要

Wazuh

OpenSourceECSのフォークから始まった統合セキュリティプラットフォームです。SIEM・XDR(Extended Detection and Response)・コンプライアンス管理を一体で提供します。エージェントが各サーバーにインストールされ、ログ・FIM・脆弱性スキャンをリアルタイムで送信します。

# Wazuhサーバーをdocker-composeで起動
git clone https://github.com/wazuh/wazuh-docker.git
cd wazuh-docker/single-node
docker compose -f generate-indexer-certs.yml run --rm generator
docker compose up -d

# UIは https://localhost でアクセス(admin/SecretPassword)

# Linuxエージェントのインストール(監視対象サーバーで実行)
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | gpg --dearmor -o /usr/share/keyrings/wazuh.gpg
echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main" | tee /etc/apt/sources.list.d/wazuh.list
apt-get update && apt-get install -y wazuh-agent
WAZUH_MANAGER="your-wazuh-server-ip" systemctl start wazuh-agent
<!-- /var/ossec/etc/ossec.conf - Wazuhエージェント設定 -->
<ossec_config>
  <client>
    <server>
      <address>wazuh-server-ip</address>
      <port>1514</port>
      <protocol>tcp</protocol>
    </server>
  </client>

  <!-- ファイル整合性監視(FIM) -->
  <syscheck>
    <frequency>43200</frequency>
    <directories>/etc,/usr/bin,/usr/sbin</directories>
    <directories>/bin,/sbin,/boot</directories>
    <directories realtime="yes">/var/www/html</directories>
  </syscheck>

  <!-- ログ収集 -->
  <localfile>
    <log_format>syslog</log_format>
    <location>/var/log/auth.log</location>
  </localfile>
  <localfile>
    <log_format>syslog</log_format>
    <location>/var/log/nginx/access.log</location>
  </localfile>
</ossec_config>
# カスタムアラートルール(/var/ossec/etc/rules/local_rules.xml)
# Wazuh XMLルール形式でカスタム検知ルールを定義
# (WazuhはXML設定ファイルを使用します)

OpenSearch Security Analytics(旧AWS ELK Stack)

OpenSearchはElasticsearchをAWSがAGPL v3でフォークしたプロジェクトです。Security Analytics機能でSIEM機能を実現できます。

# docker-compose.yml でOpenSearchをセルフホスト
services:
  opensearch-node:
    image: opensearchproject/opensearch:2.13.0
    environment:
      - discovery.type=single-node
      - OPENSEARCH_INITIAL_ADMIN_PASSWORD=StrongPass123!
      - plugins.security.ssl.transport.pemcert_filepath=esnode.pem
    ports:
      - "9200:9200"
    volumes:
      - opensearch-data:/usr/share/opensearch/data

  opensearch-dashboards:
    image: opensearchproject/opensearch-dashboards:2.13.0
    environment:
      OPENSEARCH_HOSTS: '["https://opensearch-node:9200"]'
    ports:
      - "5601:5601"
    depends_on:
      - opensearch-node
# OpenSearch Python SDKでログを送信
from opensearchpy import OpenSearch

client = OpenSearch(
    hosts=[{"host": "localhost", "port": 9200}],
    http_auth=("admin", "StrongPass123!"),
    use_ssl=True,
    verify_certs=False,
)

# セキュリティイベントをインデックスに投入
event = {
    "timestamp": "2026-06-14T10:30:00Z",
    "host": "web-server-01",
    "source_ip": "192.168.1.100",
    "event_type": "authentication_failure",
    "username": "admin",
    "count": 15,
    "severity": "high",
}
client.index(index="security-events", body=event)

Graylog

JavaベースのSIEMプラットフォームです。Elasticsearchをバックエンドに使い、リアルタイムのログ検索・ストリーム・アラート・ダッシュボードを提供します。Syslog・GELF・CEF等多様な形式でログを受信できます。

# Graylogをdocker-composeで起動
version: '3'
services:
  mongodb:
    image: mongo:6.0

  opensearch:
    image: opensearchproject/opensearch:2.13.0
    environment:
      - discovery.type=single-node
      - OPENSEARCH_INITIAL_ADMIN_PASSWORD=StrongPass123!
      - plugins.security.disabled=true

  graylog:
    image: graylog/graylog:5.2
    environment:
      GRAYLOG_PASSWORD_SECRET: $(head -n 1 /dev/urandom | sha256sum | cut -d" " -f1)
      GRAYLOG_ROOT_PASSWORD_SHA2: 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
      GRAYLOG_HTTP_EXTERNAL_URI: http://localhost:9000/
    ports:
      - "9000:9000"
      - "1514:1514/udp"  # Syslog UDP
      - "12201:12201/udp"  # GELF UDP

機能比較表

比較項目WazuhOpenSearch SIEMGraylog
エージェントベース監視
ファイル整合性監視(FIM)
脆弱性スキャン
ログ収集・集約
リアルタイムアラート
コンプライアンス(PCI/HIPAA)⚠️
MITRE ATT&CK対応
検索・クエリ言語✅ PPL
ダッシュボード
スケーラビリティ★★★☆☆★★★★★★★★★☆
設定の複雑さ
ライセンスGPL 2.0Apache 2.0SSPL
GitHub Stars10k+9k+7k+

Wazuhでのブルートフォース攻撃検知例

# Wazuhのデフォルトルールでは以下を自動検知:
# - SSHログイン失敗(ルールID: 5710)
# - 複数回のSSH失敗(ルールID: 5712)
# - ブルートフォース攻撃(ルールID: 5763)

# アラート例(Wazuhダッシュボードで確認可能):
# 2026-06-14T02:15:30 | Level 10 | Rule 5763
# sshd: Possible breakin attempt! from 198.51.100.10
# Authentication failure for user admin 15 times in 30 seconds

セキュリティ監視ツールはセキュリティカテゴリ(/categories/security)で一覧でき、DevOps・インフラ監視ツールはDevOpsカテゴリ(/categories/devops)でも探せます。

FAQ

Q. WazuhはSplunkの代替になりますか?

A. 機能的にはかなり近いです。Wazuhはエージェントベースのリアルタイム監視・ルールベースのアラート・コンプライアンスレポートをオープンソースで提供します。Splunkと比べると: ログの検索クエリの柔軟性(SPL vs Luceneベース)・機械学習による異常検知・サポートの手厚さ・エンタープライズ向け機能でSplunkが優れますが、費用は劇的に下がります。10TB/日以下の中小規模ならWazuhで十分なケースが多いです。

Q. Graylogのライセンス(SSPL)は商用利用できますか?

A. SSPL(Server Side Public License)は社内利用は無料ですが、Graylogをサービスとして第三者に提供する場合はソースコード公開義務があります。通常の社内SIEM用途なら問題ありません。Graylog Openは無料で、商用サポートが必要な場合はGraylog Enterprise版を購入します。

Q. SIEMの「偽陽性」(False Positive)はどう減らしますか?

A. 偽陽性が多いとアラート疲れ(alert fatigue)を起こし、本物のインシデントを見逃すリスクが高まります。対策: 環境固有の正常な動作をホワイトリスト登録・アラートのしきい値を調整(1回のSSH失敗ではなく10回以上で通知)・優先度の低いアラートはSLACKに送りPagerDutyには高優先度のみ・機械学習ベースのベースライン学習(Elasticのアノマリー検出等)。

Q. クラウド環境(AWS・GCP)でもWazuhは使えますか?

A. 使えます。クラウドのEC2/GCEインスタンスにWazuhエージェントをインストールし、CloudTrail・VPCフローログ・S3バケットのログをWazuhに転送する構成が一般的です。AWSの場合はWazuhのAWSモジュールを使うとCloudTrail・GuardDuty・WAFのログを自動的に取り込めます。

まとめ

ユースケース推奨ツール
エンドポイント監視・FIM・脆弱性スキャンWazuh
大規模ログ検索・分析OpenSearch SIEM
リアルタイムログ監視・ストリームGraylog
コンプライアンス(PCI DSS・HIPAA)Wazuh

関連外部リソース

他の記事も読む

Let's Build Together

OSS導入、自社だけで悩まない。

ツール選定から構築・運用・AI活用まで、オープンソースラボ運営元のClasslessが伴走します。初回のご相談は無料です。