ستقوم حزمة Laravel 5 هذه بمراقبة صحة الخادم وموقع الويب الخاص بك بشكل دوري. حاليًا، يوفر إشعارات حالة صحية/إنذار لاستخدام القرص، ووظيفة HTTP Ping لمراقبة صحة الخدمات الخارجية، ومراقبة التحقق من الصحة/انتهاء الصلاحية لشهادات SSL.
بمجرد التثبيت، تصبح مراقبة الخادم الخاص بك أمرًا سهلاً للغاية. ما عليك سوى إصدار هذا الأمر الحرفي:
php artisan monitor:runيمكنك تشغيل شاشات معينة فقط في المرة الواحدة:
php artisan monitor:run HttpPing
php artisan monitor:run SSLCertificate,DiskUsageباستخدام ملف التكوين في مشروعك، يمكن تكوين أي عدد من الشاشات للتحقق من وجود مشكلات في إعداد الخادم الخاص بك.
عند تنفيذ الأمر monitor:run artisan، إما من سطر الأوامر أو باستخدام برنامج جدولة أوامر Laravel، تعمل الشاشات وتنبيه إذا كانت هناك مشكلة. حالة التنبيه قابلة للتكوين، ويمكن إرسال التنبيهات إلى السجل، أو عبر البريد الإلكتروني، وPushover، وSlack.
تتحقق أجهزة مراقبة استخدام القرص من النسبة المئوية لمساحة التخزين المستخدمة في القسم المحدد، وتنبيه إذا تجاوزت النسبة النسبة المئوية للإنذار القابل للتكوين.
يقوم مراقبو HTTP Ping بإجراء طلب صفحة بسيط والتنبيه إذا كان رمز حالة HTTP ليس 200. يمكنهم اختياريًا التحقق من تضمين عبارة معينة في مصدر الصفحة.
تقوم مراقبو شهادة SSL بسحب شهادة SSL لعنوان URL الذي تم تكوينه والتأكد من صلاحيته لعنوان URL هذا. يتم دعم شهادات Wildcard وشهادات النطاقات المتعددة.
سوف يقوم جهاز المراقبة بتنبيهك إذا كانت الشهادة غير صالحة أو منتهية الصلاحية، وسوف ينبهك أيضًا عند اقتراب تاريخ انتهاء الصلاحية. الأيام التي يتم فيها التنبيه قبل انتهاء الصلاحية قابلة للتكوين أيضًا.
يمكنك تثبيت هذه الحزمة عبر الملحن باستخدام:
composer require ericmakesstuff/laravel-server-monitor
ستحتاج إلى تسجيل مقدم الخدمة:
// config/app.php
' providers ' => [
// ...
EricMakesStuff ServerMonitor ServerMonitorServiceProvider::class,
];لنشر ملف التكوين على app/config/server-monitor.php، قم بتشغيل:
php artisan vendor:publish --provider="EricMakesStuffServerMonitorServerMonitorServiceProvider"
بعد نشر ملف التكوين، يمكنك تحرير قسم 'monitors' في app/config/server-monitor.php.
تكوينات الشاشة الافتراضية هي:
' monitors ' => [
/*
* DiskUsage will alert when the free space on the device exceeds the alarmPercentage.
* path is any valid file path, and the monitor will look at the usage of that disk partition.
*
* You may add as many DiskUsage monitors as you require.
*/
' DiskUsage ' => [
[
' path ' => base_path (),
' alarmPercentage ' => 75 ,
],
],
/*
* HttpPing will perform an HTTP request to the configured URL and alert if the response code
* is not 200, or if the optional checkPhrase is not found in the response.
*/
' HttpPing ' => [
[
' url ' => ' http://www.example.com/ ' ,
],
[
' url ' => ' http://www.example.com/ ' ,
' checkPhrase ' => ' Example Domain ' ,
' timeout ' => 10 ,
' allowRedirects ' => false ,
],
],
/*
* SSLCertificate will download the SSL Certificate for the URL and validate that the domain
* is covered and that it is not expired. Additionally, it can warn when the certificate is
* approaching expiration.
*/
' SSLCertificate ' => [
[
' url ' => ' https://www.example.com/ ' ,
],
[
' url ' => ' https://www.example.com/ ' ,
' alarmDaysBeforeExpiration ' => [ 14 , 7 ],
],
], يمكن تسجيل التنبيهات إلى معالج السجل الافتراضي، أو إرسالها عبر البريد الإلكتروني، أو Pushover، أو Slack. القيم المسموح بها هي log mail pushover slack .
تكوينات التنبيه الافتراضية هي:
' events ' => [
' whenDiskUsageHealthy ' => [ ' log ' ],
' whenDiskUsageAlarm ' => [ ' log ' , ' mail ' ],
' whenHttpPingUp ' => [ ' log ' ],
' whenHttpPingDown ' => [ ' log ' , ' mail ' ],
' whenSSLCertificateValid ' => [ ' log ' ],
' whenSSLCertificateInvalid ' => [ ' log ' , ' mail ' ],
' whenSSLCertificateExpiring ' => [ ' log ' , ' mail ' ],
],بعد الانتهاء من التثبيت الأساسي، يمكنك البدء باستخدام الأمر Monitor:run. في معظم الحالات، ستحتاج إلى جدولة هذا الأمر حتى لا تضطر إلى تشغيل Monitor:run يدويًا في كل مرة تريد فيها معرفة صحة الخادم الخاص بك.
يمكن جدولة الأوامر، مثل أي أمر آخر، في نواة وحدة التحكم الخاصة بـ Laravel.
// app/Console/Kernel.php
protected function schedule ( Schedule $ schedule )
{
$ schedule -> command ( ' monitor:run ' )-> daily ()-> at ( ' 10:00 ' );
$ schedule -> command ( ' monitor:run HttpPing ' )-> hourly ();
}بالطبع، الجداول المستخدمة في الكود أعلاه هي مجرد مثال. اضبطها حسب تفضيلاتك الخاصة.
قم بإجراء الاختبارات باستخدام:
vendor/bin/phpunitالمزيد من مقاييس المراقبة لا تتردد في تقديم الأفكار عبر القضايا أو سحب الطلبات!
يرجى الاطلاع على المساهمة للحصول على التفاصيل.
إذا اكتشفت أي مشكلات متعلقة بالأمان، فيرجى إرسال بريد إلكتروني إلى [email protected] بدلاً من استخدام أداة تعقب المشكلات.
رخصة معهد ماساتشوستس للتكنولوجيا (MIT). يرجى الاطلاع على ملف الترخيص لمزيد من المعلومات.