Laravel Nightwatchを使ってすべてのアクセス、エラーをロギングする

執筆日: 更新日:

Laravel Nightwatchとは?

Laravelアプリケーション専用の監視・可視化プラットフォームです。
アプリのリクエスト、ジョブ、クエリ、例外、ログ、サーバリソースなど、
あらゆるイベントやパフォーマンス指標をリアルタイムで追跡・監視できます。
通知やアラート機能も備え、異常や問題を素早く把握できるのが大きな特徴です。

https://nightwatch.laravel.com

始め方

ライブラリのインストール

Laravel Nightwatchのライブラリと、エージェントをインストールします。
エージェントは必要な情報をLaravel Nightwatchに送信します。

$ composer require laravel/nightwatch

トークンの設定

Laravel nightwatch上でアプリケーションを作成すると、

NIGHTWATCH_TOKEN=xxxxxxxx

のようなトークンが発行されます。
これを.envに入れてください。

ついでに送信するサンプリングの設定も行います。
以下も.envに書きましょう。

NIGHTWATCH_EXCEPTION_SAMPLE_RATE=1.0
NIGHTWATCH_COMMAND_SAMPLE_RATE=1.0
NIGHTWATCH_REQUEST_SAMPLE_RATE=0.1

ログ送信の設定

LOG_STACKnightwatchを追加します。
すでにdailyなどが設定してある場合、カンマ(,)で区切って設定します。

LOG_STACK=daily,nightwatch

エージェントの起動

エージェントは以下コマンドで起動できます。

php artisan nightwatch:agent

ただ、エージェントは起動しっぱなしにしておかないと行けないので、
バックグラウンド起動で起動しっぱなしにするか、supervisorなどで起動を維持します。

supervisorの設定例

[program:nightwatch]
command=php /path/to/artisan nightwatch:agent
autostart=true
autorestart=true

こんな感じです

[PR] おすすめの本
この記事を書いた人
Nな人(えぬなひと)。
Nは本名から取っています。
Laravelが大好きなPHPerで、WEBを作るときはLaravelを技術スタックに絶対推すマン。
PHP、Pythonと、昔はperlを書いていたP言語エンジニア。
最近はNimを書いたりしています。