2026年6月19日

2026年6月19日

WordPressのセキュリティ監査ログを設定する方法|WP Activity Logの初期設定と見方

監査ログは、サイトで「誰が・いつ・どこから・何をしたか」を記録したものです。不正ログインや改ざんが疑われるときに、いつ何が変わったかをさかのぼって確かめる手がかりになります。WordPress 本体には監査ログの機能が無いため、プラグインで記録します。

この記事では、監査ログのプラグインとして広く使われている WP Activity Log(旧名 WP Security Audit Log、公式ディレクトリのスラッグは wp-security-audit-log)の設定方法を説明します。プラグインの情報は 2026年11月時点のものです。画面の表記は英語のものを示しています。

WP Activity Log で記録できること

無料版でも、有料版と同じ範囲のイベントが記録されます。公式の説明では、主に次のようなものが対象です。

  • ログイン・ログアウト・ログイン失敗、セッションの終了
  • 投稿・固定ページ・カスタム投稿タイプ、カテゴリー・タグ、ウィジェット・メニューの変更
  • ユーザーの作成・削除、プロフィール(パスワード・メールアドレス・権限グループ)の変更
  • WordPress 本体の更新、設定の変更
  • プラグイン・テーマのインストール・有効化・更新・削除
  • プラグインによるデータベースのテーブルの変更、ファイルの追加・変更・削除

有料版で加わるのは、メールなどでの通知、レポートと書き出し、外部データベースへの保存、外部サービスへのログ転送、ログイン中のユーザーとセッションの管理、詳細な検索の絞り込みなどです。記録する範囲ではなく、通知や分析の機能が有料になっています。

ほかの選択肢として、変更履歴を読みやすく表示する Simple History もあります。違いと使い方は WordPressでユーザーのアクティビティログを記録する方法 で説明しています。

手順1: プラグインを入れる

管理画面の「プラグイン」→「新規プラグインを追加」で「WP Activity Log」を検索し、インストールして有効化します。WP-CLI が使える場合は次のコマンドでも同じです。

wp plugin install wp-security-audit-log --activate

2026年11月時点の WP Activity Log(5.7系)は、WordPress 5.5 以上・PHP 7.4 以上が必要です。記録は有効化した後の操作から始まります。

手順2: 初期設定ウィザードを進める

有効化すると、初期設定のウィザードが表示されます(診断データの送信を許可するかどうかも聞かれます。不要なら送信しない方を選びます)。ウィザードでは次の項目を選びます。

項目 内容
ログの詳しさ(log detail level) 「Comprehensive」(詳しく記録)か「Basic」(主要なものだけ)。迷ったら Comprehensive を選び、後で不要なイベントを外す
ログインページ wp-admin のログイン画面以外のログインページ(プラグインが作ったログイン画面など)も監視するか
ユーザー登録 訪問者がユーザー登録できるサイトの場合、登録を記録するか
保存期間(data retention) ログを残す期間。初期設定は3か月で、より長い期間や無期限も選べる

ウィザードで選んだ内容は、後から設定画面(Settings)で変えられます。

手順3: ログを見る

左メニューに「WP Activity Log」が追加されます。「WP Activity Log」→「Log viewer」を開くと、記録されたイベントが新しい順に一覧で表示されます。各行には、日時、ユーザー、IP アドレス、イベント ID、内容が表示されます。

イベント ID は、記録の種類を表す番号です。調査のときによく見るものを挙げます(プラグインのソースコードで確認した ID と名称)。

イベント ID 内容
1000 ログインした
1001 ログアウトした
1002 ログインに失敗した(パスワードの誤り)
1003 存在しないユーザー名でログインに失敗した
2001 投稿を公開した
2002 投稿を変更した
2012 投稿をゴミ箱に移動した
4000 新しいユーザーが作成された
4002 他のユーザーによって権限グループが変更された
5000 プラグインをインストールした
5001 プラグインを有効化した
5002 プラグインを無効化した
6004 WordPress 本体が更新された

