ELK 日志分析系统的部署

本文详细介绍了ELK(Elasticsearch、Logstash、Kibana)日志分析系统的部署过程,包括ELK的组件、工作原理、架构选型以及在不同节点上的集群部署步骤。重点讲解了Elasticsearch的分片和副本概念,Logstash的日志收集,以及Kibana的可视化展示。在集群部署中,涉及了Elasticsearch的集群配置、Logstash的配置文件编写以及Kibana的安装与索引创建。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言


一、ELK前言

1.我们需要收集哪些日志?
收集系统日志:为监控做准备,要收集tomcat系统日志,tomcat所在节点的日志
收集服务日志:比如数据库mysql,收集慢查询日志、错误日志、普通日志,要收集tomcat服务日志。
收集业务日志(业务日志必须收集):业务口子日志在log4j,log4j是由java环境开发的,跑在tomcat上
2.日志收集后,如何展示(可视化)?
kibana
grafana:可以以地图的方式展示,功能更全面一些,界面会好看一些
3.日志收集展示出来后,怎么使用?
用于给大数据分析,作为立体化展示的一个数据源
给研发去使用(排障、解决bug等)
统计数据流量,作为分析报告的数据源
4.我们要怎么收集日志
我们需要有针对性的去收集日志
日志收集是根据我们设置的日志级别来看的,对于不是很重要的日志,日志级别调高一点。比如error的时候报给我,普通日志不用报。这样可以有效降低日志量。像这种业务日志,我们不适合调error级别,我们需要调成warning级别。

二、ELK简介

2-1ElasticSearch介绍

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

2-2 ElasticSearch核心概念

接近实时

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

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

集群化

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

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

节点

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

索引

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

类型

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

文档

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

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

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

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

分片的两个最主要原因: a.提高了扩展能力、b、提高了单机存存储上限,c.分布式并行跨分片操作,提高性能和吞吐量
分布式分片的机制和搜索请求的文档如何汇总完全是由elasticsearch控制的,这些对用户而言是透明的。
网络问题等等其它问题可以在任何时候不期而至,为了健壮性,强烈建议要有一个故障切换机制,无论何种故障以防止分片或者节点不可用。
副本也有两个最主要原因:a.高可用性,以应对分片或者节点故障。出于这个原因,分片副本要在不同的节点上。b. 增加了读写性能,增大吞吐量。搜索可以并行在所有副本上执行。
2.2ELK里面有哪些组件
Logstash(日志收集):主要用于收集、输出、格式化数据

Elasticsearch(日志存储和搜索):用于建立索引,因为它的副本和分片,他的搜索能力很强。

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

2.3 你们一般用的ES版本是什么?
7.10和7.20,但是有一个特性就是,启动时,必须为非root用户。es启动时很吃内存。而且会卡很久。

三、ELK的工作原理

1.在所有需要收集日志的服务器上部署Logstash; 或者先将日志进行集中化管理在日志服务器上, 在日志服务器上部署 Logs tash。
2.Logstash 收集日志,将日志格式化并输出到 Elasticsearch 群集中。
3.Elasticsearch 对格式化后的数据进行索引和存储。
4.Kibana 从 ES 群集中查询数据生成图表,并进行前端数据的展示。

四、ELK架构选型

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

环境:

服务器类型 系统和IP地址 需要安装的组件 硬件方面
Node1节点 CentOS7.4(64 位) 192.168.59.115 Elasticsearch 、 Kibana 2核4G
Node2节点 CentOS7.4(64 位) 192.168.59.116 Elasticsearch 2核4G
Apache节点 CentOS7.4(64 位) 192.168.59.119 Logstash Apache 2核4G

5-1 ELK Elasticsearch 集群部署(在Node1、Node2节点上操作)

1.环境准备
#更改主机名
Node1节点:hostnamectl set-hostname node1
Node2节点:hostnamectl set-hostname node2

#配置域名解析
vim /etc/hosts
192.168.72.10 node1
192.168.72.20 node2

#查看Java环境,如果没有安装,yum -y install java
java -version	
1
2
3
4
5
6
7
8
9
10
11

2.部署 Elasticsearch 软件

(1)#上传elasticsearch-5.5.0.rpm到/opt目录下
cd /opt
rpm -ivh elasticsearch-5.5.0.rpm 

(2)#加载系统服务
systemctl daemon-relo
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值