log reader/query/storage 日志查询工具
log reader/query/storage 日志查询工具
log parser/ana
http://a.add.my/log_storage/
访问 GUI 时触发:ana.php 一次性分析处理所有日志
lv1= lv2= type=
log reader config
已经内联分析,查询时即执行 ana。
---------- local:
<?php
$g_config["pwd"] = "root";
/*日志解析路径*/
$g_config['item'] = [
[
"api" => "mynote_log", //模块名称
"path" => "E:/uninote/mynote/basic/runtime/seaslog/default" //实际情况日志路径
],
[
"api" => "mynote_login",
"path" => "E:/uninote/mynote/basic/runtime/seaslog/login"
],
[
"api" => "mynote_request",
"path" => "E:/uninote/mynote/basic/runtime/logs/logs.txt"
]
];
---------- online:
<?php
$g_config["pwd"] = "root123.";
/*日志解析路径*/
$g_config['item'] = [
[
"api" => "mynote_log", //模块名称
"path" => "/home/www/mynote/basic/runtime/seaslog/default" //实际情况日志路径
],
[
"api" => "mynote_login",
"path" => "/home/www/mynote/basic/runtime/seaslog/login"
],
[
"api" => "mynote_request",
"path" => "/home/www/mynote/basic/runtime/logs/logs.txt"
]
];
lv1= lv2= type=
log query 部署
log reader config
nginx config: E:\back\git\mynote\online\nginx\vhost\additional_item_82.conf
sql/*.sql 初始化
lv1= lv2= type=
log query design
记录、分析、查看
user mynote_login mynote_request mynote_log
筛选(filter):按人、时间
request.id 显示在头部(红色),log.id 显示在每条日志中(绿色区域)
日志内容显示在蓝色区域
post参数显示在黄色区域,可以直接复制到api/tests,进行调试
过滤条件(每张表可能都有过滤字段):
uid, 手机号、reqnum、时间段
message like
uri
请求消耗时间 > 200ms
要点:
查询的主要脉络应该是request表,但request可能不和任何user、login(无登录记录)、log(此request无任何日志输出)表关联
查询结果排序:
按request id排序,则无法按照日志发生的先后顺序显示;
按log id排序,因为有的request无log,因此此类request显示有问题。
解决方案:
lv1= lv2= type=todo
cyb:使用日志时间排序
IFNULL(log.datetime,r.datetime) AS 记录时间,
lv1=mynote lv2= type=todo
每次变换reqnum,自动插入分隔符号
每个request的相同信息,都显示在此分隔符中:
user 相关、请求相关(时间、uri。。)
根据sessionid找user时,不能简单的做表关联,需要根据时间来找到唯一的用户,或者没有用户
lv1=mynote lv2= type=todo
日志内容读取限制
不要超过700字节(可配置),超过点可以点击链接查看详细内容
lv1=mynote lv2= type=
记录上次的request id;下次刷新时只取新的。
lv1=mynote lv2= type=
请求时间
1、request表加入请求时间字段,同样毫秒级别;建立索引
2、不传参数,默认只查询30分钟内
misc todo
lv1= lv2= type=todo
多余行不要
<!-- <tr>-->
<!-- <td colspan="--><?//= $field_num; ?><!--"></td>-->
<!-- </tr>-->
api请求URL(->请求URL) 等字段名称优化
这个没有日志:
http://dev.rongyipiao.com/link/take/lib/php/upload.php?guid=1535876647528
lv1=mynote lv2= type=todo
log_storage.php 代码分离
controller & view
view只是模板,只负责填数据,除了foreach,其他控制模块尽量都不使用
仿照db differ
从mynote移动到additional项目
lv1= lv2= type=todo
查看时触发刷新日志
ana.php 一次性分析处理所有日志
lv1= lv2= type=todo
分析时数据库出错要报错。
比如:insert失败(字段长度不够、类型不匹配、字段缺失)、连接出错
lv1= lv2= type=todo
三张表都换为北京时间
lv1= lv2= type=todo
post参数显示验证
验证所有utf8编码都能够正常解析、显示
lv1= lv2= type=todo
这里不要默认填时间
2 点击重置也没有效果
手动删除时间后,外面的显示还有问题:
重置时恢复半小时
lv1= lv2= type=
日志内容最大高度设置
配置修改,点击保存:修改到 url,并重新加载页面
SHA-1: 7d0fa6905ea6588accc9f548299a909dfd7b73e4
* 日志内容最大高度(不设置则不限制高度)