joppotjoppotコピペで絶対動く。概要みなさんこんにちはcandleです。今回はtd-agentでnginxのログを収集します。td-agentで解説しますが、fluentdと設定は基本的に同じになると思うので、参考にしていただけたらと思います。前提td-agentまたはfluentdがインストールされている適当なアクセスできるnginxサーバがあるtd-agentのユーザーを変更するtd-agentサーバの実行ユーザーは初期設定でtd-agentですが、nginxのログはrootしかアクセスできません。/var/log/nginx/access.log」というエラーがでます。これを回避するのにはtd-agentサーバのユーザをrootにすれば良いのです。/etc/init.d/td-agentを開きます。自分のよく使っているエディタで開いてください。/etc/init.d/td-agentファイルの中の「TD_AGENT_USER」の値を「td-agent」から「root」に変更します。td-agentを再起動します。restartこれで、nginxのログにtd-agentがアクセスできるようになりました。match」が含まれてしまっています。nginxで定義されている正規表現と実際のログがあっていないからです。以下が吐き出されるログのサンプルです。\"-\""調べてみると多くの記事はltsv形式で取得しているらしいです。こちらの方法もあまりお勧めできません。吐き出されるjsonの形式がいまいちです。以下がそのサンプルです。\"-\""}そこで、以下のサイトを参考にさせてもらい、formatを独自で定義します。http://qiita.com/liubin/items/92a4e7e3917143ae4aaftd-agentの設定ファイルを開きます。/etc/td-agent/td-agent.confに設定ファイルがあります。以下を記述しましょう。取得したデータにタグをつけます。nginxのaccess.logにマッチした正規表現が記述されています。time_localは生成されるjsonにtimeを埋め込みます。これが無いとエラーがでます。デバッグのために、この取得したログを表示する記述も書いておきます。上の設定で加えたタグ「nginx.access」にマッチした場合にfluentd標準出力し、td-agentのログに残します。stdout</match>ファイルを保存して、td-agentを再起動します。restart再起動したら、td-agentのログを見て、取得できているか確認します。td-agentのログは/var/log/td-agent/td-agent.logにあります。これを監視しましょう。/var/log/td-agent/td-agent.logブラウザでnginxにアクセスして、ログが表示されたか確認します。画像だと分かりづらいですが、下のテキストがサンプルのログです。Safari/602.4.8","forwarder":"-"}取得できていますね。後はS3にあげるなり、適当な場所に保存するなりします。nginxのerror.logを取得する続いて、nginxのerror.logを取得しましょう。td-agentのconfファイルを開きます。/etc/td-agent/td-agent.conf先ほど加えたaccess.logのデバッグ用のディレクティブはコメントアウトしておきます。stdout#</match>続いて、以下を記述します。(?<message>.*)$/</source>基本的なことは上のaccess.logと同じです。formatのところは独自の正規表現を記述しています。nginxのerror.logに対応した正規表現です。これは公式サイトにあるものを持ってきました。http://docs.fluentd.org/v0.12/articles/common-log-formatsデバッグのために以下のfluntd標準出力も記述しておきます。stdout</match>保存したら、再起動します。td-agentログを見てみます。/var/log/td-agent/td-agent.lognginxでわざとエラーを起こすのは難しいのですが、下のはrailsでunicornを停止した状態でアクセスした時のエラーです。\"local-hogehoge.com\""}いい感じですね。まとめnginxのaccess.logとerror.logを取得してみました。スポンサードリンク「為になったなぁ」と思ったら、シェアお願いします。コメントをキャンセルメールアドレスが公開されることはありません。みなさんこんにちはcandleです。wordpressは大変便利なのですが、いまいちgitで管理するのが難しいものです。みなさんこんにちはcandleです。今回はec2のデフォルトで入っているvimを削除してみたいと思います。emacs使いの私としてはvimは、まぁ、いらないと考えました。みなさんこんにちはcandleです。今回はS3にホスティングしたReactにRoute53の独自ドメインを割り振ってみましょう。みなさんこんにちはcandleです。今回はmysqlの管理者を加える方法です。この記事は別段書かなくても、いくらでもweb上にあるのですが、私がよく使うのでまとめました。みなさんこんにちはcandleです。今回はphpでgetでパラメータを受け取る際のurlの書き換えです。phpよくあるのがこのようなurlではないでしょうか。Sansフォントウェイトのcss書き方まとめプロフィールベンチャー企業のCTOをやってます。大学時代にプログラミングを始め、javaから入門し、C++へて、PHPへと進み、会社ではRailsを使用。環境設定スポンサードリンクjoppotコピペで絶対動く。