ELK日志系统介绍

Posted 云开源

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ELK日志系统介绍相关的知识,希望对你有一定的参考价值。

日志系统的功能
日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员经常需要查看日志以了解服务器软硬件信息、系统运行负载、服务配置信息等,以便于检测系统的运行情况,及时发现系统异常,并采取相应措施。
 
以上日志的使用主要包括收集和分析。通常,日志被分散地存储在不同的设备上,需要依次登陆到每台机器查阅相应的日志。对于数十上百台服务器的系统,这种传统的方式显然太过繁琐和低效。通过使用日志的集中化管理,例如:开源的 syslog,将所有服务器的日志收集汇总,能够大大的提高我们的工作效率。
 
集中化管理后的日志,需要我们对其进行统计和分析,以提取有效信息,如系统是否存在故障和异常,故障和异常的原因等。一般我们使用 grep 、 awk 和 wc 等 Linux 命令能实现检索和统计,但是对于要求更高的查询、排序和统计,以及直观、炫丽的状态展示,就是我们传统方法难以企及的了。
 
开源实时日志系统ELK就能够满足我们的上述需求。


ELK简介

Elasticsearch + Logstash + Kibana(ELK)是一套开源的日志管理方案,在实时数据检索和分析场合,三者通常是配合共用,而且又都先后归于Elastic.co公司名下,故有此简称。


Elasticsearch是一个基于Lucene(一个全文搜索引擎)构建的开源、实时、分布式、RESTful搜索和分析引擎。

Logstash是一个开源的数据收集、扩展、传输的通道,可通过其灵活的配置应用于分布式数据处理领域。

Kibana是一个开源的数据可视化平台,为用户提供可视化的数据交互方式。


下图是三者配合使用的典型架构图:


logstash可以通过配置文件设置为shipper和indexer两种角色:shipper部署在需要收集日志的服务器上,负责日志的收集、过滤、格式化等,也可以增加插件丰富其功能,如上图使用Grok正则表达式过滤日志,最后将格式化后的日志存入队列式的缓存中,如redis,rabbitMQ等;indexer则是单独部署(可以集群),作用是从缓存中将日志存入Elasticsearch。Elasticsearch为整体日志系统提供搜索和分析支撑,其丰富的api接口方便我们进行二次开发。用户通过kibana的web界面与elasticsearch进行实时图形界面的交互,可以设定检索数据的实时图形展示,便于运维人员发现系统异常。

ELK日志系统的横向扩展
随着系统规模不断扩大,服务器数量增多,服务增加,日志量会比较大。日志队列缓存(Broker)、Indexer和ElasticSearch可能成为性能瓶颈,此时可以通过组件的集群模式进行负载均衡。
日志横向扩展如图所示。

ELK日志系统介绍
ŸBroker Cluster
RabbitMQ支持集群模式,可以根据系统规模扩展RabbitMQ集群。

ŸLogstash Indexer
Logstash Indexer可以根据需要启动多份,从Broker的同一个消息队列获取日志数据,实现负载均衡。

ŸElasticsearch Cluster
Elasticsearch原生支持集群,只要配置相同的集群名称,多个Elasticsearch节点就可以组成Elasticsearch集群,实现负载均衡。
 
最后附上ELK日志系统的discover界面,下一篇我们会介绍 discover界面的使用,敬请期待。
ELK日志系统介绍

作者简介:

张文燕,应用软件开发工程师,5年经验,熟悉linux应用程序开发等,擅长C/C++、Python等编码和故障诊断,对Openstack、Packstack、日志系统和版本管理等有研究。


以上是关于ELK日志系统介绍的主要内容,如果未能解决你的问题,请参考以下文章

ELK日志分析系统 介绍 安装配置

ELK日志分析系统(理论+部署)

ELK日志分析系统搭建配置

ELK日志分析系统

ELK日志分析系统

企业级日志系统 ELK 原理与实践详细介绍