WordPressやSymfonyのTipsを中心にアニメや日常の出来事について語ります。
メニュー

Symfony2 MonologのSlackHandlerを使ってSlackにエラー通知を送るBotを設定する

この記事は約1分54秒で読めます

Symfony2 MonologからSlackにメッセージを送る
ゆっきー
ども、カフェブロガーの悠木です。 お気に入りのカフェはドトールコーヒーです。 14時からの限定スイーツ「シューシャポー」が大好きです。

本番環境でのエラーログの通知ですが、
メールよりSlackで通知できた方がすぐに気付けるので良いなと思って設定しました。

動作環境

Mac環境

  • Mac: OS X EI Capitan 10.11.1
  • PHP: 5.6.10
  • MySQL: 5.6.13
  • Apache: 2.4.16
  • MAMP: 3.4
  • Symfony: 2.7.6

Windows環境

  • Windows: 7 Professional
  • PHP: 5.5.9
  • MySQL: 5.6.16
  • Apache: 2.4.7
  • Symfony: 2.7.6

さくらのVPS(CentOS)環境

CentOSはMacと同じコマンドで確認できました。

  • CentOS: 7.1.1503
  • PHP: 7.0.0RC7
  • MySQL: 5.6.27
  • Nginx: 1.6.3
  • Symfony: 2.7.6

Slack APIトークンの生成

Slackにログインして次のページを開きます。

Slack APIトークンの生成

Create tokenボタンを押すとトークンが生成されます。(既に生成済みだったので画像では「Re-issue token」になってます。)

MonologのSlack通知設定

app/config/config_prod.ymlファイルに下記を追記します。

※確認の際はキャッシュクリアしてください。設定が反映されてない場合があります。

Slackの通知はcriticalレベル以上のエラーのみ通知する形です。
debugレベルのログが通知されるのは非常にウザいです。

チャンネル名は#まで含めて指定してください。

slackのオプションはsymfony/monolog-bundle/DependencyInjection/Configuration.phpを参照。

エラーログが出力されたらSlackに通知が来るようになります。
Slack側の設定は特にないですが、指定したチャンネル名は開設しておいてください。

Slackに通知が来るかテスト

Slack通知テスト

Slackのアプリを入れておくと右上に通知が来ます。

MonologからSlackにメッセージを送る

こんな感じにMonologからSlackにメッセージが届きます。

BOTのアイコン

通知してくれるBOTアイコンは好きなものを指定できます。

レート制限

毎秒1個以下のメッセージを送信できるそうです。
長い期間にわたって限度を超えて継続した場合は速度制限されるようです。

SlackHandlerを使ってSlackに通知を送る

上記の記事を参考にしました。
コントローラーなどからSlackHandlerを呼び出して使う方法です。

こちらの場合は、configを書かなくても通知を送れます。

参考・関連リンクまとめ

関連記事

  1. symfony2
  2. さくらのVPS CentOS7
  3. Symfony2 blogチュートリアル 06 テーブルスキーマとエンティティクラス
  4. symfony2
  5. Symfony MonologでSQLクエリーを出力
  6. symfony2

コメントをお待ちしております

PR

カテゴリー