企业级别应用--ELK企业级日志分析系统(ELK 日志分析系统 、配置 Elasticsearch 群集 )

本文介绍ELK(Elasticsearch、Logstash、Kibana)日志系统的原理、部署及使用方法,涵盖日志收集、分析和可视化全流程,助力运维人员高效排查故障。

一、 ELK日志系统简介

日志分析是运维工程师解决系统故障、发现问题的主要手段。日志包含多种类型,包括程序日志、Web 访问日志、系统日志以及安全日志等。ELK可以很好地查找以及分析所需要的内容,快速定位是否出现故障,以及哪些机器、哪些服务存在故障。

1.1 ELK的组成

ELK 由 ElasticSearch、Logstash 和 Kiabana 三个开源工具组成,其官方网站为 https://www.elastic.co/cn。

  • Elasticsearch 是一个开源分布式实时分析搜索引擎,建立在全文搜索引擎库 Apache Lucene 基础上,同时隐藏了 Apache Lucene 的复杂性。Elasticsearch 将所有的功能 打包成一个独立的服务,并提供了一个简单的 RESTfulAPI 接口。它具有分布式、零配置、自动发现、索引自动分片、索引副本机制、RESTful 风格接口、多数据源、自动搜索负载等特点。
  • Logstash 是一个完全开源的工具,主要用于日志收集,同时可以对数据处理,并输出 给 Elasticsearch。
  • Kibana 也是一个开源和免费的工具,Kibana 可以为 Logstash 和 ElasticSearch 提 供图形化的日志分析 Web 界面,可以汇总、分析和搜索重要数据日志。

1.2 日志分析的步骤

Logstash 收集 AppServer 产生的 Log,并存放到 ElasticSearch 群集中,而 Kibana 则 从 ES 群集中查询数据生成图表,再返回给 Browser。

  1. 将日志进行集中化管理。
  2. 将日志格式化(Logstash)并输出到 Elasticsearch。
  3. 对格式化后的数据进行索引和存储(Elasticsearch)。
  4. 前端数据的展示(Kibana)。

1.3 Elasticsearch 介绍

Elasticsearch 提供了一 个分布式多用户能力的全文搜索引擎,基于 RESTful Web 接口。通过该接口,用户可以通 过浏览器与 Elasticsearch 通信。具有实时搜索、稳定、可靠、快速、安装使用方便等特点。

1.3.1 Elasticsearch 的基础核心概念

  • 接近实时(NRT):Elasticsearch 是一个搜索速度接近实时的搜索平台,响应速度非常 快,从开始索引一个文档到这个文档能够被搜索到只有一个轻微的延迟(通常是 1s) 。
  • 群集(cluster) :在一个或多个节点上存放用户数据,并一起提供索引和搜索功能。通过选举产生主节点,并提供跨节点的联合索引和搜索的功能。
  • 节点(node):是指一台单一的服务器,多个节点组织为一个群集,每个节点都存储数据并参与群集的索引和搜索功能。默认情况,每个节点都已经加入 Elasticsearch 群集。如果群集中有多个 节点,它们将会自动组建一个名为 Elasticsearch 的群集。
  • 索引(index):类似于关系型数据库中的“库”。当索引一个文档后,就可以使用 Elasticsearch 搜索到该文档,在 index 下面包含存储数据的类型(Type),Type 类似于关系型数据 库中的“表”,用来存放具体数据,而 Type 下面包含文档(Document),文档相当于关 系型数据库的“记录”,一个文档是一个可被索引的基础信息单元。
  • 分片和副本(shards & replicas):Elasticsearch 将索引分成若干个部分,每个部分称为一个分片,每个分片就是一个全功能的独立的索引。分片的数量一般在索引创建前指定,且创建索引后不能更改。
  • 分片的两个最主要原因如下。
    水平分割扩展,增大存储量。
    分布式并行跨分片操作,提高性能和吞吐量。
  • Elasticsearch 将索引分片复制一份或多份,称为副本。副本是索引 的另一个备份,用于数据冗余以及负载分担。默认情况下 Elasticsearch 自动对索引请求进行负载分担。

1.4 Logstash 介绍

