极简模式的分析需求
极简模式是按照行为单位, 把一行日志打包作为一个字段上传到日志服务. 对于用户而言, 极简模式避免了去配置复杂的正则式, 极大的简化了日志接入云端的流程, 上传后只需要开启全文索引即可完成搜索.
但是, 在某些场景下, 我们需要对日志中的某些部分进行分析, 例如分析日志中的 ip, 这种情况下, 就需要通过 SQL 先完成一些字段提取工作, 然后再进行分析.
普通文本的分析
分析 IP
例如下图中的 Nginx 访问日志. 打包到了一个 content 字段中.
当我们需要分析日志中的 IP 归属地的时候, 首先要从这一串文本中提取出 IP 日志. 为了提取 IP 地址, 我们有这些手段可以使用:
通过正则式函数.
通过 JSON 函数
通过 url 函数
上边的文本, 不是 JSON 也不是 url, 而是一串普通文本, 那么我们只能用正则式函数进行提取
* | select content, regexp_extract(content, '(\d+\.\d+\.\d+\.\d+)',1)
通过以上函数, 可以从 content 中提取 ip:
IP 提取完成之后, 接下来就可以 IP 函数分析用户的地理位置信息了.
例如分析省份:
* | select ip_to_province(regexp_extract(content, '(\d+\.\d+\.\d+\.\d+)',1)) as ip , count(1) as count group by ip
分析 URL 参数
在 nging 日志中, 如果我们想要提取 url 中的 type 这个参数, 需要用到通过 url 函数
- * | select url_extract_path(request),request from
- (
- select regexp_extract(content, 'GET\s+([\S]+)',1) as request from log
- )
从图中可以看出, 成功提取了 type 这个参数, url 还有 N 多好玩的用户, 例如提取域名, url 路径等, 期待你的挖掘.
日志上云进阶
日志服务 (Log Service, 简称 LOG / 原 SLS) 是针对实时数据一站式全托管服务, 在阿里集团经历大量大数据场景锤炼而成.
提供日志类数据采集, 智能查询分析, 消费与投递等功能, 全面提升海量日志处理 / 分析能力.
日志服务用户手册, 最完整的资料
日志服分析试用 Demo,Nginx 日志, CDN 日志, DDOS 日志, SLB 日志 Demo,grafana,DataV 大屏 Demo
5 分钟搭建网站实时分析: Grafana + 日志服务实战
以下 5 个子帐号供试用, 请随机选择一个登录, 登录地址, 若登录不成功请换一个子帐号尝试:
用户名 | 密码 |
---|---|
sls_reader1@1654218965343050 | pnX-32m-MHH-xbm |
sls_reader2@1654218965343050 | pnX-32m-MHH-xbm |
sls_reader3@1654218965343050 | pnX-32m-MHH-xbm |
sls_reader4@1654218965343050 | pnX-32m-MHH-xbm |
sls_reader5@1654218965343050 | pnX-32m-MHH-xbm |
来源: https://yq.aliyun.com/articles/695653