一搭 / mtr-database
在数据库中批量处理并存储MTR数据,带有仪表盘
Requires
- php: >=5.4.0
README
带有代理部署的MTR集中监控仪表盘
概要
DEMONSTRATION
INTRODUCTION
易于部署代理并收集MTR数据到数据库,通过带有图表的Web仪表盘进行监控。
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