SlideShare a Scribd company logo
Monitoring Casual Talk #3




       2013/03/08 Y.Teraoka
自己紹介

@yteraoka
某ISPで8年サーバエンジニア
その後現職インフラ屋
よろずIT関連
http://blog.1q77.com /


前回に続き2回目です。よろしくお願いしま
す。
自己紹介
今流行の Fluentd plugin 書いてみました




                       書いただけで使ってないけど・・・
今日の話題

Apache の Log にアプリからの情報を入れ込みたい




でも Client (Browser) にはそのデータは返したくない
今日の話題

Apache の Log にアプリからの情報を入れ込みたい
→Response Header に入れれば
 %{HeaderNam e}o で出力できる


でも Client (Browser) にはそのデータは返したくない
今日の話題

Apache の Log にアプリからの情報を入れ込みたい
→Response Header に入れれば
 %{HeaderNam e}o で出力できる


でも Client (Browser) にはそのデータは返したくない
→あれ、返しちゃう・・・
今日の話題

Apache の Log にアプリからの情報を入れ込みたい
→Response Header に入れれば
 %{HeaderNam e}o で出力できる


でも Client (Browser) にはそのデータは返したくない
→あれ、返しちゃう・・・
  そうか、Header unset HeaderNam e だ
今日の話題

Apache の Log にアプリからの情報を入れ込みたい
→Response Header に入れれば
 %{HeaderNam e}o で出力できる


でも Client (Browser) にはそのデータは返したくない
→あれ、返しちゃう・・・
  そうか、Header unset HeaderNam e だ
  →あれ、unset すると %o で使えない...
じゃあどうするか?
今でしょう!!
Patch 書くでしょう
m od_headers.c に手を入れまし
た
     https://gist.github.com /yteraoka/5098379
使い方

    Header toenv HeaderNam e EnvNam e


で HeaderNam e の値を subprocess_env にコピー
し、Header から削除します、これで %{EnvNam e}e
を使ってログに書き出せます
何が嬉しいのか?
他のDBなどと突き合わせなくても誰のアクセスなの
か?などが把握可能
       X-UserId: 1234

       X-Age: 10代
       X-Age: 20代

       X-Sex: 女

       X-UserClass: VIP



こんなの入ってたら便利じゃない?
(あ、これだとClientに返しても問題ないか??)
そういえば今使ってるのは
    m od_jk.c + 3 行 patch 版だった
m od_proxy_http.c 版、m od_caucho.c 版
      とかあって嫌になったので
m od_headers.c で対応したのが今回のやつ
おまけ

Apache 2.4.4 から m od_headers で
%l, %i, %b
が使えるようになってます
%l: Load Average
%i: idle process and thread percentage
%b: busy process and thread percentage
http://httpd.apache.org/docs/2.4/mod/mod_headers.html

More Related Content

アプリからの情報を秘密裏にApacheのログに書き出す方法