00:00
哈喽,同学们,我们在之前的课程里呢,呃,给大家不止一次展示了这个NG的日志。这个日志啊和用户的权限,这一般来说呢,有很多同学认为这是呃一些系统管理员呃,他们需要干的事儿,呃或者说这个搞一次之后呢,可能以后就不需要再动了,但实际上啊,并不是这样的,这个用权限系统呢,都还简单,那基本上的呃,Linux的操作啊,我们就可以了,比如说给N呢,去分配这个不同的目录啊,然后去分配目录里的这个读写权限,以及N的进程的这个启动用户,这些都很简单。那这个日志啊,相比这个权限系统来说,它要复杂的多,而且它的应用场景很多。在现在的互联网公司当中,把这个日志呢,作为这个低价值数据,直接输出到我们的大数据或者是AI这套系统里边,可以得到很高的商业价值,为什么说它是低价值数据啊,那相比来说一定就有高价值数据,像高价值数据就指的是用户的像手机号啊,呃,他的家庭住址啊,更加私密的这些信息,包括他银行卡的余额。
01:04
这种低价值数据呢,往往就是用户的行为的这种代表,比如说我们去商场里,呃,逛了个商场,然后呢,去了那个小吃店,吃了个东西,然后行走的路径,包括我们打车这些出行的记录,这些呢,都可以作为这个用户的行为去收集上来,然后以便于我们在后期的商业行为当中呢,可以去呃调整这个呃我们的产品的这些策略。那比如说这个日志我们可以做啥啊,我说在比如说在电商系统里,我可以根据这个用户的这个访问的情况啊,他点了哪个商品,然后在页面停留的时间,然后购买了哪些商品,把这些呢全部都给他记录下来,然后以用户行为的方式去做代表,然后接下来呢,去构建用户行为画像,然后做这种推荐系统。也就是千人千面这种系统,不光是电商系统,呃,你打开现在的抖音,也是你如果爱看的某一类视频,比如说游戏的呀,或者是呃一些这个知识类的,那么在接下来会更多的去给你推荐这种你经炒的这种视频啊,那这就是这个呃推荐系统上的日志这种,呃这种应用现在电商啊,我们都能看出来,我们看啊,随便给他打开一个页面。
02:16
我们打开任何的一个系统,几乎他们都在收集我们的数据啊,你看京东。然后在这里边找这个size基本没有的这种啊。我们看这。这就是发了一个请求,这也发了一个请求啊,应该还有很多这种类似的请求。呃,有好多请求大家看啊,这个地址叫I'杠叉点京东,点com DS p NP问号log后边跟了一堆BASE64。嗯,这个编码过的这个数据啊,还有很多其他的类似的,其实这些,呃,镶嵌在这个HTML页面里的这些连接很小的这种请求。
03:02
他基本上都是在收集我们的这种行为啊,包括这也是大家看就直接就是log.gif他把用户的请求行为呢,全部都给收集过去了,那这还不止是一次打开之后,呃,他请求一次呃。那怎么收集我们这个用户的实时行为呢?比如说在这这个有滚动的操作,我有鼠标的这个划过的操作,包括这个在位置停留时长这些呢,都可以通过JS,就是前端呢,我们去呃写出来这个用户的行为的脚本,然后通过这个访问后台,或者是访问NG的一个日志的接口,像刚才访问的那个log.gif那GIF那图片它没出来。那图是没有的啊,压根就没有那个图,但是呢,把这个请求的一些额外的信息,他全部都给我传递过去了,这是在外部,外部的这个环境下去收集用户的行为啊,但是这个感觉上好像有一些复杂,他和这个AI有一定的关系,就是我看见这个推荐页啊,比如说经常最近的老看内存,他就会给我推荐,推荐这个内存啊,这就是构建的用户画像,通过这个用户的日志。
04:07
啊,除了这个呃,去做这种推荐系统之外,还可以做为很多这种用户增量的这种行为。比如说这个。呃,我我打开了某个页面,然后呢,我基本没怎么看,我就是给它关了,呃或者是我最近给他推推荐这个内容,呃,他不太喜欢,呃或者是他已经点了好多这个商品了,到最后最终呢,他也没购买。那如果做这种用户增量的话,或者这个这个销售业绩增量的话,那就可以去收集这些呃这些信息,然后在我们的这个呃后台的这个大数据平台呃,或者是BI的这种呃这种商业平台,然后去做这种用户的分析,接下来去调整页面的布局,然后给这个产品经理呃多一些这种这个数据上的参考。嗯,再有再有就是这个最传统的应用,我们去收集用户的日志,我可以知道当前这个站点,或者我当前这个APP,呃,这个当前这个访问量是啥样的,比如每天的这个用户的,呃,IP啊,来的这种这个IP,独立的用户IP有多少个,然后在每一个页面里边,它的这个浏览量是多少,对应的就是这个UV啊,还有这个PV。
05:16
这些这个站点的数据的统计,这些指标下。当然还有很多这种个性化的这种,呃需求也可以用到日志,比如说嗯,做一些数据标注啊,你看有的时候我们访问一些站点,他会给我们弹出一个框来,然后让我们去识别一下,呃,我现在是不是个机器人对吧?你比如那个现在的红绿灯,呃,不是这就是那个,它会提示你现在有这个九张图,一个九宫格。然后你去点一下这个,呃,里边哪些这个格是红绿灯啊或者是。斑马线或者公交车,或者是小轿车,或者是人形的这种这种标注啊,让我们用户在完成验证码的同时呢,他还点击了这个正确的标注,大家一定要注意我们所看到的这些标注,它的这个类别啊,都是一些这个呃,商业价值很高的这些数据,比如说他看红绿灯,看这个行人看这斑马线。
06:12
这是给谁这这个这是给谁用的,这一般来说呢,它是给这种自动驾驶的这种呃设备用的,对吧,然后又借助了我们的这个用户去做的这个点击,然后做把这些数据呢,作为低价值数据直接收集到这个,呃,这个这个。数据中心,然后再去做分析,然后它的这个识别率就更高了,因为有一种单独的这个工种,就是做这个数据标注啊。在这说的稍微有一点多了啊,总之这个日志啊,现在是在电商平台当中啊,或者说整个互联网公司当中。呃,非常非常重要的,呃一个功能啊,呃,那么我们学习NGS的这个日志配置的话呢,我们还是以官方文档为例。嗯,因为官方文档啊,写的是最权威的,也也算是比较完整的,但是为什么还要讲一下呢?主要就是他写的还不够这个通俗嘛,对吧。
07:03
然后在这呢,我们去搜这个logo。往下这啊,HTTP的log Mo啊,它还可以给这个stream,也就是我们昨天前两天讲的那个给。呃,咱的这个这个呃,MYS去做这个负载均衡器,那也是可以记录日志的,那主要还是基于HTTP的这个日志请求,嗯在这再多说一点啊,一般来说记录这个日志请求的话,呃就用HTTP协议,呃我们也可以观察一下这个,你像京东刚才我们看的他发日志的呢,基本上都是HTTP协议,这这边是没有必要去呃用这HTPS协议的,因为它更高效HTTP协议,因为这个HTPS的话,额外又增加了四次握手啊。呃,这是它的官方文档,那要要配置这个日志的话呢,呃,一共有这么几个地可以配,一个就是access log,另外就是这个,呃,这个log ne1这个access log,它定义了我们在记录日志的时候,呃,记录的这种。
08:06
啊,这这种配置啊,呃,比如说我的这个呃buffer,呃,我在记录日志的时候呢,我先去写这个buff,比如先先写缓冲区,这缓冲区呢是在内存里的,我们没有落地到磁盘上那个日志文件。啊,这是这个buffer,这个可以配置大小,这里边已经写的很清楚了,然后还有GZ,这GZ呢,是可以去压缩一下我们这个日志的,因为这个日志嘛,一般都是文档,呃,在这个压缩软件我们也去压缩一些呃数据的时候,文档的压缩效率是最高的,因为它重复的单词量比较多嘛,对吧,在这儿可以去配置这个压缩级别,跟我们在呃这个HTP服务上配置那个GZP其实一样的,一到九,呃一是基本上。呃,就是一个归档很很少做压缩九呢,就是压缩效率非常高了。啊,你这个压缩完之后呢,呃,它会直接追加到我们的这个日志的文件里,以g zip的格式啊,你再直接想看它的话,这就看不了了,因为它已经是被压缩后的了,你再想看它的话呢,我们就得把它给解压开了。
09:07
啊,再看这个flash,这个flash指的是呃,写入日志的这个间隔。在触发触发写日志的这个,呃事件呢,呃,它有这么几个,这个可能会触发直接去向磁盘去写,那第一个呢,就是这个buffer size它满了,呃比如说在这给他搞了一个64K的buffer size,呃往缓冲缓冲区里边写,写满了之后放不下了怎么办?呃就是最后一条已经放在缓冲区里放不下了,那么接下来呢,它就会直接向这个磁盘去这个持久化往里去写了。啊,这是第一个条件,第二个就是这个flash。啊,你这里边没满,但是我也得写啊,你你这站点基本没什么人访问,这一天过去了,一共就那么三四个人,对吧,那日志一条不记,这也不合适,所以在一定时间间隔内,我也要强制的去写一下日志,一般这个时间间隔呢,不不要设置的过短啊,就是几秒钟你就写一次,这就没有这个必要了。
10:00
因为日志本来就是低价值,数据丢一些少一些,或者有些错误了,无所谓的啊。这个flash的基本上设置个几分钟啊,或者是半个小时一个小时啊就可以了。然后这个还有就是我们的worker process这个呃进程啊,它是它在正常重启的时候,或者正常关闭的时候,也会触发这个写日志的操作啊,所以一般来说呃,非正常的这种呃情况呢,我们也遇不太到,比如说有机房里边断电了,这这不太可能。啊,就是正常情况下我们配置这两个就可以了,再有就是它重启的时候也会自动刷新日志,后边呢,还有个就还有一个if。这个if呢,可以根据一些条件去写日志,比如说我判断,呃,某些这个条件user agent,如果要是来自安卓手机的呢,我就给他寄,如果来自苹果手机的呢,我就不记啊。这是access log记录日志的配置,然后下边这个是。这是记录日志的格式,我怎么记?这里边有很多变量可以去配置啊,比如BI,然后connection request mec,什么pipe request等等等等等等,那除了这些这个额外的,呃,这些变量我们可以记的话,还有很多我们常常见的这个变量也可以记,比如比如说我们之前用过的remote ad DR,就是远程的这个,呃,用户的IP地址直接给它可以写进去啊。
11:25
然后这个他的这个时间啊,然后这个呃,请求以及这个状态请求状态啊,还有等等等等,之前我们用过这些呢,也都可以往里去记日志在。使用变量的时候呢,它可以用的是非常非常多的啊,正常的NG的变量,呃,它就可以用,然后还有一些额外它可以呃单独去使用这些变量。这就是呃,它的这个配置,然后这个配置啊,指的是。正常的这个日志是access log,你打开这看一下。
12:00
Log n几格logo。是这个日志叫access log,这个access log是正常访问日志啊,它不包含错误请求啊,比如说他404了,或者什么就500了,它都会记到这儿。啊,你看我们之前做的测试,这个l log有40多兆,然后这个正常访问的它一兆多啊,就是因为错误太多啊,这是两个日志,我们先说第一个就是这个access log,就是用户的访问的这个日志啊。
我来说两句