不正アクセスを疑うときは、次の順に確認すると状況をつかみやすくなります。

  1. 知らない IP アドレスからの 1000(ログイン成功)が無いか
  2. 同じ IP アドレスから 1002・1003(ログイン失敗)が大量に続いていないか
  3. 4000(ユーザー作成)や 4002(権限グループの変更)で、身に覚えのない管理者が作られていないか
  4. 5000・5001(プラグインのインストール・有効化)で、知らないプラグインが入っていないか

手順4: 記録するイベントを選ぶ

「WP Activity Log」→「Enable/Disable Events」に、記録できるイベントの一覧があります。カテゴリーごとに分かれていて、チェックを外して保存すると、そのイベントは記録されなくなります。Log viewer でイベント ID にマウスを重ねたときに出るボタンからも、そのイベントを止められます。

記録を減らすとデータベースの増え方は抑えられますが、ログインやユーザー、プラグインに関するイベントは、調査に必要になるので残しておきます。

手順5: データベースから直接調べる

ログは、WordPress と同じデータベースの wp_wsal_occurrences(イベント本体)と wp_wsal_metadata(イベントごとの詳細)に保存されます(接頭辞が wp_ の場合)。管理画面に入れないときや、まとめて集計したいときは、WP-CLI や phpMyAdmin で直接読めます。日時の列 created_on は UNIX 時刻(秒)で入っています。

# ログイン失敗(1002・1003)の新しい20件
wp db query "SELECT id, alert_id, FROM_UNIXTIME(created_on) AS created, username, client_ip FROM wp_wsal_occurrences WHERE alert_id IN (1002, 1003) ORDER BY created_on DESC LIMIT 20;"

# 直近1日でログイン失敗が多い IP アドレス
wp db query "SELECT client_ip, COUNT(*) AS cnt FROM wp_wsal_occurrences WHERE alert_id IN (1002, 1003) AND created_on > UNIX_TIMESTAMP() - 86400 GROUP BY client_ip ORDER BY cnt DESC LIMIT 10;"

FROM_UNIXTIME() はデータベースのタイムゾーン設定に従って日時を表示します。読むだけの SELECT にとどめ、ログのテーブルを直接書き換えないでください。

運用での注意

  • 保存期間を決める。 長く残すほど調査に使える範囲は広がりますが、データベースは大きくなります。サイトの規模とバックアップの容量を見て決めます。
  • ログは同じデータベースにある。 管理者権限を奪われると、ログも消されたり書き換えられたりするおそれがあります。重要なサイトでは、Web サーバーのアクセスログを別の場所に保管するか、外部への保存・転送(有料版の機能)を検討します。
  • 個人情報の扱い。 ログには IP アドレスやユーザー名が含まれます。記録の目的と保存期間を決め、プライバシーポリシーに記載します。
  • ログを見る習慣をつける。 記録していても、見なければ異常に気づけません。週に一度など、Log viewer でログイン失敗やユーザー・プラグインの変更を確認する日を決めておきます。
  • ログインの守りも固める。 ログイン失敗が多い場合は、試行回数の制限や二段階認証を入れます。方法は ブルートフォース攻撃への対策 を参考にしてください。

まとめ

  • WP Activity Log は、無料版でもログイン・投稿・ユーザー・プラグイン・設定などの変更を記録できます。通知・レポート・外部保存は有料版の機能です。
  • 有効化後のウィザードで、ログの詳しさと保存期間(初期設定は3か月)を選びます。
  • ログは「Log viewer」で確認し、イベント ID(1000 ログイン、1002・1003 ログイン失敗、4000 ユーザー作成など)を手がかりに調べます。
  • 記録するイベントは「Enable/Disable Events」で選べます。
  • ログは wp_wsal_occurrences テーブルにあり、WP-CLI の wp db query で集計できます。

お気軽にご相談ください

お見積りへ お問い合わせへ
▲