はじめに
- Photoructionでエンジニアをしております。北原です。
前提
- 環境は、EC2です
目的
- そろそろ弊社も監視しないとやばいよね?という流れからsentryかdatadogどちらにするかってなりdatadogになりました
以下個人的な考え
- できる範囲で言うとsentryでできることはdatadogでも大概できます。(大概ね大概)
環境
- 前提にも書きましたがEC2です。
- 詳細
- PHP/Laravelを使用しているのでこれらの設定をしていく
- 詳細
やったこと
datadogの作業開始前に
- EC2をコマンド操作できる状態にしておいてください
- datadogにLoginしてください。
- 14日間は、無料で試せるのでアカウントをお持ちじゃない方はぜひにtryしてみてはいかがでしょうか?
まずは下記ページに遷移します(Integrations > agent > Amazon Linux)
SaaSはよくUIが変わったりしてどこに何があったっけとなるのでこちらの画像は、あくまで参考程度にとどめてください
①に書いてあります Use our easy one-step install. の箇所の下記コマンドをコピペしましょ
DD_API_KEY="ここに選択したAPI keyが入ります" DD_SITE="datadoghq.com" bash -c "$(curl -L <https://s3.amazonaws.com/dd-agent/scripts/install_script_agent7.sh>)"
EC2上でコマンドを実行しますとinstallが始まりますので終わるまで待機です。
設定fileを書いていきます
- こちらもdatadogにLoginしている状態ですと基本的には、何を用意すればいいのか書かれてます。
- Logs > Get started > server > phpにページ遷移しましょう
- ここに書かれている内容をそのままEC2に内に写経するだけ終わっちゃいます
- datadog-agent以下にあるdatadog-agent.yamlの該当箇所のコメントをコメントインする
logs_enabled: true
- これでdatadogは、loggingしてくれるようになります。phpに限ったことではないですが例えばnginxのlogも見たいんよなーって要望があった際にもここをtrueにしておけばあとは、各middleware用の設定fileをよしなにするだけですね
- laravel.logをdatadogに送ってあげましょ
作成したら以下のように記述します
logs: - type: file path: "/path/to/laravel.log" service: php source: php sourcecategory: sourcecode log_processing_rules: - type: multi_line name: new_log_start_with_date pattern: \\[\\d{4}\\-(0?[1-9]|1[012])\\-(0?[1-9]|[12][0-9]|3[01])
- 上記のように設定してあげればひとまずは問題ないです
type: multi_line
以下に関して- これを書かないとスタックトレースやら何やらが複数行にわたってdatadog上で表示されて全くもって見づらい状態になりますので書いた方がいいかなと思います。
動作確認
- 設定fileを書き終えたらdatadog-agentを再起動します。
sudo systemctl restart datadog-agent
- 再起動終わりましたら、datadogのlogsで確認することが可能になります。
- 補足しておきますとLaravelのlogの設定次第で表示される内容が異なりますから、スタックトレース見たいなーって思う方は、意図的に発生させてみてください。
参照
株式会社フォトラクションでは一緒に働く仲間を募集しています