Method 1 – Using mod_log_forensic apache Module
Step 1 – Check if mod_log_forensic module is enabled or not
$ ./httpd -M | grep mod_log_forensic
Step 2 – Enable mod_log_forensic module using following lines in httpd.conf
LoadModule log_forensic_module /usr/lib64/httpd/modules/mod_log_forensic.so | |
<IfModule log_forensic_module> | |
ForensicLog /opt/lampp/logs/forensic_log | |
</IfModule> |
Method 2 – Using PHP Script
$ grep -o 'account id: [^ ]\+' dumprequest.txt | sort | uniq -c | |
993 account id: 2919295 | |
496 account id: 2956515 | |
99 account id: 2956534 | |
989 account id: 2984338 | |
494 account id: 2984644 | |
495 account id: 2984661 |
GET / HTTP/1.1 | |
HTTP headers: | |
Host: www.devopsschool.com | |
Connection: keep-alive | |
Upgrade-Insecure-Requests: 1 | |
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36 | |
Dnt: 1 | |
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 | |
Accept-Encoding: gzip, deflate, br | |
Accept-Language: en-US,en;q=0.9 | |
X-Newrelic-Synthetics: PwcbU19bDAADXE1AVQZUBFRTUwJPBAZSBE8MWg8IGVACUQxMAQMHVwFXUgcAWlwAEkhDVlQDUlRTUwYeAVFSVx1WDAMMFQxUAAcUVwNSBVJVVw9U | |
BFsJERxGAlIEAlFeXQEbAQdRVE8EVQ9RFVlXAQRICFVSWAIAUAYDVlAFGm4= | |
X-Abuse-Info: Request sent by a New Relic Synthetics Monitor (https://docs.newrelic.com/docs/synthetics/new-relic-synthetics/administra | |
tion/identify-synthetics-requests-your-app) - monitor id: c033f890-2e77-4773-ac37-14c91b40476f | account id: 2984338 | |
Request body: | |
GET / HTTP/1.1 |
<?php | |
// https://gist.github.com/magnetikonline/650e30e485c0f91f2f40 | |
class DumpHTTPRequestToFile { | |
public function execute($targetFile) { | |
$data = sprintf( | |
"%s %s %s\n\nHTTP headers:\n", | |
$_SERVER['REQUEST_METHOD'], | |
$_SERVER['REQUEST_URI'], | |
$_SERVER['SERVER_PROTOCOL'] | |
); | |
foreach ($this->getHeaderList() as $name => $value) { | |
$data .= $name . ': ' . $value . "\n"; | |
} | |
$data .= "\nRequest body:\n"; | |
file_put_contents( | |
$targetFile, | |
$data . file_get_contents('php://input') . "\n*************************************************************\n", FILE_APPEND | |
); | |
echo("Done!\n\n"); | |
} | |
private function getHeaderList() { | |
$headerList = []; | |
foreach ($_SERVER as $name => $value) { | |
if (preg_match('/^HTTP_/',$name)) { | |
// convert HTTP_HEADER_NAME to Header-Name | |
$name = strtr(substr($name,5),'_',' '); | |
$name = ucwords(strtolower($name)); | |
$name = strtr($name,' ','-'); | |
// add to list | |
$headerList[$name] = $value; | |
} | |
} | |
return $headerList; | |
} | |
} | |
(new DumpHTTPRequestToFile)->execute('./dumprequest.txt'); |
I’m a DevOps/SRE/DevSecOps/Cloud Expert passionate about sharing knowledge and experiences. I am working at Cotocus. I blog tech insights at DevOps School, travel stories at Holiday Landmark, stock market tips at Stocks Mantra, health and fitness guidance at My Medic Plus, product reviews at I reviewed , and SEO strategies at Wizbrand.
Please find my social handles as below;
Rajesh Kumar Personal Website
Rajesh Kumar at YOUTUBE
Rajesh Kumar at INSTAGRAM
Rajesh Kumar at X
Rajesh Kumar at FACEBOOK
Rajesh Kumar at LINKEDIN
Rajesh Kumar at PINTEREST
Rajesh Kumar at QUORA
Rajesh Kumar at WIZBRAND