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

基本はここを監視。

 

 

ひとまずここまで。

 

 

 - インフラ

  関連記事

ハウジング・ホスティング・レンタル・VPS・クラウド違い

ハウジングサービス 顧客の通信機器や情報発信用のコンピュータ(サーバ)などを、自 …

nagios cacti munin 監視ツールがいっぱい

自社環境で、上記3つの監視ツールが使われている。。 それぞれ何が違うのかが、いま …

nagiosってなにができるんだっけ① 画面の見方 メニュー説明 自分メモ

nagiosのwebインターフェースで見られる情報っていったい何があるのっていう …

Xenserver コマンドでゲストのメモリ増設

Xenserverのメモリ増設。Xencenterを使わずコマンドで! 流れ ホ …

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

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