#はじめに
レンタルサーバーに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
へトークンを設定
SLACK_TOKEN=xoxp-************************************
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
へパラメーターを追加
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度目の通知でエラーログ吐いてたり、そんな感じの通知ばかりでした。
それでも、今まで見れてなかった部分が見れるようになったので、少しだけ安心感を得られてると思います。
以上、ここまで読んでいただきありがとうございました!!