ELK 日志分析系统的部署


一、ELK前言

1.1 需要收集的日志

  1. 系统日志:为监控做准备,要收集tomcat系统日志,tomcat所在节点的日志

  2. 服务日志:比如数据库mysql,收集慢查询日志、错误日志、普通日志,要收集tomcat服务日志。

  3. 业务日志(业务日志必须收集):业务口子日志在log4j,log4j是由java环境开发的,跑在tomcat上

1.2 日志收集后,如何可视化

  1. kibana

  2. grafana:可以以地图的方式展示,功能更全面一些,界面会好看一些

1.3 日志收集可视化后,怎么使用

  1. 用于给大数据分析,作为立体化展示的一个数据源

  2. 给研发去使用(排障、解决bug等)

  3. 统计数据流量,作为分析报告的数据源

1.4 要怎么收集日志

我们需要有针对性的去收集日志,日志收集是根据我们设置的日志级别来看的,对于不是很重要的日志,日志级别调高一点。比如error的时候报给我,普通日志不用报。这样可以有效降低日志量。像这种业务日志,我们不适合调error级别,我们需要调成warning级别。

二、ELK简介

2.1 ElasticSearch介绍

Elasticsearch是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,快速,安装使用方便操作。

2.2 ElasticSearch核心概念

  1. 接近实时

ElasticSearch是一个接近实时的搜索平台

这就是说,我们从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟(通常是1秒)

  1. 集群化

集群每一台服务器都有自己的一个唯一标识,比如说id,标识自己在集群中的一个定位。

个集群就是由一个或多个节点组织在一起,它们共同持有你整个的数据,并一起提供索引和搜索功能。其中一个节点为主节点,这个主节点是可以通过选举产生的,并提供跨节点的联合索引和搜索的功能。

  1. 节点

节点就是一台单一的服务器,是集群的一部分,存储数据并参与集群的索引和搜索功能。像集群一样,节点也是通过名字来标识,默认是在节点启动时随机分配的字符名。当然,你可以自己定义。该名字也很重要,在集群中用于识别服务器对应的节点。

  1. 索引

一个索引就是一个拥有几分相似特征的文档的集合。比如说,你可以有一个客户数据的索引,另一个产品日录的索引,还有一个订单数据的索引。一个索引由一个名字来标识(必须全部是小写字母的),并且当我们要对对应于这个索引中的文档进行索引、搜索、更新和删除的时候都要使用到这个名字。在一个集群中,如果你想,可以定义任意多的索引。

  1. 类型

在一个索引中,你可以定义一种或多种类型。一个类型是你的索引的一个逻辑.上的分类/分区,其语义完全由你来定。通常,会为具有一组共同字段的文档定义一个类型。比如说,我们假设你运营一个博客平台并且将你所有的数据存储到一个索引中。在这个索引中,你可以为用户数据定义一个类型,为博客数据定义另一个类型,当然,也可以为评论数据定义另一个类型。

  1. 文档

一个文档是一个可被索引的基础信息单元。比如,你可以拥有某一个客户的文档,某一个产品的一个文档,当然,也可以拥有某个订单的一个文档。文档以JSON 格式来表示,而JSON是一个到处存在的互联网数据交互格式。 在一个index/type里面,只要你想,你可以存储任意多的文档。注意,虽然一个文档在物理上位于一个索引中,实际上一个文档必须在一个索引内被索引和分配一个类型。

  1. 分片和副本(默认情况下是5个分片、1个副本,这意味着,如果你的集群至少有两个节点,你的索引将会有5个分片和另外5个副本,)

在正常情况下,单个节点的存储和索引以及I/O读写效率是很容易遇到瓶颈的。为了提高瓶颈上限,所以在这里,对于存储进行一个分布式,多个节点做一个任务。可以提高存储上线,可以提高搜索上限,同时可以减轻压力均摊。

elasticsearch提供将索引分成多个分片的功能。当在创建索引时,可以定义想要分片的数量。每一个分片就是一个全功能的独立的索引,可以位于集群中任何节点上。

  1. 分片的两个最主要原因:
    (1)水平分割扩展,增大存储量
    (3)分布式并行跨分片操作,提高性能和吞吐量

  2. 分布式分片的机制和搜索请求的文档如何汇总完全是由elasticsearch控制的,这些对用户而言是透明的。

  3. 网络问题等等其它问题可以在任何时候不期而至,为了健壮性,强烈建议要有一个故障切换机制,无论何种故障以防止分片或者节点不可用。

  4. 副本也有两个最主要原因:
    (1)高可用性,以应对分片或者节点故障。出于这个原因,分片副本要在不同的节点上。
    (2)增加了读写性能(qps性能),增大吞吐量。搜索可以并行在所有副本上执行。

2.2 ELK里面有哪些组件

Logstash(日志收集):主要用于收集、输出、格式化数据

Elasticsearch(日志存储和搜索):用于建立索引,因为它的副本和分片,他的搜索能力很强。
PS:(ES版本 7.10 和 7.20),特性是:启动时,必须为非root用户。es启动时很吃内存,可能会卡很久。

Kibana(展示):作为展示用的,展示的话在于日志收集后、由es创建建立索引,并且最后传给kibana,通过kibana展现出来。他的兼容性特别好。

2.3 ELK的工作原理

  1. 在所有需要收集日志的服务器上部署Logstash; 或者先将日志进行集中化管理在日志服务器上, 在日志服务器上部署 Logs tash。

  2. Logstash 收集日志,将日志格式化并输出到 Elasticsearch 群集中。

  3. Elasticsearch 对格式化后的数据进行索引和存储。

  4. Kibana 从 ES 群集中查询数据生成图表,并进行前端数据的展示。

三、 ELK日志分析系统集群部署

需求环境:

服务器类型	     系统和IP地址	              需要安装的组件	              硬件方面
Node1节点	   CentOS7  192.168.24.20	     Elasticsearch 、 Kibana	  2核4G
Node2节点	   CentOS7  192.168.24.30	     Elasticsearch	              2核4G
Apache节点	   CentOS7  192.168.24.40	     Logstash Apache	          2核4G

3.1 ELK Elasti

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值