LaraOwl: مانیتورینگ سلفهاست برای لاراول
خلاصهٔ کاملتر
به گفتهٔ نویسنده، LaraOwl یه پلتفرم مانیتورینگ متنباز برای اپلیکیشنهای لاراوله که برخلاف سرویسهای ابری، خودت روی زیرساخت خودت دیپلویش میکنی. مدلش اینه که یه سرور LaraOwl بالا میاری و توی هر اپی که میخوای زیر نظر بگیری پکیج laraowl/client رو نصب میکنی؛ کلاینت تلهمتری رو جمع میکنه و برای ذخیره و نمایش میفرسته به سرورت. حوزهٔ کارش شبیه Laravel Nightwatchه، منتها اون میزبانیشدهست و این یکی رو خودت میگردونی.
کلاینت بعد از نصب، دیتا رو توی چند لایه از چرخهٔ عمر ریکوئست ضبط میکنه: درخواستهای HTTP (متد، مسیر، کد وضعیت، مدتزمان و حجم پاسخ)، خطاها همراه با استکتریس و یه وضعیت رفعشده که میتونی علامت بزنی، کوئریهای دیتابیس با تشخیص کوئری کند و مشکل N+1، و همینطور جابها و فعالیت صف با وضعیت پردازش و شکستها. نکتهٔ خوبش اینه که تلهمتری بهصورت غیرهمزمان و از طریق سیستم صف لاراول فرستاده میشه، پس جمعآوری دیتا رو مسیر اصلی ریکوئست سنگینی نمیذاره.
فراتر از دادههای عملکردی، LaraOwl ترافیک ورودی رو هم برای الگوهای رایج حمله بررسی میکنه. بخش تحلیل WAF اون ریکوئستهایی رو که شبیه SQL injection، cross-site scripting یا تلاش برای path traversal به نظر میان علامتگذاری میکنه. علاوه بر این مستقیم به API کلادفلر وصل میشه، طوری که میتونی قوانین فایروال رو از خود داشبورد مدیریت کنی و لازم نباشه مدام بین ابزارها جابهجا شی.
داشبوردش هم زندهست: با Laravel Reverb روی WebSocket آپدیت میشه و نمودارهاش ریکوئستها، خطاها و جابهای جدید رو همون لحظه که میان نشون میده. وقتی چیزی نیاز به توجه داشته باشه، LaraOwl میتونه از طریق Slack، Discord، تلگرام، ایمیل یا یه وبهوک دلخواه بهت خبر بده. چکهای uptime و heartbeat هم داره تا ببینی یه سرویس اصلاً جواب میده یا نه.
سمت سرور خودش یه اپلیکیشن لاراوله که با Composer میسازیش، بعد assetهای فرانت رو بیلد میکنی و مایگریشنها رو اجرا میکنی:
composer create-project laraowl/laraowl laraowl
cd laraowl
npm install
cp .env.example .env
php artisan key:generate
php artisan migrate
npm run buildچون داشبورد به دریافت صفشده، تسکهای زمانبندیشده و Reverb تکیه داره، سرور باید سه پروسهٔ پشتیبان رو هم بالا نگه داره: queue:work برای پردازش صف، reverb:start برای WebSocket و schedule:work برای تسکهای زمانبندیشده. توی هر اپی هم که میخوای مانیتور کنی کافیه پکیج کلاینت رو بکشی و نصبش رو اجرا کنی:
composer require laraowl/client
php artisan laraowl:installاز نظر پیشنیازها، LaraOwl به PHP 8.3 به بالا، Node.js 18 به بالا و یکی از MySQL 8.0+ یا PostgreSQL احتیاج داره. سورس و مستنداتش هم روی گیتهاب در دسترسه.
نکات کلیدی:
- پلتفرم مانیتورینگ متنباز و سلفهاست برای لاراول، با لایسنس Apache 2.0
- ضبط ریکوئستهای HTTP، خطاها، کوئریهای دیتابیس (کند و N+1) و جابها
- تلهمتری غیرهمزمان از طریق صف لاراول، بدون سنگینکردن مسیر ریکوئست
- تحلیل WAF برای الگوهای حمله و اتصال مستقیم به API کلادفلر
- داشبورد زندهٔ WebSocket با Reverb و هشدار روی Slack/Discord/تلگرام/ایمیل
- پیشنیاز: PHP 8.3+، Node.js 18+ و MySQL 8.0+ یا PostgreSQL




