Files
ulthon_admin/database/migrations/20260726100001_nginx_log_position.php

29 lines
1.7 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
use think\migration\Migrator;
/**
* nginx 日志分析 - 文件读取位置表
*
* 记录每个被解析日志文件的 inode/offset/最近读取时间/失败计数等增量读取状态。
*/
class NginxLogPosition extends Migrator
{
public function change()
{
$table = $this->table('nginx_log_position')
->setComment('nginx 日志文件读取位置(增量读取状态)')
->addColumn('file_path', 'string', ['limit' => 500, 'null' => false, 'comment' => '日志文件绝对路径'])
->addColumn('inode', 'biginteger', ['default' => 0, 'comment' => '文件 inode用于检测日志轮转', 'signed' => false])
->addColumn('offset', 'biginteger', ['default' => 0, 'comment' => '上次读取到的字节偏移', 'signed' => false])
->addColumn('last_read_time', 'integer', ['limit' => 11, 'default' => 0, 'comment' => '上次读取时间戳', 'signed' => false])
->addColumn('last_line_hash', 'string', ['limit' => 32, 'default' => '', 'comment' => '上次最后一行的 md5 哈希(容错校验)'])
->addColumn('parse_fail_count', 'integer', ['limit' => 11, 'default' => 0, 'comment' => '解析失败累计次数', 'signed' => false])
->addColumn('parse_fail_samples', 'text', ['null' => true, 'comment' => '解析失败样本行(最多保留若干条)'])
->addColumn('create_time', 'integer', ['limit' => 11, 'comment' => '创建时间戳', 'signed' => false])
->addColumn('update_time', 'integer', ['limit' => 11, 'comment' => '更新时间戳', 'signed' => false])
->addIndex(['file_path'], ['unique' => true, 'name' => 'uniq_file_path'])
->create();
}
}