一、ELK日志分析系统简介
1、ElasticSearch
ElasticSearch:是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志
Elasticsearch 是用 Java 开发的,可通过 RESTful Web 接口,让用户可以通过浏览器与 Elasticsearch 通信
2、Logstash
Logstash:主要用于日志收集,同时可以对数据处理,并输出给 Elasticsearch
Logstash 由JRuby 语言编写,运行在Java虚拟机(JVM)上,是一款强大的数据处理工具,可以实现=数据传输、格式处理、格式化输出。 Logstash 具有强大的插件功能,常用于日志处理
3、Kibana
Kibana:是基于Node.js开发的展示工具,可以为Logstash和ElasticSearch提供图形化的日志分析Web界面,可以汇总、分析和搜索重要数据日志
二、ELK的工作原理
1、在所有需要收集日志的服务器上部署Logstash;或者先将日志进行集中化管理在日志服务器上,在日志服务器上部署 Logstash
2、Logstash 收集日志,将日志格式化并输出到 Elasticsearch 群集中
3、Elasticsearch 对格式化后的数据进行索引和存储
4、Kibana 从 ES 群集中查询数据生成图表,并进行前端数据的展示
三、Elasticsearch 介绍
1、 概述
提供了一个分布式多用户能力的全文搜索(索引)引擎,开源
分布式即数据不会放在一个地方
正是 ES 这些优秀的机制,所以会被百度等龙头企业所选择
2、 核心概念
接近实时:指索引和数据处理的能力
集群:一个内部组件 ES 的架构(特性)
节点:有集群必定有节点
索引:
——索引(库)→ 索引类型(表)→ 索引的具体文档(记录)
——索引根据以上这个方式来进行数据(位置)定位
分片:例如,一个40G的文件,分为两份20G的文件,存放至两个节点上,读取这个40G的文件时,会效率更快
副本:核心是为了容灾,不过也可以处理任务
分片加上副本的使用:例如,四台主机同时处理项任务,理论上效率可以提高四倍
四、Logstash介绍
1、Logstash介绍
一款强大的数据处理工具
可实现数据传输、格式处理、格式化输出
数据输入、数据加工(如过滤,改写等)以及数据输出
2、LogStash主要组件
Shipper
Indexer
Broker
Search and Storage
Web Interface
五、Kibana介绍
1、Kibana介绍
一个针对Elasticsearch的开源分析及可视化平台
搜索、查看存储在Elasticsearch索引中的数据
通过各种图表进行高级数据分析及展示
2、Kibana主要功能
Elasticsearch无缝之集成
整合数据,复杂数据分析
让更多团队成员受益
接口灵活,分享更容易
配置简单,可视化多数据源
简单数据导出
六、ELK部署
1、环境部署
2、关闭防火墙
#关闭所有服务器的防火墙
systemctl stop firewalld
setenforce 0
3、更改主机名
hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname apache
4、配置域名解析、查看java环境
#在所有服务器上都配置上
echo “192.168.66.33 node1” >> /etc/hosts
echo “192.168.66.44 node2” >> /etc/hosts
java -version #查看java环境
5、部署elasticsearch软件
#在node1和node2上部署
(1)安装elasticsearch5.5.0.—rpm包
#将软件包传到/opt目录下
rpm -ivh elasticsearch-5.5.0.rpm
(2)加载服务
systemctl daemon-reload
systemctl enable elasticsear