欢迎来到战五渣的博客

人生三重境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。

ELK学习实验001:Elastic Stack简介

1 背景介绍

在我们日常生活中,我们经常需要回顾以前发生的一些事情;或者,当出现了一些问题的时候,可以从某些地方去查找原因,寻找发生问题的痕迹。无可避免需要用到文字的、图像的等等不同形式的记录。用计算机的术语表达,就是 LOG,或日志。

日志,对于任何系统来说都是及其重要的组成部分。在计算机系统里面,更是如此。但是由于现在的计算机系统大多比较复杂,很多系统都不是在一个地方,甚至都是跨国界的;即使是在一个地方的系统,也有不同的来源,比如,操作系统,应用服务,业务逻辑等等。他们都在不停产生各种各样的日志数据。根据不完全统计,我们全球每天大约要产生 2EB(1018)的数据。

面对如此海量的数据,又是分布在各个不同地方,如果我们需要去查找一些重要的信息,难道还是使用传统的方法,去登陆到一台台机器上查看?看来传统的工具和方法已经显得非常笨拙和低效了。于是,一些聪明人就提出了建立一套集中式的方法,把不同来源的数据集中整合到一个地方。

一个完整的集中式日志系统,是离不开以下几个主要特点的。

  • 收集-能够采集多种来源的日志数据
  • 传输-能够稳定的把日志数据传输到中央系统
  • 存储-如何存储日志数据
  • 分析-可以支持 UI 分析
  • 警告-能够提供错误报告,监控机制

2 ELK介绍

Elastic Stack是软件集合Elasticsearch、Logstash、Kibana的简称,它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。

  1. Elasticsearch 基于java,是一个基于 Lucene 的、支持全文索引的分布式存储和索引引擎,主要负责将日志索引并存储起来,方便业务方检索查询。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
  2. Logstash基于java,是一个日志收集、过滤、转发的中间件,主要负责将各条业务线的各类日志统一收集、过滤后,转发给 Elasticsearch 进行下一步处理。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
  3. Kibana基于nodejs,是一个可视化工具,也是一个开源和免费的,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

 

 

全系的Elastic Stack技术包括

数据采集使用beats ,Filebeat隶属于Beats。

目前Beats包含四种工具:

  1. Packetbeat:搜集网络流量数据,是一个网络包分析器,用于监控,收集网络流量信息,Package嗅探服务器之间的流量,解析应用层信息,并关联到消息的处理,器支持ICMP(v4和v6),DNS,HTTPS,Mysql,Postgresql协议
  2. Topbeat:搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据
  3. Filebeat:搜集文件数据,用域监控,手机服务器的日志文件,器已经取代Logstash forwarder
  4. Winlogbeat:搜集 Windows 事件日志数据
  5. Mertricbeat:可定期获取外部系统的监控指标信息,可用于监控手机Apache,Haproxy,MongoDb,Mysql,Nginx,等服务
posted @ 2019-11-23 11:16  梦中泪  阅读(615)  评论(0编辑  收藏  举报