แพ็คเกจ 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 นั้น รองรับไวด์การ์ดและใบรับรองหลายโดเมน
จอภาพจะแจ้งเตือนหากใบรับรองไม่ถูกต้องหรือหมดอายุ และจะแจ้งเตือนเมื่อใกล้ถึงวันหมดอายุอีกด้วย วันที่จะแจ้งเตือนก่อนหมดอายุก็สามารถกำหนดค่าได้เช่นกัน
คุณสามารถติดตั้งแพ็คเกจนี้ผ่านผู้แต่งโดยใช้:
composer require ericmakesstuff/laravel-server-monitor
คุณจะต้องลงทะเบียน ServiceProvider:
// 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) โปรดดูไฟล์ใบอนุญาตสำหรับข้อมูลเพิ่มเติม