CentOS7にmod_dumpostをインストールする
POSTメソッドのデータ部分もログ出力してくれるApacheのモジュールmod_dumpost。
テスト環境 Link to heading
- OS: CentOS7.4
- Apache: 2.4.6
準備 Link to heading
# yum install httpd-devel
# yum install gcc
mod_dumpostインストール Link to heading
# git clone https://github.com/danghvu/mod_dumpost
# cd mod_dumpost
# make
# make install
Apacheの設定ファイル編集と再起動 Link to heading
/etc/httpd/conf/httpd.conf
LogLevel info
# systemctl restart httpd
確認 Link to heading
下の例はローカルホストから実行しているが他ホストから確認しても同様の結果が得られる。(その場合はもちろんTCP/80ポートを開放すること)
# curl http://127.0.0.1/test -X POST -d "data1" -d "data2"
/var/log/httpd/error_log
[Tue Jan 09 14:09:02.886789 2018] [:info] [pid 4042] [client 127.0.0.1:34154] "POST /test HTTP/1.1" data1&data2
ちゃんとデータ「data1&data2」がログに出力されている。
SSLの場合 Link to heading
SSL化した場合も同じようにPOSTのデータをログ出力できる。
# yum install mod_ssl
/etc/httpd/conf.d/ssl.conf
LogLevel info
# systemctl restart httpd
確認 Link to heading
# curl --insecure https://127.0.0.1/test -X POST -d "data1" -d "data2"
/var/log/httpd/ssl_error_log
[Tue Jan 09 14:19:00.910862 2018] [:info] [pid 7994] [client 127.0.0.1:55982] "POST /test HTTP/1.1" data1&data2
捕捉 Link to heading
画像アップロード等の大容量データを全部ログに書き出すとログファイルがすぐいっぱいになってしまうので、それを防ぐ設定があるみたい(まだ確かめてないけど)。
/etc/httpd/conf/httpd.conf
DumpPostMaxSize 1024