10日で覚えるSplunkDay 1: Splunkの世界へようこそ

Day 1: Splunkの世界へようこそ

今日学ぶこと

  • Splunkとは何か
  • Splunkのアーキテクチャ
  • インストールとセットアップ
  • Web UIの基本操作
  • 最初のサーチ

Splunkとは

Splunkはマシンデータ(ログ)を収集・インデックス・検索・分析・可視化するプラットフォームです。サーバーログ、アプリケーションログ、ネットワークデータ、セキュリティイベントなど、あらゆるマシンデータを扱えます。

flowchart LR
    subgraph Sources["データソース"]
        S1["Webサーバー<br>ログ"]
        S2["アプリケーション<br>ログ"]
        S3["OS<br>ログ"]
        S4["ネットワーク<br>データ"]
    end
    subgraph Splunk["Splunk"]
        Collect["収集"]
        Index["インデックス"]
        Search["検索・分析"]
        Visualize["可視化"]
    end
    Sources --> Collect --> Index --> Search --> Visualize
    style Collect fill:#3b82f6,color:#fff
    style Index fill:#8b5cf6,color:#fff
    style Search fill:#22c55e,color:#fff
    style Visualize fill:#f59e0b,color:#fff

Splunkの主な用途

分野 用途
ITオペレーション サーバー監視、障害分析、パフォーマンス管理
セキュリティ SIEM、脅威検知、インシデント対応
ビジネス分析 ログベースのKPI分析、ユーザー行動分析
DevOps CI/CDパイプライン監視、デプロイ追跡
IoT センサーデータの収集・分析

Splunkのアーキテクチャ

Splunkは3つの主要コンポーネントで構成されます。

flowchart TB
    subgraph Tier["Splunkの3層構造"]
        FW["フォワーダー<br>データ収集・転送"]
        IDX["インデクサー<br>データ保存・インデックス"]
        SH["サーチヘッド<br>検索・可視化"]
    end
    FW -->|"データ転送"| IDX
    SH -->|"検索リクエスト"| IDX
    IDX -->|"検索結果"| SH
    style FW fill:#3b82f6,color:#fff
    style IDX fill:#22c55e,color:#fff
    style SH fill:#f59e0b,color:#fff
コンポーネント 役割 説明
フォワーダー データ収集 ログを収集してインデクサーに転送
インデクサー データ保存 データをインデックスに格納・検索可能にする
サーチヘッド 検索・表示 ユーザーインターフェースと検索エンジン

フォワーダーの種類

種類 説明 用途
Universal Forwarder (UF) 軽量、データ転送のみ 本番サーバーへの導入
Heavy Forwarder (HF) フル機能、データ加工可能 データのフィルタリング・変換

インストール

Splunk Enterprise(無料トライアル)

Splunk Enterprise は500MB/日のデータ取り込みまで無料で使えます。

# macOS
brew install --cask splunk

# Linux(tar.gz)
wget -O splunk.tgz "https://download.splunk.com/products/splunk/releases/latest/linux/splunk-latest-Linux-x86_64.tgz"
tar xvzf splunk.tgz -C /opt

# 初回起動
/opt/splunk/bin/splunk start --accept-license
# 管理者ユーザー名とパスワードを設定

Docker で起動

docker run -d \
  --name splunk \
  -p 8000:8000 \
  -p 8089:8089 \
  -e SPLUNK_START_ARGS="--accept-license" \
  -e SPLUNK_PASSWORD="YourPassword123!" \
  splunk/splunk:latest

おすすめ: 学習目的ならDockerが最も手軽です。

アクセス

ブラウザで http://localhost:8000 にアクセスし、設定したユーザー名・パスワードでログインします。


Web UIの基本

flowchart TB
    subgraph UI["Splunk Web UI"]
        SearchBar["サーチバー<br>SPLクエリを入力"]
        TimeRange["時間範囲<br>検索対象期間"]
        Results["検索結果<br>イベント一覧"]
        Sidebar["フィールドサイドバー<br>フィールド一覧"]
    end
    SearchBar --> Results
    TimeRange --> Results
    Sidebar --> Results
    style SearchBar fill:#3b82f6,color:#fff
    style TimeRange fill:#f59e0b,color:#fff
    style Results fill:#22c55e,color:#fff
    style Sidebar fill:#8b5cf6,color:#fff

主要画面

画面 パス 説明
サーチ Search & Reporting SPLクエリを実行
ダッシュボード Dashboards 可視化パネルの一覧
データ入力 Settings > Data inputs データソースの設定
インデックス Settings > Indexes インデックスの管理

最初のデータ取り込み

