申请日志记录哪些数据
time_local
: 申请的工夫remote_addr
: 客户端的 IP 地址request_method
: 申请办法request_schema
: 申请协定,常见的 http 和 httpsrequest_host
: 申请的域名request_path
: 申请的 path 门路request_query
: 申请的 query 参数request_size
: 申请的大小referer
: 申请起源地址,假如你在 a.com 网站下贴了 b.com 的链接,那么当用户从 a.com 点击拜访 b.com 的时候,referer 记录的就是 a.com,这个是浏览器的行为user_agent
: 客户端浏览器相干信息status
: 申请的响应状态request_time
: 申请的耗时bytes_sent
: 响应的大小
很多时候咱们会应用负载网关去代理转发申请给理论的后端服务,这时候申请日志还会包含以下数据:
upstream_host
: 代理转发的 hostupstream_addr
: 代理转发的 IP 地址upstream_url
: 代理转发给服务的 urlupstream_status
: 上游服务返回的 statusproxy_time
: 代理转发过程中的耗时
数据衍生
客户端 IP 地址能够衍生出以下数据:
-
asn 相干信息:
asn_asn
: 自治零碎编号,IP 地址是由自治系统管理的,比方中国联通上海网就治理了所有上海联通的 IPas_org
: 自治零碎组织,比方中国移动、中国联通
-
geo 地址地位信息:
geo_location
: 经纬度geo_country
: 国家geo_country_code
: 国家编码geo_region
: 区域(省份)geo_city
: 城市
user_agent
能够解析出以下信息:
ua_device
: 应用设施ua_os
: 操作系统ua_name
: 浏览器
数据分析
PV
/QPS
: 页面浏览次数 / 每秒申请数UV
: 拜访的用户人数,很多网站用户无序登录也能拜访,这时能够依据 IP + user_agent 的唯一性确定用户IP
数 : 拜访起源有多少个 IP 地址
<br/>
- 网络流量 : 依据
request_size
申请的大小计数网络流入流量,bytes_sent
响应大小计算网络流出流量
<br/>
referer
起源剖析
<br/>
- 客户申请的地理位置剖析:依据 IP 地址衍生的
geo
数据
<br/>
- 客户设施剖析:依据
user_agent
提取数据
<br/>
-
申请耗时统计:依据
request_time
数据- p99、p95、p90 提早(前多少百分比申请的耗时,比方 p99 就是前 99% 申请的耗时)
- 长耗时异样监控
<br/>
-
响应状态监控:依据
status
数据- 各个状态码的响应占比
- 5xx 服务端异样数量
<br/>
-
联合业务剖析:申请的
request_path
地址和request_query
参数肯定是对应具体业务的,例如- 申请某个相册的地址是 /album/:id,那么日志中的
request_path
对应的就是对相册进行了一次拜访 - 进行站内搜索的地址是
/search?q=< 关键词 >
,那么统计request_path
是/search
的日志条数就能够晓得进行了多少次搜寻,统计request_query
中q
的参数就能够晓得搜寻关键词的状况
- 申请某个相册的地址是 /album/:id,那么日志中的
通用架构
日志零碎应用 ELK + kafka 构建是业界比拟支流的计划,beats、logstash 进行日志采集搬运,kafka 存储日志期待生产,elasticsearch 进行数据的聚合剖析,grafana 和 kibana 进行图形化展现。