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のログにミスマッチのログが出力される。ここで条件の正否は確認できる。

基本はここを監視。

 

 

ひとまずここまで。

 

 

 - インフラ

  関連記事

USBメモリなどのマウント

①デバイスファイル名の確認(USB接続時) dmesg | grep sdb ② …

【まとめ済み】configure make make-install の違い

以下の記事にまとめました。 http://www.fwoabw.info/ent …

.htaccessの設定まとめ

■ドメインリダイレクト ・wwwから無しへ [crayon-592a229644 …

SSL、サーバー証明書、クライアント証明書 まとめ

なんかごちゃごちゃしてきたので整理。 ・SSL ・サーバー証明書 ・クライアント …

Linux CentOS hdd増設 LVMへの追加 領域拡張 リンクまとめ

自宅サーバーのhdd増設をしたので、参考にしたリンクメモ。 拡張は結構簡単で、既 …