サンプルデータの追加

  1. Settings > Add Data を選択
  2. Upload を選択
  3. テスト用のログファイルをアップロード

テスト用ログファイルの作成

2026-01-30 10:00:01 INFO  [web-server] GET /index.html 200 0.023s user=alice ip=192.168.1.10
2026-01-30 10:00:05 WARN  [web-server] GET /api/users 429 0.150s user=bob ip=192.168.1.20
2026-01-30 10:00:10 ERROR [web-server] POST /api/login 500 1.200s user=charlie ip=192.168.1.30
2026-01-30 10:00:15 INFO  [web-server] GET /dashboard 200 0.045s user=alice ip=192.168.1.10
2026-01-30 10:00:20 INFO  [web-server] GET /api/data 200 0.089s user=dave ip=192.168.1.40
2026-01-30 10:00:25 ERROR [web-server] GET /api/reports 503 2.500s user=eve ip=192.168.1.50
2026-01-30 10:00:30 INFO  [web-server] POST /api/upload 201 0.500s user=alice ip=192.168.1.10
2026-01-30 10:00:35 WARN  [web-server] GET /api/search 408 5.000s user=bob ip=192.168.1.20

このファイルを webserver.log として保存し、Splunkにアップロードしましょう。


最初のサーチ

基本的なサーチ

index=main

すべてのイベントを表示します。

キーワード検索

index=main ERROR

「ERROR」を含むイベントだけを表示します。

時間範囲の指定

サーチバーの横にあるタイムピッカーで時間範囲を設定できます。

範囲 説明
Last 15 minutes 過去15分
Last 60 minutes 過去1時間
Last 24 hours 過去24時間
Last 7 days 過去7日間
All time 全期間

SPLの基本構文

index=main sourcetype=access_log status=500
要素 説明
index=main 検索するインデックス
sourcetype=access_log データの種類
status=500 フィールドの値で絞り込み

Splunkの主要概念

概念 説明
イベント 1件のログエントリ 1行のアクセスログ
インデックス データの保存先 main, security
ソースタイプ データの形式 syslog, access_combined
ソース データの出処 /var/log/messages
ホスト データの送信元 web-server-01
フィールド イベント内のキー=値 status=200, user=alice
flowchart TB
    Event["イベント<br>1件のログレコード"]
    subgraph Metadata["メタデータ"]
        Index["index<br>保存先"]
        Source["source<br>ファイルパス"]
        Sourcetype["sourcetype<br>データ形式"]
        Host["host<br>送信元ホスト"]
    end
    subgraph Fields["フィールド"]
        F1["status=200"]
        F2["user=alice"]
        F3["ip=192.168.1.10"]
    end
    Event --> Metadata
    Event --> Fields
    style Event fill:#3b82f6,color:#fff
    style Metadata fill:#22c55e,color:#fff
    style Fields fill:#f59e0b,color:#fff

SPL(Search Processing Language)入門

SPLはSplunkのクエリ言語です。**パイプ(|)**でコマンドをつなげてデータを処理します。

index=main ERROR
| stats count by source
| sort -count
flowchart LR
    Search["検索<br>index=main ERROR"]
    Stats["集計<br>stats count by source"]
    Sort["ソート<br>sort -count"]
    Search -->|"|"| Stats -->|"|"| Sort
    style Search fill:#3b82f6,color:#fff
    style Stats fill:#22c55e,color:#fff
    style Sort fill:#f59e0b,color:#fff

ポイント: SPLはUNIXのパイプ(|)と同じ考え方です。前のコマンドの出力が次のコマンドの入力になります。


まとめ

概念 説明
Splunk マシンデータの収集・検索・分析プラットフォーム
フォワーダー データを収集・転送
インデクサー データを保存・インデックス
サーチヘッド 検索・可視化のUI
SPL Splunkのクエリ言語
インデックス データの保存先
ソースタイプ データの形式を定義

重要ポイント

  1. Splunkはマシンデータを扱うプラットフォーム
  2. 3層構造(フォワーダー→インデクサー→サーチヘッド)
  3. SPLはパイプでコマンドをつなげる
  4. 無料版は500MB/日まで利用可能

練習問題

問題1: 基本

Splunkをインストールし、サンプルログファイルをアップロードして、全イベントを検索してみましょう。

問題2: 応用

キーワード検索で「ERROR」「WARN」「INFO」それぞれのイベント数を目視で確認してみましょう。

チャレンジ問題

Splunkの公式チュートリアルデータ(tutorialdata.zip)をダウンロードし、取り込んでみましょう。


参考リンク


次回予告: Day 2では「データの取り込み」について学びます。さまざまなデータソースからSplunkにデータを送る方法をマスターしましょう。