LaraOwl — це open-source платформа для моніторингу Laravel-застосунків, яку можна розгорнути на власній інфраструктурі. Замість передачі даних стороннім сервісам, ви налаштовуєте власний сервер LaraOwl та встановлюєте клієнтський пакет у свої проєкти. Клієнт збирає телеметрію та надсилає її на сервер для зберігання та візуалізації. За функціоналом LaraOwl схожий на Laravel Nightwatch (відстеження запитів, помилок та черг), проте є self-hosted рішенням. Проєкт поширюється за ліцензією Apache 2.0.
# Що відстежує клієнт
Після встановлення пакета laraowl/client, LaraOwl фіксує дані на різних етапах життєвого циклу запиту:
- HTTP-запити: метод, шлях, статус-код, тривалість та розмір відповіді;
- Exceptions: групування помилок зі stack traces та статусом вирішення;
- Запити до бази даних: виявлення повільних запитів та проблем N+1;
- Jobs та активність черг: статус виконання, тривалість та збої;
- Активність користувачів та історія запитів.
Телеметрія передається асинхронно через систему черг Laravel, тому збір даних не уповільнює роботу застосунку.
# Аналіз WAF та інтеграція з Cloudflare
Окрім моніторингу продуктивності, LaraOwl аналізує вхідний трафік на наявність типових атак, як-от SQL injection, cross-site scripting та path traversal. Завдяки інтеграції з Cloudflare API, керувати правилами Firewall можна безпосередньо з дашборду LaraOwl.
# Дашборд у реальному часі та сповіщення
Дашборд оновлюється миттєво через WebSockets за допомогою Laravel Reverb. Графіки відображають нові запити, помилки та завдання в момент їх виникнення. LaraOwl може надсилати сповіщення у Slack, Discord, Telegram, на email або через Webhook. Також підтримуються перевірки uptime та heartbeat для контролю доступності сервісів.

# Встановлення
Серверна частина — це Laravel-застосунок, який створюється через Composer. Після цього потрібно зібрати фронтенд-активи та запустити міграції:
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, необхідно запустити три фонові процеси:
php artisan queue:work
php artisan reverb:start
php artisan schedule:work
У кожному застосунку, який ви хочете моніторити, встановіть клієнтський пакет:
composer require laraowl/client
php artisan laraowl:install
Для роботи LaraOwl потрібні PHP 8.3+, Node.js 18+ та база даних MySQL 8.0+ або PostgreSQL. Документація та сирцевий код доступні на GitHub.