منصوبے کے بارے میں

ngtop nginx ایکسیس لاگز کے تجزیے کے لیے Go پر مبنی ایک CLI یوٹیلیٹی ہے۔ یہ لاگ انٹریز کو SQLite ڈیٹا بیس میں پارس کرتا ہے اور صارفین کو درخواست کے اعداد و شمار کے لیے فلٹر شدہ کوئریز چلانے کی اجازت دیتا ہے۔ ### انسٹالیشن ریلیزز سے پہلے سے تیار شدہ بائنری ڈاؤن لوڈ کریں یا Go کے ذریعے انسٹال کریں: `go install github.com/facundoolano/ngtop@latest`۔ ### یہ کیسے کام کرتا ہے ہر رن پر، ngtop nginx ایکسیس لاگز (ڈیفالٹ طور پر `/var/log/nginx/access.log*`) تلاش کرتا ہے، انہیں combined log فارمیٹ کا استعمال کرتے ہوئے پارس کرتا ہے، اور پارس شدہ انٹریز کو SQLite ڈیٹا بیس (`./ngtop.db` ڈیفالٹ طور پر) میں اسٹور کرتا ہے۔ بعد کے رنز صرف ان نئی لاگ انٹریز پر کارروائی کرتے ہیں جو ابھی تک اسٹور نہیں ہوئیں۔ ### کوئری کی صلاحیتیں یہ ٹول متعدد جہتوں میں فلٹرنگ اور ایگریگیشن کی سپورٹ کرتا ہے: - **Paths**: سب سے زیادہ درخواست کردہ URLs، پیٹرن میچنگ (`/blog/%`) کے ساتھ - **User agents**: براؤزر، OS، ڈیوائس، یا بوٹ ڈیٹیکشن کے ذریعے گروپ کریں - **IPs**: سب سے زیادہ درخواست کرنے والے IPs، یا فی IP ٹاپ URLs - **Referers**: مخصوص URL پیٹرنز کے لیے ٹاپ ریفررز - **Status codes**: HTTP اسٹیٹس کے مطابق جوابات کی گنتی، بشمول پیٹرن میچنگ (مثلاً `4%`, `5%`) - **Time ranges**: `--since`/`-s` کے ساتھ آخری سیکنڈ، منٹ، گھنٹے، دن، ہفتے یا مہینے تک کوئریز کو محدود کریں، اور اختیاری طور پر ونڈو کے لیے `--until`/`-u` استعمال کریں - **Filters**: `=`, `!=`, اور `LIKE` جیسے آپریٹرز کا استعمال کرتے ہوئے `--where`/`-w` کے ساتھ متعدد شرائط کو یکجا کریں ### کنفیگریشن برتاؤ کو انوائرمنٹ ویری ایبلز کے ذریعے کنٹرول کیا جاتا ہے: - `NGTOP_LOGS_PATH`: لاگ فائل لوکیشنز کے لیے Glob پیٹرن - `NGTOP_LOG_FORMAT`: کسٹم nginx لاگ فارمیٹ اسٹرنگ - `NGTOP_DB`: SQLite ڈیٹا بیس کا راستہ - `NGTOP_DEBUG`: اندرونی لاگنگ فعال کریں یہ ngtop کو nginx تعیناتیاں کے لیے ایک ہلکا پھلکا، کم اوور ہیڈ اینالٹکس لیئر بناتا ہے جہاں فل اسٹیک لاگ ایگریگیشن عملی نہیں ہوتا۔