简单介绍一下,主要思路就是把写的log文件通过logstesh 格式化然后存到 Elasticsearch 里面,这样多个节点产生的日志就可以统一集中管理了。而且还能快速全文检索,搜索到你需要的信息。
一、大型高并发网站的日志架构是什么样子一般存储哪些数据
简单介绍一下,主要思路就是把写的log文件通过logstesh 格式化然后存到 Elasticsearch 里面,这样多个节点产生的日志就可以统一集中管理了。而且还能快速全文检索,搜索到你需要的信息。
至于日志要记录什么,当然跟业务逻辑有关系了,不能泛泛而论吧。
比如一些函数的运行条件啊,输入检查啊,但是这只是开发拍错方面的。
还可以做一些有意义的统计数据,用这个elasticsearch 配合ELK 提供的dashboard,还可以做报表,用来吹逼KPI。 比如日志可以记录用户的访问时间,ip,等等信息,那你很容易就可以做一个报表来说明这个月的流量比上个月增长了多少,这个记录可以细化到模块,那你自己开发的模块贡献了主要的流量增长那不就可以吹逼KPI了么,这就是所谓数据挖掘了,elasticsearch还可以配合hadoop之类的使用,说到这里大家应该知道怎么继续科学装逼了吧。
基于这个还能做更多有想象力的事儿,主要是集中管理大量node上产生的日志带来的好处。另外logstesh支持多种input,你也可以自己给它写input plugin,所以日志产生其实就很随性了,第三方库非标准化的日志也可以轻松的纳入进来给format成标准化日志。
进一步的,如果你的应用够大型,这个elk stack也可以搞成一个云服务嘛,所有的应用都可以接入,进而你会有更科学的装逼姿势。
延伸阅读:
二、字符集(Character set)是什么
是多个字符(英文字符,汉字字符,或者其他国家语言字符)的集合,字符集种类较多,每个字符集包含的字符个数不同。
特点:
①字符编码方式是用一个或多个字节表示字符集中的一个字符
②每种字符集都有自己特有的编码方式,因此同一个字符,在不同字符集的编码方式下,会产生不同的二进制
常见字符集:
ASCII字符集:基于罗马字母表的一套字符集,它采用1个字节的低7位表示字符,高位始终为0。
LATIN1字符集:相对于ASCII字符集做了扩展,仍然使用一个字节表示字符,但启用了高位,扩展了字符集的表示范围。
GBK字符集:支持中文,字符有一字节编码和两字节编码方式。
UTF8字符集:Unicode字符集的一种,是计算机科学领域里的一项业界标准,支持了所有国家的文字字符,utf8采用1-4个字节表示字符。