For Want Of A Better Word

メモ_webサーバーログをmysqlにぶち込む_(簡易アクセスデータ取得ツール\1)

   

webサーバーに透過gifをおいて、ウェブサイトアクセス時に該当gifにパラメータをつけてアクセスする。

そのリクエストログをログサーバー側でdbに保存し、その数を確認できるようにしたい。

リクエストの取得はgaを参考に簡易なタグを作成。

 

データの取り込みはfluentdを利用。

mysqlへ入れるプラグインがすぐ見つかったのと、各段階で欲しい情報がすぐ見つかったから。パーサーの自前での作成などもrubyでかけて助かる。

※logstash+elasticsearch+kibanaについては、構築のドキュメントは良く見つかるし、構築も簡単なのだが。。運用にはそれぞれの習熟が必要で、3つも新しいもの使うとそこにパワーが係る。とくにelascticsearch周りかな。
ログ収集だけはfluentdを使いその他はなれたRDBMSと簡易WEB画面作成したほうが柔軟な対応ができそう..

 

fluentdインストール

参考リンク

http://hit.hateblo.jp/entry/2016/01/11/020555

 

(メモ)

起動にあたり、プロセスの実行ユーザーをrootにしておくと、ファイル側の権限を変更しなくて良い。

参考:http://qiita.com/zaburo/items/dbd943d370afe8e4a304

 

td-agent.conf  の設定

 

 

<source>に入力条件

<match>に保存先の条件を指定する

<source>のformat は色々ある。

フォーマット参考:http://qiita.com/hayashier/items/7524000f07f63303e7e0

keysで左からマッチしたものに名前をつける。keysが元データのヘッダーだと思えばいい。

typeを正規表現で設定することも可能。

その場合の項目名は正規表現の中で「?<user>[^ ]*)」というように<user>という識別子を入れる。

 

正規表現が複雑になりすぎる場合は、パーサープラグインを作成したほうがよっぽど楽。rubyでかける。

パーサー参考:http://qiita.com/toru-takahashi/items/b475aa4747e0e360f454

 

<match>でSQLを直接書いて実行している。インサート先のテーブルは予めつくって置いてね、と。

 

これででデータが入っていく。

 

データが入らないとき

/var/log/td-agentのログにミスマッチのログが出力される。ここで条件の正否は確認できる。

基本はここを監視。

 

 

ひとまずここまで。

 

 

 - インフラ

  関連記事

[linux][sh]アパッチのアクセスログからアクセス数の確認_簡易版

gaとかを仕込んで無いサイトでPVを確認したい、という要望あり。 アクセスログが …

NATとIPマスカレードとポートフォワーディングの意味整理

NATとは プライベートIPアドレスとグローバルIPアドレスを変換する。プライベ …

メールサーバーとMTAの違い

メール転送エージェント – Wikipedia メール配送エージェン …

【基盤】プロセス名から探して、まとめてプロセスを落とす。

pgrep, pkill を使用してプロセスを殺す – 技術メモ帳 …

mauticを動かすまでにやったこと

①サーバーの用意とMauticのインストール 下記サイト参照でほぼOK http …