一搭/mtr-database

在数据库中批量处理并存储MTR数据,带有仪表盘

1.1.0 2024-03-26 11:15 UTC

This package is auto-updated.

Last update: 2024-08-26 12:06:22 UTC


README

带有代理部署的MTR集中监控仪表盘

Latest Stable Version License

概要

DEMONSTRATION

INTRODUCTION

易于部署代理并收集MTR数据到数据库,通过带有图表的Web仪表盘进行监控。

Basic Flow

REQUIREMENTS

此库需要以下内容

  • MTR库(CLI)0.9+
  • PHP 5.4.0+|7.0+

INSTALLATION

下载

Composer安装

使用Composer安装是最简单的方式,带有自动安装器

composer create-project --prefer-dist yidas/mtr-database

Wget安装

您可以在发布中查看,以获取带有版本的包,例如

$ wget https://github.com/yidas/mtr-database-php/archive/master.tar.gz -O mtr-database-phpi.tar.gz

下载后,解压缩包

$ tar -zxvf mtr-database-php.tar.gz

SETUP

数据库设置

下载后,您可以开始设置config.inc.php以使用您的数据库连接

...
    'database' => [
        'host' => '',
        'driver'    => 'mysql',
        'database'  => 'mtr_database',
        'username'  => '',
        'password'  => '',
        'table' => 'records',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
    ],
...

然后运行install.php,它将帮助您安装数据库和表

$ php install.php
Installation completed

代理设置与启动

代理的默认设置可以在config.inc.php中进行配置

...
    'general' => [
        'mtrCmd' => 'mtr',
        'timezone' => 'Asia/Taipei',
        'category' => 'agent-01',   // Category mark for distinguishing
    ],
    'mtr' => [
        'host' => 'your.host',
        'period' => 10,     // Minute
        'count' => 60,      // Report-cycles
        'tcp' => false,     // TCP mode
        'port' => 443,      // Port number for TCP mode
    ],
    'api' => [
        'key' => '',            // API key must be the same bewteen agent and collector
        'agent' => [
            'enabled' => false, // To send MTR data to collector via API Agent (deafult is database)
            'reportUrl' => '',  // Collector's API URL
        ],
        'collector' => [
            'enabled' => false, // To receive MTR data from agent via API
        ],
    ],
...

设置后,您可以运行launch.php,并在crontab中使用您选择的参数

$php launch.php
Process success

将crontab设置为/etc/cron.d/mtr-database

# Launch and record MTR every 10 miniutes by default ('period' => 10)
*/10 * * * * root php /var/www/html/mtr-database/launch.php >/dev/null 2>&1

# Purge data before 90 days by default (Optional)
00 00 * * * root php /var/www/html/mtr-database/purge.php >/dev/null 2>&1

默认批量周期设置为10分钟,因此我们可以设置每10分钟执行一次批量操作。

收集器与代理的API

有关介绍结构图,最好通过API(默认为数据库)收集代理的MTR数据。
收集器的端点路径(reportUrl)是/collect.php,您可以将项目放置在Web路径中,例如/var/www/html/mtr-database/index.php

收集器的配置,需要数据库设置

    'api' => [
        'key' => 'your-own-api-key',            // API key must be the same bewteen agent and collector
        'agent' => [
            'enabled' => false, // To send MTR data to collector via API Agent (deafult is database)
            'reportUrl' => '',  // Collector's API URL
        ],
        'collector' => [
            'enabled' => true,  // To receive MTR data from agent via API
        ],
    ],
    'database' => [

代理的配置

    'api' => [
        'key' => 'your-own-api-key',            // API key must be the same bewteen agent and collector
        'agent' => [
            'enabled' => true, // To send MTR data to collector via API Agent (deafult is database)
            'reportUrl' => 'https://your.host/mtr-database/collect.php',  // Collector's API URL
        ],
        'collector' => [
            'enabled' => false, // To receive MTR data from agent via API
        ],
    ],

仪表盘

MTR仪表盘的端点路径是/index.php,默认情况下是禁用的,您可以将项目放置在Web路径中,例如/var/www/html/mtr-database/index.php

enabled打开,并在config.ini.php中设置用户名和密码进行认证,需要数据库设置

...
    'dashboard' => [
        'enabled' => true,
        'username' => '',
        'password' => '',
        'categories' => [''],   // Category list for selection
    ],
    'database' => [
...

categories将允许您通过分类设置查询特定数据或通过默认空白值查询所有数据。

ADVANCED USAGE

代理配置

配置文件config.inc.php允许您设置MTR启动的默认设置。但是,您也可以在要运行的命令中立即指定参数。

主机

主机参数允许您使用-h --host参数指定要跟踪的目标主机

php launch.php --host="yourhost.local"

周期

周期参数使用-p --period参数分配cron间隔之间的分钟数

# Launch and record MTR every 5 miniutes
*/5 * * * * root php /var/www/html/mtr-database/launch.php --period=5 >/dev/null 2>&1

此外,计数参数将根据周期设置在间隔之间分配发送计数,使用-c --report-cycles参数

# Launch and record MTR every 1 miniutes, and each report will send 10 count (send every 6 seconds)
*/1 * * * * root php /var/www/html/mtr-database/launch.php --period=1 --report-cycles=10 >/dev/null 2>&1

TCP

TCP参数允许您使用指定端口的MTR TCP模式,-T --tcp用于启用TCP模式,-P --port用于设置端口

php launch.php --tcp -port=443

分类

分类允许对每个监控命令进行分类,支持从仪表盘进行过滤,也可以通过使用--category参数实现

php launch.php --category="Monitor-A1"

清除

运行purge.php将删除超过给定天数的旧记录。您可以使用-d --days参数设置(默认为90天)

00 00 * * * root php /var/www/html/mtr-database/purge.php --days=30 >/dev/null 2>&1

REFERENCES