README.md

laravel-monitor

Пакет для отслеживания сбоев в ларавел-проектах

https://gitflic.ru/project/adb/laravel-pulse

Установка

composer require adb/laravel-pulse

Публикация конфигурации

php artisan vendor:publish --tag=monitor

Настройка перечня storage (дисков) для проверки доступности в .env файле

Значения по умолчанию:

DISCS_FOR_MONITOR=local,input1

Добавьте свои названия storage из config/filesystems.php

Настройка prefix, middleware для роутов.

Значения по умолчанию:

'prefix' => 'api/monitor',
'middleware' => ['api', 'monitor.auth.api'],
'as' => 'api.monitor.',

Настройка компонентов для тестов.

'config' => [
    MonitorEnum::PROJECT => true, // laravel and php
    MonitorEnum::DB => true, // connect db
    MonitorEnum::REDIS => true, // redis
    MonitorEnum::NODE => false, // node and npm
    MonitorEnum::HORIZON => true, // horizon
    MonitorEnum::STORAGES => false, // диски
    MonitorEnum::SECURITY => false, // проверка пакетов
],

Настройка перечня баз для проверки соединений.

Значения по умолчанию:

'connections_db'  => [
'mongodb'
],

'connections_redis'  => [
'default'
],

Добавьте свои значения.

Команда

php artisan monitor:info - запуск всех тестов согласно настройки выше.

Запуск теста для конкретного компонента:

php artisan monitor:info project

php artisan monitor:info db

php artisan monitor:info node

php artisan monitor:info redis

php artisan monitor:info horizon

php artisan monitor:info storages

php artisan monitor:info security

php artisan monitor:info > /tmp/monitor.json запись в файл для заббикса или прописать в Kernel.php нужный таймаут: $schedule->command(‘monitor:info’)->everyThirtyMinutes()->sendOutputTo(‘/tmp/monitor.json’);

Запись результатов в БД

Для активации записи в БД, поставьте true и примените миграцию (для sql бд) Так же это активирует api для выдачи самого последнего результата

'save_to_db' => false,

API

/api/monitor/monitor

авторизация по bearer token, прописать его как API_TOKEN в env

Структура json

{
    "project": {
        "php": "8.3.30",
        "laravel": "10"
    },
    "db": {
        "mongodb": {
            "driver": "mongodb",
            "host": "localhost",
            "name": "mongodb",
            "db": "database",
            "success": true
        }
    },
    "redis": {
        "default": {
            "redis_name": "default",
            "redis_version": "7.4.2",
            "os": "Linux 6.10.14-linuxkit aarch64",
            "port": "6379",
            "host": "redis",
            "success": true
        }
    },
    "horizon": {
        "success": false
    },
    "storages": {
        "local": true,
        "input": true,
        "archive": true,
    },
    "security": {
        "erusev\/parsedown": {
            "version": "1.7.1",
            "time": "2018-03-08T01:11:30+00:00",
            "advisories": [
                {
                    "title": "Class-Name Injection",
                    "link": "https:\/\/github.com\/erusev\/parsedown\/issues\/699",
                    "cve": "CVE-2019-10905"
                }
            ]
        }
    }
}

Описание
Пакет для отслеживания сбоев в ларавел-проектах
Конвейеры
0 успешных
0 с ошибкой
Разработчики