ELK日志收集系统概述
前言
- 日志分析是运维工程师解决系统故障,发现问题的主要手段。日志主要包括系统日志应用程序日志和安全日志
- 系统运维和开发人员可以通过日志了解服务器软硬件信息检查配过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误
- 通常,日志被分散的储存在不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志,既繁琐又效率低下。为此,我们可以使用集中化的日志管理,例如:开源的 syslog,将所有服务器上的日志收集汇总
- 集中化管理日志后,日志的统计和检承又成为一件比较麻烦的事情,一般我们使用 grep、awk 和 wc 等 Linux 命令能实现检索和统计,但是对于更高要求的查询、排序和统计等,再加上庞大的机器数量,使用这样的方法依然难免有点力不从心
- 开源实时日志分析 ELK 平台能够完美的解决我们上述的问题,ELK 由 ElasticSearch、Logstash 和 Kiabana 这三个开源工具组成、
一、ELK 日志分析系统简介
1.日志服务器
- 提高安全性:仅是基于日志来恢复和定位故障,是很困难的
- 集中存放日志,即集中化管理
- 缺陷:对日志的分析困难,因为集中化管理,所以信息量更加巨大
2.ELK 日志分析系统
- Elasticsearch(ES 数据库):
- 最重要的两个功能在于索引与存储
- 百度、Github 的引擎是使用的 ES 索引数据库(主流)
- Logstash:
- 收集日志
- 转存至 ES
- Kibana:
- 是一个展示界面
- 数据源来自 ES
3.日志处理步骤
- AppServer 是一个类似于 Nginx、Apache 的集群,其日志信息由 Logstash 来收集
- 往往为了减少网络问题所带来的瓶颈,会把 Logstash 服务放入前者的集群内,减少网络的消耗
- Logstash 把收集到的日志数据格式化后输出转存至 ES 数据库内(这是一个将日志进行集中化管理的过程)
- 随后,Kibana 对 ES 数据库内格式化后日志数据信息进行索引和存储
- 最后,Kibana 把其展示给客户端
3.日志处理步骤
AppServer 是一个类似于 Nginx、Apache 的集群,其日志信息由 Logstash 来收集
往往为了减少网络问题所带来的瓶颈,会把 Logstash 服务放入前者的集群内,减少网络的消耗
Logstash 把收集到的日志数据格式化后输出转存至 ES 数据库内(这是一个将日志进行集中化管理的过程)
随后,Kibana 对 ES 数据库内格式化后日志数据信息进行索引和存储
最后,Kibana 把其展示给客户端
即对前文中 ELK 三个组件的介绍
一点补充→日志的集中化管理(beats)
beats 包括四种工具:
- Packetbeat(搜索网络流量数据)
- Topbeat(搜索系统、进程和文件系统级别的 CPU 和内存使用情况等数据)
- Filebeat(搜集文件数据)
- Winlogbeat(搜集 Windows 时间日志数据)
二、Elasticsearch 介绍
1.概述
- 提供了一个分布式多用户能力的全文搜索(索引)引擎,开源,使用 Java 开发
- 分布式即数据不会放在一个地方
- 正是 ES 这些优秀的机制,所以会被百度等龙头企业所选择
2.核心概念
2.1 接近实时(NRT)
2.2 集群(Cluster)
- 一个内部组件 ES 的架构(特性:ES 具有集群机制,节点通过集群名称加入到集群时,同时在集群中的节点会有一个自己的唯一身份标识)
- 一个集群就是由一个或多个节点组织在一起,它们共同持有你的整个的数据,并一起提供索引和搜索功能
- 其中一个节点为主节点,其可通过选举产生,并提供跨节点的联合索引和搜索的功能
- 集群有一个唯一性的标示的名字,默认为 Elasticsearch,集群的名字很重要!每个节点都是基于集群的名字加入到集群中的。因此,确保在不同环境中使用不同的集群名字
2.3 节点(node)
- 有集群必定有节点
- 节点就是一台单一的服务器,是集群的一部分,存储数据并参与集群的索引和搜索功能。像集群一样,节点也是通过名字来标识的,默认是在节点启动时随机分配的字符名
- 节点名字也很重要,用于在集群中识别服务器对应的节点
- 节点可以通过指定集群名字加入到集群中。默认情况下,每个节点被设置为加入到 Elasticsearch 群集
- 如果启动了多个节点,假设能自动发现对方,那么他们将会自动组件一个名为 Elasticsearch 的集群
2.4 索引(index)
- 索引(库)→索引类型(表)→索引的具体文档(记录)
- 索引根据以上这个方式来进行数据(位置)定位
- 一个索引就是一个拥有几分相似特征的文档的集合
- 一个索引由一个名字来标识(必须是全小写),每当我们需要对这个索引中的文档进行索引、搜索、更新和删除的时候,都需要使用到这个名字
- 相当于关系数据库中的库
2.5 类型(type)
2.6 文档(document)
2.7 分片(Shard)
- 在实际情况下,索引存储的数据可能超过单个节点的硬件限制,如一个巨大的文档需要1TB的空间,可能并不需要存储在单个节点的磁盘上,或者这样子从单个节点上搜索请求速度会非常慢。为了解决这个问题,Elasticsearch 提供将索引分层多个分片的功能
- 如,一个40G的文件,分为两份20G的文件,存放至两个节点上,这样读取这个40G的文件时,会效率更快
- 当在创建索引时,可以定义想要分片的数量,每一个分片就是一个全功能的独立的索引,可以位于集群中任何节点上
- 分片的两个最主要特点就是:
- 水平分割扩展,增大存储量
- 能够分布式并行跨分片操作,提供性能和吞吐量
- 分布式分片的机制和搜索请求的文档如何汇总是有 ES 进行控制的,且对用户完全透明
2.8 副本(Replicas)
网络问题等很多方面的风险可能会接踵而来,为了健壮性,强烈建议要有一个故障切换机制,无论何种遇到何种故障,都能防止分片或节点不可用(单点故障)
为此,ES 让我们将索引分片复制一份或多份,称之为分片副本或副本
核心是为了容灾,不过也可以处理任务
分片加上副本的使用:例如,四台主机同时处理一项任务,理论上效率可以提高四倍!
副本也有两个最重要的特点:
- 高可用性,以应对分片或节点故障,故此,分片副本要在不同的节点上
- 高性能,增加吞吐量,搜索可以在所有的副本上执行
2.9 小结
- 总之,每个索引可以被分成多个分片,且一个索引也可以被复制0次(即没有复制)或多次
- 一旦复制了,每个索引就有了主分片(作为复制源的原来的分片)和复制分片(主分片的拷贝)之别
- 分片和副本的数量可以在索引创建的时候指定,在索引创建之后,你可以在任何时候动态地改变副本的数量,但是你事后不能改变分片的数量
- 默认情况下,ES 中的每个索引被分片5个主分片和1个副本,这意味着,如果你的集群中至少有两个节点,你的索引将会有5个主分片和另外5个副本分片(1个完全拷贝),这样的话每个索引总共就有10个分片
三、Logstash 介绍
- 一款强大的数据处理工具,完全开源,基于消息(message-based)的简单架构,并运行在 java 虚拟机(JVM)上
- 它只做三件事:
- 实现数据传输(input)
- 格式处理(filter)
- 格式化输出(output)
- 数据输入、数据加工(如过滤,改写等)以及数据输出
- 即收集日志和输出日志,供以后使用(如搜索)
四、Kibana 介绍
1.概述
- 一个针对 Elasticsearch 的分析及提供友好、可视化的 Web 平台,开源免费!
- 用于搜索、查看存储在 Elasticsearch 索引中的数据
- 可以通过各种图表进行高级数据分析及展示,让海量数据更容易被理解
- 它操作简单,基于浏览器的用户界面,可以快速创建仪表板(Dashboard)实时显示 ES 查询动态
- 设置非常简单
2.主要功能
- 与 Elasticsearch 无缝之集成:ELK 初始是由 ES 收购了另外两家个技术(Logstash+Kibana),把其糅合在一起进行开发整合,形成了一个完整的技术
- 整合数据,复杂数据分析:能够很好的处理海量数据,节省我们分析日志数据的时间,降低其复杂度
- 让更多团队成员受益:有了这么一个公共的展示界面,只要有权限就都能进去查看,强大的数据可视化接口让各岗各业都能够从数据集合中收益
- 接口灵活,分享更容易: API 可以很方便的被调用,并将可视化数据快速交流,方便查看
- 配置简单,可视化多数据源:配合和启动非常简单,用户体验良好,可以对不止一种数据或日志类型进行展示,并且是精细化展示
- 简单数据导出:可以很方便的导出感兴趣的数据,与其他数据集合并融合后快速建模分析,从而发现新结果
五、拓展:EFK
ELK 的构成:
- Elasticsearch(数据库)
- Logstash(数据处理工具)
- Kibana(展示界面,数据来源于 ES)
EFK 的构成(功能性分离 + 抗高并发):
- Elasticsearch
- Logstash(↓仅做数据格式处理的工作,并发量太大时仅靠 Logstash 很难承受,而且它很吃资源)
- Filebeat (↑搜集文件数据,轻量级的日志收集工具,性能比上者强)
- Kafka(服务之间传递数据的消息代理,承载数据的交互及传输,抗高并发能力相对而言较强,每秒能处理几十万的并发量)
- Kibana
- Redis(缓存,减压)
EFK 是 ELK 的 plus 版,多用于业务体量非常大,及对日志收集、格式转换并且处理的一个复杂程度非常大的架构
ELK日志收集系统概述相关推荐
- SpringBoot使用ELK日志收集
本文介绍SpringBoot应用配合ELK进行日志收集. 1.有关ELK 1.1 简介 在之前写过一篇文章介绍ELK日志收集方案,感兴趣的可以去看一看,点击这里-----> <ELK日志分 ...
- ELK日志收集系统(一)
ELK日志收集系统(一) 一:软件包下载地址 二:环境准备 三:kibana安装与配置 四:安装nginx 五:filebeat安装配置 5.1 配置filebeat收集nginx日志 5.2 kib ...
- 深入浅出ELK日志收集系统搭建
先看一下目录图 背景 试想这么一种场景:Nginx负载了2个Tomcat,那么日志查看就很麻烦了,每次查看日志都要登录2台服务器,挨个搜索,2台还好,如果5台呢?10台呢?那查看日志就可费劲了,所以需 ...
- ELK 日志收集系统方案
文章目录 背景 ELK使用组件简介 方案1 ELK 方案二 EFK 方案三: FELK 方案四:个性化框架 总结: 日志展示及查询 环境 背景 在项目初期的时候,大家都是赶着上线,一般来说对日志没有过 ...
- 基于设计原理与理念和实践的ElasticSearch学习、ELK日志收集、网盘搜索引擎
目录 基于设计原理与理念和实践的ElasticSearch学习 一.ES基础入门 ElasticSearch是什么? ES优点: ES缺点: ElasticSearch应用场景 ElasticSear ...
- ELK日志分析系统概述及部署
这里写目录标题 一.ELK日志分析系统 1.日志服务器 2.日志处理步骤 二.Elasticsearch概述 1.Elasticsearch特性 三.LogStash概述 1.LogStash主要组件 ...
- SpringBoot整合ELK日志收集
ELK简介 ELK是Elasticsearch+Logstash+Kibana简称 Elasticsearch 是一个分布式的搜索和分析引擎,可以用于全文检索.结构化检索和分析,并能将这三者结合起来. ...
- 使用 Kafka 缓存优化 ELK 日志收集
00 前言 上回书,我们提到直接使用 Filebeat 在节点上采集日志数据然后直接传输给 Elasticsearch 存储,在日志规模较大时,可能导致 Elasticsearch 存储集群容量不足, ...
- ELK之日志收集filebeat,并对nginx,tomcat access日志JSON格式化
2019独角兽企业重金招聘Python工程师标准>>> 一:ELK日志收集器组件filebeat下载 官方下载地址:https://www.elastic.co/downloads/ ...
最新文章
- linux常用命令-date-clock-hwclock-type-whois--help-man-info-cal
- ABAP程序相互调用--SUBMIT
- net start mysql 发生系统错误 5。 拒绝访问。
- el-table合并行的实现
- TYVJ P1062 合并傻子 Label:环状dp
- 秀姿势(jzoj 3464)
- C语言实用算法系列之学生管理系统_对整个结构体操作_冒泡排序
- 海德堡大学 BMCV 组(Master/Diploma/Bachelor)研究机会,生物医学图像分析方向
- 我自己比较习惯的Watir自动化测试代码管理方式
- Rust: rev()、Vec、其它
- window下环境变量立即生效
- 2022年CISP考试题库下载
- 企业如何真正实现无纸化办公?
- 自动柜员机是不是微型计算机,微型计算机基础知识.pptx
- 怎么样成为java架构师_java架构师工资一般多少?怎样成为架构师?
- 白苹果了怎么办_建行储蓄卡云闪付bug还款玩法(苹果和安卓机攻略)
- 硬盘格式化数据恢复(图文教程)
- 深入浅出,详解深度优先搜索(DFS)
- java在windows下启动jar包使用utf-8格式
- 语言-英语翻译(edx-datascientist 1.5-1.8)
热门文章
- php网络电台源码,网络有声电台源码仿邻居的耳朵 v1.0.0
- 大数据题目测试(一)
- 《NFL橄榄球》:辛辛那提猛虎·橄榄1号位
- 【世界杯黑技术专题】「原理探索专题」一文解读一下“卡塔尔世界杯”的先进技术之半自动越位技术SAOT+比赛用球Al Rihla
- mysql开通远程连接不上去_MySQL本地可以连接,远程连接不上的问题_夜风的BLOG-CSDN博客_mysql远程连接不上...
- STL的string功能以及模拟实现
- 苹果创始人Steve Wozniak:程序员的好奇心是与生俱来的
- 有创意的撩妹肉麻句子,有你在的日子,每天都是在过情人节
- 输出格式%d、%6d、%06d、%-6d、%.6f的区分
- 51单片机驱动TCS3200颜色识别传感器