2026年5月21日

2026年5月21日

WordPressのエラーをSlackに自動通知する方法

はじめに

ウェブサイト管理者にとって、重要なエラーや障害を素早く把握し対処することが重要です。本記事では、WordPressサイトで発生した問題やエラー情報を、すぐにSlackチャネルに通知する方法について解説します。

環境

  • WordPressインストール済みのサーバー
  • Slackアカウントとワークスペース

症状・背景

このテーマが必要になる主な場面:

  • ユーザーフィードバックで問題が報告された場合
  • サイト更新後にエラー画面(白い画面)が出た場合
  • エラーログを定期的に監視したい場合
  • 多数のサイトや異なる環境での監視が必要な場合

手順・設定方法

ステップ1: Slackアプリの作成とWebhook URL取得

# Slackワークスペースで新しいAppを作成し、incoming webhookを有効化
curl -X POST -H 'Content-type: application/json' --data '{"name":"wordpress_error"}' https://slack.com/api/apps.permissions.groups.request
# WebhookのURLをコピーして保管

ステップ2: WordPressサイトにWebhook URLを設定する

# ワークスペースで取得したWebhook URLを使用し、wp-config.phpに追加
nano /path/to/wordpress/wp-config.php
// アプリケーションのセキュリティを保つため、以下のようにURLをハッシュ化して保存
define('WP_SLACK_WEBHOOK_URL', 'https://hooks.slack.com/services/YOUR_TOKEN');

ステップ3: WordPressプラグイン「WP Mail SMTP」のインストールと設定

# パッケージマネージャーを使用してWP Mail SMTPをインストール
wp plugin install wp-mail-smtp --activate
# Slackにログ通知を送信するためのSMTP設定を有効化
nano /path/to/wordpress/wp-content/plugins/wp-mail-smtp/settings.php
// 'mail_smtp_from'と'mail_smtp_to'の設定を適切なメールアドレスに変更

ステップ4: エラーロギングと通知スクリプト作成

# /path/to/wordpress/wp-content/mu-plugins/error-logger.php という名前でスクリプトを作成
nano /path/to/wordpress/wp-content/mu-plugins/error-logger.php
// スクリプト内で、WPのエラーログを取得し、Slackに通知する関数を実装
function send_error_to_slack( $error_message ) {
    // WP_SLACK_WEBHOOK_URLからWebhook URLを読み込み
    $webhook_url = get_option('wp_slack_webhook_url');
    // JSONエンコードしてPOSTリクエストを送信
    wp_remote_post($webhook_url, array(
        'body' => json_encode(array(
            'text' => sprintf('<@username> %s', $error_message),
            'username' => 'WordPress Error Logger',
            'icon_emoji' => ':warning:'
        )),
        'headers' => array('Content-Type' => 'application/json')
    ));
}
// フィルターを追加して、ログにエラーが記録されたときに通知
add_action( 'shutdown', function(){
    if (is_wp_error($wp_error)) {
        send_error_to_slack($wp_error->get_error_message());
    }
});

注意事項

  • <実践的な注意点1>: パブリックのWebhook URLは使用しないでください。セキュアな方法を使用して、URLを適切に管理・保管してください。
  • <実践的な注意点2>: ローカル環境と本番環境では異なる設定ファイルを使用することを忘れないでください。
  • <セキュリティ上の注意>: Slackへ通知するための情報を不正に利用されないよう、アクセス制御や認証プロセスを導入することを検討してください。
  • <パフォーマンス/運用上の注意>: 送信されるメッセージが頻繁に増える場合、チャンネルのアラート設定や通知フィルタリングを適切に行うことが重要です。

まとめ

1. SlackアプリとWebhook URL: エラー通知のために必要な情報を取得します。

2. WP Mail SMTPプラグインの設定: メール通知機能を有効化し、SMTP設定を行います。

3. エラーロギングスクリプト作成: WordPressサイトで発生した問題について詳細なログをSlackに送信するためのスクリプトを作ります。

4. セキュリティとパフォーマンス: プロジェクト全体を通して、適切なアクセス制御やアラート管理を行います。

関連記事:

お気軽にご相談ください

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