发布日期:2020-01-20 浏览次数:次
张家口怎么做好集团的监控,
互联网公司一般都会有专门的数据团队对公司的一些业务指标负责;为了拿到这些基本的业务指标,一般也要工程团队去配合做一些数据采集工作,于是埋点诞生了。
埋点的方式有很多种,本文主要介绍 日志埋点 这种方式以及实现思路和案例。
日志埋点 就是通过程序打印 log 日志的方式进行业务/行为数据的记录
通过 日志埋点 来实现业务监控和行为分析主要需要以下4个步骤
3.1. 数据生成
日志数据的生成直接使用 Logback 等日志框架就可以了,可以自己封装公共方法、aop、注解等方式来生成指定的埋点日志
但是为了便于后面的数据解析,日志数据需要规范先行
埋点案例
生成日志
网关埋点用户请求
3.2. 数据收集
关于日志数据的收集可选择的中间件比较多,除了图中的 FileBeat 之外还有 Flume、Fluentd、rsyslog 等;需要每台服务器都部署一个收集中间件。
每台服务器部署一个就行了,就算一台服务器中启了多个微服务也是可以一齐收集
PS:日志收集后面的 消息队列 并不是必需的可以去掉,但是增加 消息队列 后有以下两个优点
3.3. 数据解析
使用 Logstash 的grok表达式解析日志数据并结构化,以上面的日志数据为例
2019-11-07 10:32:01|api-gateway|1|request-statistics|ip=171.221.203.106&browser=CHROME&operatingSystem=WINDOWS_10
结构化后的日志数据为:
{ timestamp: '2019-11-07 10:32:01', appName: 'api-gateway', resouceid: '1', type: 'request-statistics', ip: '171.221.203.106', browser: 'CHROME', operatingSystem: 'WINDOWS_10' }
3.4. 数据落盘
通过 Logstash 能自动创建 Elasticsearch 索引并以天为单位分片
可以通过索引模板来指定每个字段的类型和分词器等属性
3.5. 数据使用
日志数据落盘到 Elasticsearch 后,就可以通过聚合查询等方式实时显示监控数据或者分析日志数据
监控案例