LoginSignup
3
2

More than 1 year has passed since last update.

エラーlogを吐いたらSlackへメッセージ送信をする

Posted at

はじめに

レンタルサーバーにEC-CUBEのプロジェクトをよく作成しています。

なので、サーバーの操作には制限がかかってますので、いろいろ調べてもできない事も多いです。

そういう中で、EC-CUBEのログ監視をどうにかこうにか出来ないかと思ってました。

エラーが起きた時にできるだけ早く察知できないか?
サーバーのログをいちいち見に行くのが面倒くさい!

そんな悩みを解決すべく、ネットの海をさまよった結果、ロギングライブラリMonologからSlackへメッセージを送信できるみたいです。

今回はその方法を紹介しまっす!!

参考サイト

Send Symfony application logs to Slack with Monolog

ぶっちゃけ、この記事を読めばすべて理解できます。。。。

Slackのアプリ作成

monologからSlackへメッセージ送信するためにアプリを作成します。

こちらは割愛させてください。
アプリの作成の際の設定方法が変わっていましたOTL

僕が作成した時の方法としては、こちらの記事が参考になります。

・本手順を始める前に
・アプリの作成
・権限設定
・ワークスペースへインストール

以上の手順を行ってください。

権限は「chat:write」「chat:write.public」を設定してください。

無事トークンが取得出来たらSlackの設定は完了です。

monologの設定

まず.envへトークンを設定

.env
SLACK_TOKEN=xoxp-************************************

app/config/eccube/packages/monolog.ymlへパラメーターを追加

app/config/eccube/packages/monolog.yml
parameters:
    slack_token: '%env(SLACK_TOKEN)%'
    slack_bot_name: '' #nameは反映されなかった。権限設定でchat:write.customizeが必要かも
    slack_channel: '#投稿するチャンネル名'

app/config/eccube/packages/prod/monolog.ymlへパラメーターを追加

app/config/eccube/packages/prod/monolog.yml
slack_errors:
    type:        slack
    token:       '%slack_token%'
    channel:     '%slack_channel%'
    bot_name:    '%slack_bot_name%'
    icon_emoji:  ':ghost:' #icon_emojiは反映されなかった。権限設定でchat:write.customizeが必要かも
    level:         error
    include_extra: true

levelはerrorかcriticalを設定すれば良いのではないかと思います。

以上で設定は完了です。

log_errorでエラーログを吐いてみたい、わざとエラーになるようなスクリプトを動かしてみてください。

Slackへ通知が行くはずです。

EC-CUBEにエラーlogを吐いたらSlackへメッセージ送信を導入して運用した感想

思ったより全然通知は来てないです。

来るとしたら、不正なアクセス?例えばHttp_methodがHEADでアクセスして来てエラーになっていたり、決済会社からの通知で正常に処理された後、2度目3度目の通知でエラーログ吐いてたり、そんな感じの通知ばかりでした。

それでも、今まで見れてなかった部分が見れるようになったので、少しだけ安心感を得られてると思います。

以上、ここまで読んでいただきありがとうございました!!

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2