Logstash 由 JRuby 语言编写,运行在 Java 虚拟机(JVM)上,常用于日志处理。Logstash 只做三件事情:数据输入、数据加工(如过滤,改写等) 以及数据输出。
LogStash 的主要组件如下。

  • Shipper:日志收集者。负责监控本地日志文件的变化,及时收集最新的日志文件内容。通常远程代理端(agent)只需要运行这个组件即可。
  • Indexer:日志存储者。负责接收日志并写入到本地文件。
  • Broker:日志 Hub。负责连接多个 Shipper 和多个 Indexer。
  • Search and Storage:允许对事件进行搜索和存储。
  • WebInterface:基于 Web 的展示界面。

Logstash 使用管道方式进行日志的搜集处理和输出。有点类似 Linux 系统的管道命令, 将前一个流程的处理结果发送到后一个流程继续处理。在 Logstash 中,包括了三个阶段, 分别是输入(Input )、处理(Filter,非必需)和输出(Output)。

1.5 Kibana 介绍

Kibana可以搜索、查看存储在 Elasticsearch 索引中的数据,并通过各种图表进行高级数据分析及展示,让数据看起来一目了然。

Kibana 的主要功能如下。

  • Elasticsearch 无缝之集成。Kibana 架构是为 Elasticsearch 定制的,可以将任何(结构 化和非结构化)数据加入 Elasticsearch 索引。
  • 整合数据。Kibana 可以让海量数据变得更容易理解,根据数据内容可以创建形象的柱形图、折线图、散点图、直方图、饼图和地图,方便用户查看。
  • 复杂数据分析。Kibana 提升了 Elasticsearch 的分析能力,能够更加智能地分析数据,执行数据转换并且根据要求对数据切割分块。
  • 让更多团队成员受益。强大的数据库可视化接口让各业务岗位都能够从数据集合受益。
  • 接口灵活,分享更容易。使用 Kibana 可以更加方便地创建、保存、分享数据,并将可视化数据快速交流。
  • 配置简单。Kibana 的配置和启用非常简单,用户体验非常友好。Kibana 自带 Web 服务,可以快速启动运行。
  • 可视化多数据源。Kibana 可以非常方便地把来自 Logstash、ES-Hadoop、Beats 或第三方技术的数据整合到 Elasticsearch。
  • 简单数据导出。Kibana 可以方便地导出感兴趣的数据,与其他数据整合并融合后快速建模分析,发现新结果。

二、 部署Elasticsearch 群集

部署Elasticsearch 群集至少需要两台服务器

2.1 部署过程

1. 准备环境

修改主机名、hosts文件、关闭防火墙、内核防护

[root@localhost ~]# hostnamectl set-hostname node1
[root@localhost ~]# su
[root@node1 ~]# vim /etc/hosts    ##在hosts文件中写入下面的解析条目
14.0.0.77 node1
14.0.0.110 node2
[root@node1 ~]# systemctl stop firewalld.service 
[root@node1 ~]# setenforce 0
[root@node1 ~]# java -version    ##查看jdk是否安装
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

[root@localhost ~]# hostnamectl set-hostname node2
[root@localhost ~]# su
[root@node2 ~]# vim /etc/hosts
14.0.0.77 node1
14.0.0.110 node2
[root@node2 ~]# systemctl stop firewalld.service 
[root@node2 ~]# setenforce 0

2. 安装Elasticsearch软件

两个节点服务器进行相同的操作,以node1服务器为例

[root@node1 ~]# cd /opt   ##将软件包拷贝到/opt目录下
rz waiting to receive.
[root@node1 opt]# ls
elasticsearch-5.5.0.rpm    logstash-5.5.1.rpm                    rh
elasticsearch-head.tar.gz  node-v8.2.1.tar.gz
kibana-5.5.1-x86_64.rpm    phantomjs-2.1.1-linux-x86_64.tar.bz2
[root@node1 opt]# rpm -ivh elasticsearch-5.5.0.rpm     ##rpm方式安装elasticsearch软件
警告:elasticsearch-5.5.0.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID d88e42b4: NOKEY
准备中...                          ################################# [100%]
Creating elasticsearch group... OK
Creating elasticsearch user... OK
正在升级/安装...
   1:elasticsearch-0:5.5.0-1          ################################# [100%]
### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd
 sudo systemctl daemon-reload
 sudo systemctl enable elasticsearch.service
### You can start elasticsearch service by executing
 sudo systemctl start elasticsearch.service
[root@node1 opt]# systemctl daemon-reload     ##重载系统服务
[root@node1 opt]# systemctl enable elasticsearch.service    ##设置为开机自启动
Created symlink from /etc/systemd/system/
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值