当前位置:网站首页>实战 ELK 优雅管理服务器日志
实战 ELK 优雅管理服务器日志
2022-07-01 02:57:00 【靈熙雲】
到此 灵熙云工作室 - 实践出真理 查看全文内容

简介
在后端开发日常工作中,定位排查问题或是了解系统某些方面的情况时,会遇到以下的场景:
- 查询接口请求的日志。
- 查询服务的日志。
- 统计接口的每日调用数量以及时间分布。
- 统计接口每日的用户数量。
ELK(Elasticsearch + Logstash + Kibana)平台很好的完成了上述工作,并且提供了友好便利的用户界面,普遍应用于生产日志的查询分析中。ELK一句话概括:用Logstash收集日志或者数据到Elasticsearch存储起来并建立相关索引,再利用Kibana查询界面到Elasticsearch上提供的索引进行查询和统计。
- Logstash
Logstash 主要用于收集服务器日志,它是一个开源数据收集引擎,具有实时管道功能。Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到所选择的目的地。
Logstash 收集数据的过程主要分为以下三个部分:
输入(input):数据往往都是以不同的形式、格式存储在不同的系统中,而Logstash支持从多种数据源中收集数据(File、Syslog、MySQL、消息中间件等等)。过滤器(filter):实时解析和转换数据,识别已命名的字段以构建结构,并将它们转换成通用格式。输出(output):Elasticsearch并非存储的唯一选择,Logstash提供很多输出选择。
- Elasticsearch
Elasticsearch (ES)是一个分布式Restful风格的搜索和数据分析引擎,它具有以下特点:
查询:允许执行和合并多种类型的搜索 (结构化、非结构化、地理位置、度量指标),搜索方式随心而变。分析:Elasticsearch聚合让您能够从大处着眼,探索数据的趋势和模式。速度:很快,可以做到亿万级的数据,毫秒级返回。可扩展性:可以在笔记本电脑上运行,也可以在承载了 PB 级数据的成百上千台服务器上运行。弹性:运行在一个分布式的环境中,从设计之初就考虑到了这一点。灵活性:具备多个案例场景。支持数字、文本、地理位置、结构化、非结构化,所有的数据类型都欢迎。
- Kibana
基于浏览器的界面便于快速创建和分享动态数据仪表板来追踪 Elasticsearch 的实时数据变化。其搭建过程也十分简单,您可以分分钟完成 Kibana 的安装,并开始探索 Elasticsearch 的索引数据,没有代码、不需要额外的基础设施。
- Filebeat
ELK 协议栈的新成员,一个轻量级开源日志文件数据搜集器,基于 Logstash-Forwarder 源代码开发,是对它的替代。在需要采集日志数据的服务器上安装 Filebeat,并指定·日志目录·或·日志文件·后,Filebeat 就能读取数据,迅速发送到 Logstash 进行解析,亦或直接发送到 Elasticsearch (日志不需要Logstash过滤拆分时)进行集中式存储和分析。
这四者都是开源软件,通常配合使用,而且又先后归于 Elastic.co 公司名下,所以被简称为 ELK Stack。根据 Google Trend 的信息显示,ELK Stack 已经成为目前最流行的集中式日志解决方案。
常用架构
Logstash架构
单服务
只有一个 Logstash、Elasticsearch 和 Kibana 实例。Logstash 通过输入插件从多种数据源(比如日志文件、标准输入 Stdin 等)获取数据,再经过滤插件加工数据,然后经 Elasticsearch 输出插件输出到 Elasticsearch,通过 Kibana 展示。

多服务
把一个 Logstash 数据搜集节点扩展到多个,分布于多台机器,将解析好的数据发送到 Elasticsearch server 进行存储,最后在 Kibana 查询、生成日志报表等。

这种结构因为需要在各个服务器上部署 Logstash,而它比较消耗 CPU 和内存资源,所以比较适合计算资源丰富的服务器,否则容易造成服务器性能下降,甚至可能导致无法正常工作。
Beats架构
这种架构引入 Beats 作为日志搜集器。目前 Beats 包括四种:
- Packetbeat(搜集
网络流量数据)- Topbeat(搜集
系统、进程和文件,系统级别的CPU和内存使用情况等数据)- Filebeat(搜集
文件数据)- Winlogbeat(搜集
Windows 事件日志数据)
Beats 将搜集到的数据发送到 Logstash,经 Logstash 解析、过滤后,将其发送到 Elasticsearch 存储,并由 Kibana 呈现给用户。

这种架构解决了 Logstash 在各服务器节点上占用系统资源高的问题。相比 Logstash,Beats 所占系统的 CPU 和内存几乎可以忽略不计。另外,Beats 和 Logstash 之间支持 SSL/TLS 加密传输,客户端和服务器双向认证,保证了通信安全。
因此这种架构适合对数据安全性要求较高,同时各服务器性能比较敏感的场景。
消息队列架构
Beats 还不支持输出到消息队列,所以在消息队列两端只能是 Logstash 实例。这种架构使用 Logstash 从各个数据源搜集数据,然后经消息队列输出插件输出到消息队列中。目前 Logstash 支持 Kafka、Redis、RabbitMQ 等常见消息队列。然后 Logstash 通过消息队列输入插件从队列中获取数据,分析过滤后经输出插件发送到 Elasticsearch,最后通过 Kibana 展示。

这种架构适合于日志规模比较庞大的情况。但由于 Logstash 日志解析节点和 Elasticsearch 的负荷比较重,可将他们配置为集群模式,以分担负荷。引入消息队列,均衡了网络传输,从而降低了网络闭塞,尤其是丢失数据的可能性,但依然存在 Logstash 占用系统资源过多的问题。
到此 灵熙云工作室 - 实践出真理 查看全文内容
边栏推荐
- Const and the secret of pointers
- 鼠标悬停效果八
- Optimal transport Series 1
- Mouse over effect 8
- kubernetes资源对象介绍及常用命令(二)
- Dell服务器重启iDRAC方法
- Huawei operator level router configuration example | BGP VPLS configuration example
- Mouse over effect II
- Sampling Area Lights
- Communication protocol -- Classification and characteristics Introduction
猜你喜欢

Record a service deployment failure troubleshooting

Pychar open remote directory remote host

Saving images of different depths in opencv

Here comes the share creators budding talent training program!

彻底解决Lost connection to MySQL server at ‘reading initial communication packet

Optimal transport Series 1

In the industrial Internet, "small" programs have "big" effects

PHP batch Excel to word

单片机 MCU 固件打包脚本软件

RestCloud ETL WebService数据同步到本地
随机推荐
Cloud native annual technology inventory is released! Ride the wind and waves at the right time
Optimal Transport系列1
Magnetic manometer and measurement of foreign coins
Mnasnet learning notes
Detailed explanation of pointer array and array pointer (comprehensive knowledge points)
Restcloud ETL practice to realize incremental data synchronization without identification bit
鼠标悬停效果十
基于OPENCV和图像减法的PCB缺陷检测
Codeforces Round #416 (Div. 2) C. Vladik and Memorable Trip
RestCloud ETL实践之无标识位实现增量数据同步
Mouse over effect IV
Example of Huawei operator level router configuration | example of configuring optionc mode cross domain LDP VPLS
Huawei operator level router configuration example | BGP VPLS configuration example
Dell server restart Idrac method
Install vcenter6.7 [vcsa6.7 (vCenter server appliance 6.7)]
[machine learning] vectorized computing -- a must on the way of machine learning
【小程序项目开发 -- 京东商城】uni-app 商品分类页面(下)
调试定位导航遇到的问题总结
mybati sql 语句打印
MCU firmware packaging Script Software