Node框架如何接入ELK-创新互联

小编给大家分享一下Node框架如何接入ELK,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

新华网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、自适应网站建设等网站项目制作,到程序开发,运营维护。创新互联从2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联

我们都有过上机器查日志的经历,当集群数量增多的时候,这种原始的操作带来的低效率不仅给我们定位现网问题带来极大的挑战,同时,我们也无法对我们服务框架的各项指标进行有效的量化诊断,更无从谈有针对性的优化和改进。这个时候,构建具备信息查找,服务诊断,数据分析等功能的实时日志监控系统尤为重要。

ELK (ELK Stack: ElasticSearch, LogStash, Kibana, Beats) 是一套成熟的日志解决方案,其开源及高性能在各大公司广泛使用。而我们业务所使用的服务框架,如何接入 ELK 系统呢?

业务背景

我们的业务框架背景:

  • 业务框架是基于 NodeJs 的 WebServer

  • 服务使用 winston 日志模块将日志本地化

  • 服务产生的日志存储在各自机器的磁盘上

  • 服务部署在不同地域多台机器

接入步骤

我们将整个框架接入 ELK 简单归纳为下面几个步骤:

  • 日志结构设计:由传统的纯文本日志改成结构化对象并输出为 JSON.

  • 日志采集:在框架请求生命周期的一些关键节点输出日志

  • ES 索引模版定义:建立 JSON 到 ES 实际存储的映射

一、日志结构设计

传统的,我们在做日志输出的时候,是直接输出日志的等级(level)和日志的内容字符串(message)。然而我们不仅关注什么时间,发生了什么,可能还需要关注类似的日志发生了多少次,日志的细节与上下文,以及关联的日志。 因此我们不只是简单地将我们的日志结构化一下为对象,还要提取出日志关键的字段。

1. 将日志抽象为事件

我们将每一条日志的发生都抽像为一个事件。事件包含:

事件元字段

事件发生时间:datetime, timestamp

事件等级:level, 例如: ERROR, INFO, WARNING, DEBUG

事件名称:  event,  例如:client-request

事件发生的相对时间(单位:纳秒):reqLife, 此字段为事件相对请求开始发生的时间(间隔)

事件发生的位置: line,代码位置;  server, 服务器的位置

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章标题:Node框架如何接入ELK-创新互联
标题路径:http://myzitong.com/article/desdhc.html