香港・新疆・IR:裏の裏に何があるか...1 異なる視点論点⑩(2020年1月18日) 香港・新疆・IR:裏の裏に何があるか 2020 年は、イラン革命防衛隊司令官の殺害による「あわや戦争」の緊張など
アプリからの情報を秘密裏にApacheのログに書き出す方法
Click here to load reader
-
Upload
yoshinori-teraoka -
Category
Self Improvement
-
view
2.283 -
download
3
Transcript of アプリからの情報を秘密裏にApacheのログに書き出す方法
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 に入れれば
%{HeaderName}o で出力できる
でも Client (Browser) にはそのデータは返したくない
今日の話題
Apache の Log にアプリからの情報を入れ込みたい
→Response Header に入れれば
%{HeaderName}o で出力できる
でも Client (Browser) にはそのデータは返したくない→あれ、返しちゃう・・・
今日の話題
Apache の Log にアプリからの情報を入れ込みたい
→Response Header に入れれば
%{HeaderName}o で出力できる
でも Client (Browser) にはそのデータは返したくない→あれ、返しちゃう・・・
そうか、Header unset HeaderName だ
今日の話題
Apache の Log にアプリからの情報を入れ込みたい
→Response Header に入れれば
%{HeaderName}o で出力できる
でも Client (Browser) にはそのデータは返したくない→あれ、返しちゃう・・・
そうか、Header unset HeaderName だ
→あれ、unset すると %o で使えない...
今日の話題
じゃあどうするか?
今でしょう!!
Patch 書くでしょう
mod_headers.c に手を入れました
https://gist.github.com/yteraoka/5098379
で HeaderName の値を subprocess_env にコピー
し、Header から削除します、これで %{EnvName}e
を使ってログに書き出せます
使い方
Header toenv HeaderName EnvName
他のDBなどと突き合わせなくても誰のアクセスなのか?などが把握可能
何が嬉しいのか?
X-UserId: 1234
X-Age: 10代X-Age: 20代
X-Sex: 女
X-UserClass: VIP
こんなの入ってたら便利じゃない?
(あ、これだとClientに返しても問題ないか??)
そういえば今使ってるのは
mod_jk.c + 3 行 patch 版だった
mod_proxy_http.c 版、mod_caucho.c 版
とかあって嫌になったので
mod_headers.c で対応したのが今回のやつ
Apache 2.4.4 から mod_headers で%l, %i, %b
が使えるようになってます%l: Load Average
%i: idle process and thread percentage
%b: busy process and thread percentagehttp://httpd.apache.org/docs/2.4/mod/mod_headers.html
おまけ