diff --git a/routes/web.php b/routes/web.php index eb81c6e648ce808091d5ae7f4a06e548dd91b2aa..18be3329a2e8f786a2739b427746419a30d3f3a7 100644 --- a/routes/web.php +++ b/routes/web.php @@ -3,6 +3,7 @@ use Illuminate\Support\Facades\Redis; use Jenssegers\Agent\Agent; use Prometheus\RenderTextFormat; +use Illuminate\Http\Request; /* |-------------------------------------------------------------------------- @@ -320,7 +321,27 @@ Route::group( }); }); - Route::get('metrics', function () { + Route::get('metrics', function (Request $request) { + // Only allow access to metrics from within our network + $ip = $request->ip(); + $allowedNetworks = [ + "10.", + "172.", + "192.", + "127.0.0.1", + ]; + + $allowed = false; + foreach($allowedNetworks as $part){ + if(stripos($ip, $part) === 0){ + $allowed = true; + } + } + + if(!$allowed){ + abort(401); + } + $registry = \Prometheus\CollectorRegistry::getDefault(); $renderer = new RenderTextFormat();