我好久没有在这里分享我最近的一些体验。最近我看到了EdgeOne的征文活动,作为一名老用户,我觉得应该也要好好宣传一下EdgeOne的某一个产品。我是从个人版/基础版内测期间就开始使用EdgeOne,这半年来见证了EdgeOne的不断进步和完善,整体来说,我对腾讯云的新一代CDN非常满意。
首先,让我们来了解一下EdgeOne是什么。边缘安全加速平台 EO(Tencent cloud EdgeOne,简称为 EdgeOne)EdgeOne是腾讯云推出的一款全球分布式边缘加速产品,致力于提供更快、更稳定、更安全的网络加速服务。通过在全球部署的边缘节点,EdgeOne能够将用户请求的内容缓存到离用户最近的节点上,从而加快内容的传输速度,提高用户体验。
在功能特点方面,EdgeOne提供了丰富的功能,满足了不同场景下的需求,DIY性质不亚于友商网宿CDN Pro。EdgeOne的速度非常快,能够大大提高网站的加载速度和响应时间,从而提升用户体验。
作为一名老用户,我在使用EdgeOne的过程中有很多感受和看法。首先,我觉得EdgeOne的产品体验越来越好,功能越来越完善,也有认真倾听整体用户心声,尽可能满足用户来实现或者说开放某些功能。EdgeOne的价格也比较合理,能够满足不同用户的需求。
这不前段时间Edgeone开放了实时日志,下面来说一下EdgeOne实时日志来生成访客信息,下面也懒得废话了 直接进入主题,后续也会更新EdgeOne监控大屏的
注意
怎么样快速看到日志? 文档也写了 我建议使用CLS的话 也方便投递到第三方!
注意实时日志是增值服务!!!会有好几个计费项目!包含TEO增值费用和CLS费用 基本上不费钱的
注意实时日志是增值服务!!!会有好几个计费项目!包含TEO增值费用和CLS费用 基本上不费钱的
注意实时日志是增值服务!!!会有好几个计费项目!包含TEO增值费用和CLS费用 基本上不费钱的
记得购买CLS套餐包!!! 记得购买CLS套餐包!!! 记得购买CLS套餐包!!!
重要的社区说三遍
计费项目
计费项目
他是属于增值服务
计费见 https://cloud.tencent.com/document/product/1552/94161
日志也需要计费
具体见 https://cloud.tencent.com/document/product/614/78045
新建流程
但是官方预制的并不全面
哪里全面搞不懂一点 看了看EO的语句和参考CDN的计算方法 查了点资料写了一下
大概就是这样样子
那我们准备进入接入流程
首先打开Edgeone控制台
选择实时日志
新建名字和类型 选择要投递的域名
建议选择
通用
建议选择 | 字段名称 | 数据类型 | 说明 |
---|---|---|---|
是 | String | 默认选择 | 客户端请求的唯一标识 ID |
是 | EdgeServerID | String | 客户端访问到的 EdgeOne 服务器唯一标识 |
是 | EdgeServerIP | String | DNS 解析 Host 得到的 EdgeOne 服务器 IP 地址 |
是 | EdgeSeverRegion | String | 响应的EdgeOne节点IP解析出来的国家,使用ISO-3166-2标准 |
是 | LogTime | String | 日志记录的时间,ISO-8601 格式 |
是 | EdgeEndTime | String | 完成响应客户端请求的时间,使用ISO-8601 |
是 | ParentRequestID | String | 父请求的 RequestID(若该请求是使用边缘函数发起的,否则为“- |
客户端信息
建议选择 | 字段名称 | 数据类型 | 说明 |
---|---|---|---|
是 | ClientIP | String | 客户端请求的唯一标识 ID客户端 IP |
是 | ClientRegion | String | 客户端 IP 解析出来的国家/地域。格式标准:ISO-3166-2 |
是 | ClientState | String | 客户端IP解析出国家下一级的行政划分 |
是 | ClientISP | String | 通过客户端访问ip解析出,运营商信息,如果为无即为Other。 |
是 | ClientDeviceType | String | 客户端请求设备类型 |
请求信息
建议选择 | 字段名称 | 数据类型 | 说明 |
---|---|---|---|
是 | RequestTime | String | 客户端请求时间,时区:UTC +00:00,格式标准:ISO-8601 |
是 | RequestHost | String | 客户端请求的 Host |
是 | RequestBytes | Int | 客户端请求的大小,单位:Byte |
是 | RequestMethod | String | 客户端请求的 HTTP Method |
是 | RequestUrl | String | 客户端请求的 URL |
是 | RequestUrlQueryString | String | 客户端请求的 URL 携带的查询参数 |
是 | RequestUA | String | 客户端请求的 User-Agent 信息 |
是 | RequestRange | String | 客户端请求的 Range 参数信息 |
是 | RequestReferer | String | 客户端请求的 Referer 信息 |
是 | RequestProtocol | String | 客户端请求的应用层协议:HTTP/1.0,HTTP/1.1,HTTP/2.0,HTTP/3,WebSocket |
是 | RemotePort | Int | TCP 协议下客户端与节点建立连接的端口,若无则为 – |
是 | RequestSSLProtocol | String | 客户端的使用的SSL(TLS)协议,若取值为“-”,则没有请求没有SSL握手 |
通用
建议选择 | 字段名称 | 数据类型 | 说明 |
---|---|---|---|
是 | OriginDNSResponseDuration | Double | 接收到源站DNS解析响应的耗时,若没有回源,记录为”-1″,单位:ms |
是 | OriginIP | String | 回源访问的源站IP,若没有回源,记录为”-“ |
是 | OriginRequestHeaderSendDuration | Double | 向源站发送请求头的耗时,一般是0,若没有回源,记录为”-1″,单位:ms |
是 | OriginSSLProtocol | String | 请求源站使用的 SSL 协议版本,若没有回源,记录为”-“ |
是 | OriginTCPHandshakeDuration | Double | 请求源站时,完成TCP握手的耗时,若没有回源,记录为”-1″,单位:ms;注意:当连接重复利用时为0 |
是 | OriginTLSHandshakeDuration | Double | 请求源站时,完成TLS握手的耗时,若没有回源,记录为”-1″,单位:ms;注意:当连接重复利用时为0 |
是 | OriginResponseHeaderDuration | Double | 向源站发送请求头到接受到源站响应头的耗时,若没有回源,记录为”-1″,单位:ms |
是 | OriginResponseStatusCode | Int | 源站响应状态码,若没有回源,记录为”-1″ |
建议选择 | 字段名称 | 数据类型 | 说明 |
---|---|---|---|
是 | EdgeCacheStatus | String | 客户端请求是否命中节点缓存:HIT(资源由节点缓存提供),MISS(资源可缓存,但由源站提供),Dynamic(资源不可缓存) |
是 | EdgeResponseStatusCode | Int | 节点响应返回给客户端的状态码 |
是 | EdgeResponseBytes | Int | 节点响应返回给客户端的大小,单位:Byte |
是 | EdgeResponseTime | Int | 从 EdgeOne 接收到客户端发起的请求开始,到客户端接收到服务器端的响应结束,这个过程所耗费的时间;单位:ms |
是 | EdgeInternalTime | Int | 从 EdgeOne 接收到客户端发起的请求开始,到响应给客户端的第一个字节,整一个过程的耗时;单位:ms |
是 | EdgeResponseBodyBytes | Int | 节点响应返回给客户端的body大小,单位:Byte |
安全防护
建议选择 | 字段名称 | 数据类型 | 说明 |
---|---|---|---|
否 | BotClassAttacker | String | 基于近期IP情报数据,请求客户端IP有攻击(如 DDoS,高频恶意请求、站点攻击等)行为的风险等级:”high” 对应高风险,”medium” 对应中等风险,”low” 对应一般风险,”-” 对应无历史数据 |
否 | BotClassProxy | String | 基于近期IP情报数据,请求客户端IP开放可疑代理端口、并且被用作网络代理(包括秒拨IP)的风险等级:”high” 对应高风险,”medium” 对应中等风险,”low”对应一般风险,”-” 对应无历史数据 |
否 | BotClassScanner | String | 基于近期IP情报数据,请求客户端IP有攻击已知漏洞的扫描器行为的风险等级:”high” 对应高风险,”medium” 对应中等风险,”low” 对应一般风险,”-” 对应无历史数据 |
否 | BotClassAccountTakeOver | String | 基于近期IP情报数据,请求客户端IP有恶意破解登陆,发起账号接管攻击的风险等级:”high” 对应高风险,”medium” 对应中等风险,”low” 对应一般风险,”-” 对应无历史数据 |
否 | BotClassMaliciousBot | String | 基于近期IP情报数据,请求客户端IP有恶意爬虫、刷量和暴力破解行为的风险等级:”high” 对应高风险,”medium” 对应中等风险,”low” 对应一般风险,”-” 对应无历史数据 |
需要注意的是根据《中华人民共和国网络安全法》根据该法第二十一条,网络运营者应按照规定留存相关的网络日志不少于六个月,安全起见在这里建议大于等于180天,也希望按照相关法律法规使用该功能
然后访问一下你网站,等待推送日志(5分钟左右延迟)
查看日志是否成功 如上图有数据就是没问题的
准备接入报表了
打开 CLS
https://console.cloud.tencent.com/cls/dashboard
搜索EdgeOne
复制到把他们俩新的表
目前还不能直接复制到新表,到时候我会找相关CLS产品侧处理一下,到时候就可以直接是允许复制系统模板的子模块,目前其他CLS的子模块可以直接复制或者说修改模板,EdgeOne 现阶段好像还不支持,只可以一个一个点击查看来手动复制,非常麻烦,
新建一个模板,先基本架构解决一下
当然也可以借鉴以下模板
只需要选择对应字段替换
具体替换字符可以看关键词来和我上面的字段来替换
可能会出现部分查询失败的问题,这个是因为语句不一样或者说算法不一样导致的,有的要进去重新改一下
粘贴合适的语法 选择合适的现实格式!
复制在编辑方便一点方便计划和排版位置!
我只补充 系统中不全面的!!!!
我们可以手动添加一下sql语句代码 其中 –是注释 可以不用要
宽带类
其中平均下载速度是自带的在这里就不过多解释了
实时带宽
代码语言:sql
复制
* | SELECT
SUM(EdgeResponseBytes)/300.00*8 AS "实时带宽",
HISTOGRAM(CAST(__TIMESTAMP__ AS TIMESTAMP), INTERVAL 5 MINUTE) AS "时间"
GROUP BY "时间"
ORDER BY "时间" DESC
LIMIT 10000
--LIMIT 10000,获得最近的10000个5分钟间隔的数据点,300.00然后乘以8。
--将字节转换为比特(8比特=1字节),并确保得到的结果是以Kbps(每秒千比特)为单位的
--"实时"的定义:那么你最多只能得到5分钟前的"实时"数据更新一次
峰值宽带
代码语言:sql
复制
* | SELECT
EdgeServerID,
MAX(EdgeResponseBytes * 1.0) AS "峰值宽带"
GROUP BY
EdgeServerID
ORDER BY
"峰值宽带"
-- 找出每个EdgeServerID的EdgeResponseBytes的最大值,这可以被视为"峰值宽带"
总流量
代码语言:sql
复制
* | SELECT
SUM(EdgeResponseBytes * 1.0) AS "总流量"
-- 计算EdgeResponseBytes的总和,这可以被视为"总流量"。
缓存命中率
针对目录/文件测试指定缓存率
代码语言:sql
复制
* | SELECT
ROUND(
SUM(CASE WHEN EdgeCacheStatus LIKE '%hit%' THEN 1.00 ELSE 0.00 END) /
CAST(COUNT(*) AS DOUBLE) * 100,
1
) AS "缓存命中率"
WHERE
(RequestUrl LIKE '/A%' OR RequestUrl LIKE '/B%' OR RequestUrl LIKE '/%.js OR RequestUrl LIKE '/%.css')
AND EdgeResponseStatusCode < 400
-- 为了计算特定请求URL模式(以/A开始,以/B开始,或任何.js文件,还有任何.css文件)的缓存命中率
-- 同时只考虑那些返回的HTTP状态码小于400的请求
因为缓存是大部分情况下是静态,CDN是计算整体对于非缓存文件来说不公平会降低整体缓存率
请求协议
TLS请求协议
代码语言:sql
复制
* | SELECT
COUNT(*) AS cnt,
"RequestProtocol",
HISTOGRAM(__TIMESTAMP__, INTERVAL ${__interval}) AS analytic_time
WHERE
"RequestProtocol" IN (
SELECT "RequestProtocol"
GROUP BY "RequestProtocol"
ORDER BY COUNT(*) DESC
LIMIT 5
)
GROUP BY
analytic_time, "RequestProtocol"
或者
代码语言:sql
复制
* | SELECT
CASE
WHEN REGEXP_LIKE(RequestSSLProtocol, 'TLS1.0') THEN 'TLS1.0'
WHEN REGEXP_LIKE(RequestSSLProtocol, 'TLS1.1') THEN 'TLS1.1'
WHEN REGEXP_LIKE(RequestSSLProtocol, 'TLS1.2') THEN 'TLS1.2'
WHEN REGEXP_LIKE(RequestSSLProtocol, 'TLS1.3') THEN 'TLS1.3'
ELSE '其他'
END AS "TLS握手情况",
SUM(EdgeResponseBytes) AS "总次数"
GROUP BY "TLS握手情况"
ORDER BY "总次数" DESC
LIMIT 20
-- 获取前指定TLS请求协议
HTTP协议
代码语言:sql
复制
* | SELECT
COUNT(*) AS cnt,
"RequestProtocol",
HISTOGRAM(__TIMESTAMP__, INTERVAL ${__interval}) AS analytic_time
WHERE
"RequestProtocol" IN (
SELECT "RequestProtocol"
GROUP BY "RequestProtocol"
ORDER BY COUNT(*) DESC
LIMIT 5
)
GROUP BY
analytic_time, "RequestProtocol"
-- 获取前指定TLS请求协议
或者
代码语言:sql
复制
* | SELECT
CASE
WHEN REGEXP_LIKE(RequestProtocol, 'HTTP/1.0') THEN 'HTTP/1.0'
WHEN REGEXP_LIKE(RequestProtocol, 'HTTP/1.1') THEN 'HTTP/1.0'
WHEN REGEXP_LIKE(RequestProtocol, 'HTTP/2.0') THEN 'HTTP/1.0'
WHEN REGEXP_LIKE(RequestProtocol, 'HTTP/3.0') THEN 'HTTP/1.0'
ELSE '其他'
END AS "HTTP协议",
SUM(EdgeResponseBytes) AS "总次数"
GROUP BY "HTTP协议"
ORDER BY "总次数" DESC
LIMIT 20
-- 获取前指定TLS请求协议
获取Referer
并且忽略?以后参数
代码语言:sql
复制
* | SELECT
REGEXP_REPLACE("RequestReferer", '\?.*$', '') AS "RequestReferer",
COUNT(*) AS requests
WHERE
"RequestReferer" IS NOT NULL
GROUP BY
"RequestReferer"
ORDER BY
requests DESC
-- 获取Referer 并且忽略?以后参数
取用户浏览器
获取用户浏览器 (不太全面大部分都是Chrome内核·一定要在后面)
代码语言:sql
复制
* | SELECT
CASE
WHEN strpos(lower(RequestUA), 'edge') > 0 THEN 'Microsoft Edge'
WHEN strpos(lower(RequestUA), 'firefox') > 0 THEN 'Firefox'
WHEN strpos(lower(RequestUA), 'ie') > 0 THEN 'Internet Explorer'
WHEN strpos(lower(RequestUA), 'opera') > 0 THEN 'Opera'
WHEN strpos(lower(RequestUA), 'brave') > 0 THEN 'Brave'
WHEN strpos(lower(RequestUA), 'vivaldi') > 0 THEN 'Vivaldi'
WHEN strpos(lower(RequestUA), 'uc') > 0 THEN 'UC Browser'
WHEN strpos(lower(RequestUA), 'via') > 0 THEN 'via Browser'
WHEN strpos(lower(RequestUA), 'mqqbrowser') > 0 THEN 'QQ Browser'
WHEN strpos(lower(RequestUA), 'maxthon') > 0 THEN 'Maxthon'
WHEN strpos(lower(RequestUA), '360SE') > 0 THEN '360 Browser'
WHEN strpos(lower(RequestUA), 'torb') > 0 THEN 'Tor Browser'
WHEN strpos(lower(RequestUA), 'waterfox') > 0 THEN 'Waterfox'
WHEN strpos(lower(RequestUA), 'palemoon') > 0 THEN 'Pale Moon'
WHEN strpos(lower(RequestUA), 'seamonkey') > 0 THEN 'SeaMonkey'
WHEN strpos(lower(RequestUA), 'k-melon') > 0 THEN 'K-Melon'
WHEN strpos(lower(RequestUA), 'lunascape') > 0 THEN 'Lunascape'
WHEN strpos(lower(RequestUA), 'comodo dragon') > 0 THEN 'Comodo Dragon'
WHEN strpos(lower(RequestUA), 'srware iron') > 0 THEN 'SRWare Iron'
WHEN strpos(lower(RequestUA), 'blackberry') > 0 THEN 'BlackBerry Browser'
WHEN strpos(lower(RequestUA), 'baidu') > 0 THEN 'Baidu Browser'
WHEN strpos(lower(RequestUA), 'sogou') > 0 THEN 'Sogou Explorer'
WHEN strpos(lower(RequestUA), 'tencent') > 0 THEN 'Tencent Traveler'
WHEN strpos(lower(RequestUA), 'mibrowser') > 0 THEN 'Mi Browser'
WHEN strpos(lower(RequestUA), 'huawei') > 0 THEN 'Huawei Browser'
WHEN strpos(lower(RequestUA), 'micromessenger') > 0 THEN 'WeChat Browser'
WHEN strpos(lower(RequestUA), 'wxwork') > 0 THEN 'WeCom Browser'
WHEN strpos(lower(RequestUA), 'vivo') > 0 THEN 'Vivo Browser'
WHEN strpos(lower(RequestUA), 'oppo') > 0 THEN 'OPPO Browser'
WHEN strpos(lower(RequestUA), 'chromium') > 0 THEN 'Chromium'
WHEN strpos(lower(RequestUA), 'chrome') > 0 THEN 'Chrome'
ELSE '未知'
END AS Browser,
COUNT(*) AS Visits
GROUP BY
Browser
ORDER BY
Visits DESC
-- 列出浏览器UA关键词
列出用户 操作系统/环境 (支持华为鸿蒙OS 小米澎湃官方承认基于Android所以说在这里就不在额外拿出来计算成澎湃OS)
代码语言:sql
复制
* | SELECT
CASE
WHEN REGEXP_LIKE(RequestUA, 'Windows NT 10.1') THEN 'Windows 11'
WHEN REGEXP_LIKE(RequestUA, 'Windows NT 10.0') THEN 'Windows 10'
WHEN REGEXP_LIKE(RequestUA, 'Windows NT 6.3') THEN 'Windows 8.1'
WHEN REGEXP_LIKE(RequestUA, 'Windows NT 6.2') THEN 'Windows 8'
WHEN REGEXP_LIKE(RequestUA, 'Windows NT 6.1') THEN 'Windows 7'
WHEN REGEXP_LIKE(RequestUA, 'Windows NT 5.1') THEN 'Windows XP'
WHEN REGEXP_LIKE(RequestUA, 'idm') THEN 'IDM'
WHEN REGEXP_LIKE(RequestUA,'iPhone|iPad|iPod') THEN 'IOS'
WHEN strpos(lower(RequestUA), 'chromiumos') > 0 THEN 'ChromiumOS'
WHEN strpos(lower(RequestUA), 'netbsd') > 0 THEN 'NetBSD'
WHEN REGEXP_LIKE(RequestUA,'Mac') THEN 'MAC OS'
WHEN REGEXP_LIKE(RequestUA,' Ubuntu') THEN ' Ubuntu'
WHEN REGEXP_LIKE(RequestUA,' python') THEN ' python'
WHEN REGEXP_LIKE(RequestUA,'bot') THEN 'bot'
WHEN REGEXP_LIKE(RequestUA,'curl') THEN 'curl'
WHEN REGEXP_LIKE(RequestUA,'CFNetwork') THEN 'CFNetwork'
WHEN REGEXP_LIKE(RequestUA,'BitComet') THEN 'BitComet'
WHEN REGEXP_LIKE(RequestUA,'RSS') THEN 'RSS'
WHEN REGEXP_LIKE(RequestUA,'Clash') THEN 'Clash'
WHEN REGEXP_LIKE(RequestUA, 'Android 10; HarmonyOS') THEN 'Harmony OS 2'
WHEN REGEXP_LIKE(RequestUA, 'Android 11; HarmonyOS') THEN 'Harmony OS 3'
WHEN REGEXP_LIKE(RequestUA, 'Android 12; HarmonyOS') THEN 'Harmony OS 4'
WHEN REGEXP_LIKE(RequestUA, 'Android 15') THEN 'Android 15'
WHEN REGEXP_LIKE(RequestUA, 'Android 14') THEN 'Android 14'
WHEN REGEXP_LIKE(RequestUA, 'Android 13') THEN 'Android 13'
WHEN REGEXP_LIKE(RequestUA, 'Android 12') THEN 'Android 12'
WHEN REGEXP_LIKE(RequestUA, 'Android 11') THEN 'Android 11'
WHEN REGEXP_LIKE(RequestUA, 'Android 10') THEN 'Android 10'
WHEN REGEXP_LIKE(RequestUA, 'Android 9') THEN 'Android 9'
WHEN REGEXP_LIKE(RequestUA, 'Android 8') THEN 'Android 8'
WHEN REGEXP_LIKE(RequestUA, 'Android 7') THEN 'Android 7'
WHEN REGEXP_LIKE(RequestUA, 'Android 6') THEN 'Android 6'
WHEN REGEXP_LIKE(RequestUA, 'Android 5') THEN 'Android 5'
WHEN REGEXP_LIKE(RequestUA, 'Android 4') THEN 'Android 4'
WHEN REGEXP_LIKE(RequestUA, 'BlackBerry') THEN 'BlackBerry'
WHEN REGEXP_LIKE(RequestUA, 'Symbian') THEN 'Symbian'
WHEN REGEXP_LIKE(RequestUA, 'webOS') THEN 'webOS'
WHEN REGEXP_LIKE(RequestUA, 'Meego') THEN 'Meego'
WHEN REGEXP_LIKE(RequestUA, 'Bada') THEN 'Bada'
WHEN REGEXP_LIKE(RequestUA, 'Tizen') THEN 'Tizen'
WHEN REGEXP_LIKE(RequestUA, 'Sailfish OS') THEN 'Sailfish OS'
WHEN REGEXP_LIKE(RequestUA, 'tv') THEN 'tv'
WHEN REGEXP_LIKE(RequestUA, 'Apache') THEN 'Apache'
WHEN REGEXP_LIKE(RequestUA, 'aria2') THEN 'aria2'
WHEN REGEXP_LIKE(RequestUA, 'ZhihuHybrid') THEN 'Zhihu'
WHEN REGEXP_LIKE(RequestUA, 'Wget') THEN 'Wget'
WHEN REGEXP_LIKE(RequestUA, 'qBittorrent') THEN 'qBittorrent'
WHEN REGEXP_LIKE(RequestUA, 'Dalvik') THEN 'Dalvik'
WHEN REGEXP_LIKE(RequestUA, 'Linux') THEN 'Linux'
ELSE '未知'
END AS OperatingSystem,
COUNT(*) AS Visits
GROUP BY
OperatingSystem
ORDER BY
Visits DESC
-- 变量报错 先这样吧 获取用户具体操作系统或环境
获取流量排行榜 省/市
添加描述
代码语言:sql
复制
* | SELECT
ip_to_province("ClientIP") AS "省份",
SUM(EdgeResponseBytes) AS "总流量"
GROUP BY "省份"
HAVING "省份" <> '-1'
ORDER BY "总流量" DESC
LIMIT 20
-- 获取前20名流量大省消耗了多少流NULL为ipv6
代码语言:sql
复制
* | SELECT
ip_to_city("ClientIP") AS "城市",
SUM(EdgeResponseBytes) AS "总流量"
GROUP BY "城市"
HAVING "城市" <> '-1'
ORDER BY "总流量" DESC
LIMIT 20
-- 获取前20名流量城市消耗了多少流NULL为ipv6
搜索引擎来路
代码语言:sql
复制
* | SELECT
CASE
WHEN REGEXP_LIKE(RequestUA, 'Googlebot') THEN 'Google'
WHEN REGEXP_LIKE(RequestUA, 'Bingbot') THEN 'Bing'
WHEN REGEXP_LIKE(RequestUA, 'Yahoo') THEN 'Yahoo'
WHEN REGEXP_LIKE(RequestUA, 'Baiduspider') THEN 'Baidu'
WHEN REGEXP_LIKE(RequestUA, 'SogouSpider') THEN 'Sogou'
WHEN REGEXP_LIKE(RequestUA, '360Spider') THEN '360'
WHEN REGEXP_LIKE(RequestUA, 'Bytespider') THEN 'Toutiao'
END AS "搜索引擎",
COUNT(*) AS "请求次数"
WHERE REGEXP_LIKE(RequestUA, 'Googlebot') OR
REGEXP_LIKE(RequestUA, 'Bingbot') OR
REGEXP_LIKE(RequestUA, 'Yahoo') OR
REGEXP_LIKE(RequestUA, 'Baiduspider') OR
REGEXP_LIKE(RequestUA, 'SogouSpider') OR
REGEXP_LIKE(RequestUA, '360Spider') OR
REGEXP_LIKE(RequestUA, 'Bytespider')
GROUP BY "搜索引擎"
ORDER BY "请求次数" DESC
LIMIT 20
-- 搜索引擎来路的请求 ,也有可能是蜘蛛爬取,虽然说我学过SEO但是我不太关心SEO,,,
站外来路检测
代码语言:sql
复制
* | SELECT
CASE
WHEN RequestUA LIKE '%://%' THEN REGEXP_EXTRACT(RequestUA, 'https?://([^/]+)', 1)
ELSE '直接访问'
END AS "来路域名",
COUNT(*) AS "访问次数"
GROUP BY "来路域名"
ORDER BY "访问次数" DESC
LIMIT 20
-- 检测RequestUA字段的值是否包含'://',这是一个简单的判断URL是否存在的方法。如果包含'://'
-- 它将使用REGEXP_EXTRACT函数提取域名。
--如果不包含'://',它将返回'直接访问'。这样,所有不包含链接的RequestUA记录都将被归类为'直接访问'。
一件导入我的配置
全部完整json 可以直接下载导入
代码语言:text
复制
https://img.cuteapi.com/cls/json/Edgeone_senior.json
EagleYaorzID 修改为
日志主题ID
dashboard-EagleYAO
修改为 仪表盘Id
导入完成需要修改缓存占比注释掉指定内目录或者文件看你们的具体情况(bushi
导入后整体预览
各有各的 有的更新了但是没更新截图大抵就是这样的罢了
你已经到达了世界的尽头
暂无评论内容