文章目录
一、ELK日志分析系统的概念
组成
elk系统由三部分组成
Elasticsearch:提供了一个分布式多用户能力的全文搜索引擎
Logstash:一款强大的数据处理工具
Kibana:针对Elasticsearch的开源分析及可视化平台
优缺点
优点
提高安全性
集中化管理
缺点
日志分析困难
日志的处理过程
将日志进行集中化管理(beats)其中包含四个服务
Packetbeat(搜集网络流量数据)
Topbeat(搜集系统、进程和文件系统级别的CPU和内存使用情况等数据)
Filebeat(搜集文件数据)
Winlogbeat(搜集Windows事件日志数据)
将日志格式化(Logstash)并输出到Elasticsearch
对格式化后的数据进行索引和存储(Elasticsearch)
前端数据的展示(Kibana)
二、ELK组件和各自的特性
1.Elasticsearch五个特性
接近实时
Elasticsearch在文件搜索上速度接近实时 用索引来搜索一个文件大约只有1秒的延迟 类似于一个数据库
集群
集群由一个或者多个节点组成 所有从beast收集数据都汇总在这里 并提供索引和搜索功能
有一个主节点 通过选取产生 可以跨节点来联合搜索和索引
集群名是一个唯一的标识符 默认是Elasticsearch,节点通过不同的主机名加入集群 不同的环境要使用不同的集群名
在集群中每个节点有不同的主机民 通过不同的主机名来区分 不可以有相同的主机名 主机名在集群中为节点的唯一身份标识
节点
单台服务器组成一个节点 用来存储数据并提供索引的检索 节点也是通过主机名来进行标识 不可以重复,默认是在节点启动时随机分配的字符名。也可自己定义 名字对应节点
节点通过指定集群名来加入集群 如果集群名为默认的 在几个节点搭建成后 可以发现对方的时候 可以自行搭建集群
索引
用来检索数据 一个索引可以找到若干个数据
索引名由小写字母组成 在对一个特定的数据进行索引时需要用这个索引来搜索
文档
存储数据的基本单位 可以被索引检索到
在一个index和type中 可以创建任意个文档来存数据 位置位于一个索引的物理位置上 要分配一个类型 这样才可以被索引
分片和副本
实际情况下,索引存储的数据可能超过单个节点的硬件限制。为了解决这个问题,Elasticsearch提供将索引分成多个分片的功能。当在创建索引时,可以定义想要的分片数量。每一个分片就是一个全功能的独立的索引,可以位于集群中任何节点上。
分片的主要原因:
水平分割扩展,增大存储量
分布式并跨越分片操作,提高性能和吞吐量
分布式分片机制和搜索请求的文档如何火鬃完全是由Elasticsearch控制的,这些对用户是完全透明的。
为了健壮性,建议有一个故障切换机制,为此,Elasticsearch让我们将索引分片复制一份或多份,称之为分片副本
分片副本的原因:
高可用性,以应对分片或者节点故障。处于这个原因,分片副本要在不同的节点上
增大吞吐量,搜索可以并行在所有副本上执行
总之,每个索引可以被分成多个分片。一个索引可以被复制0次或者多次。一旦复制了,每个索引就有了主分片 (作为复制源的原来的分片)和复制分片(主分片的拷贝)之别。分片和副本的数量可以在索引创建的时候指定。在索引创建之后,你可以在指定任何时候动态的改变副本的数量,但是你事后不能改变分片的数量。
默认情况下,Elasticsearch中的每个索引被分片5个主分片和1个副本,这意味着,如果你的集群中至少有两个节点,你的索引将会有5个主分片和另外的5个副本分片(一个完全拷贝),这样的话每个索引总共有10个分片。
和数据库的类似概念
Elasticsearch和数据库中的一些概念有些类似
2 Logstash
Logstash由JRuby语言编写,基于meassage-based架构,运行在jvm虚拟机上,Logstash可配置单一的代理端与其他开源软件结合,以实现不同的功能。
插件
input:收集源数据(访问日志、错误日志等)
Filter Plugin:用于过滤日志和格式处理
Output:输出日志
主要组件
Shipper(日志收集):负责监控本地日志文件的变化,及时把日志文件的最新内容收集起来。通常,远程代理端(agent)只需要运行这个组件即可
Indexer(日志存储):负责接收日志并写入到本地文件
Broker(日志Hub):负责连接多个Shipper和多个Indexer
Search and Storage:允许对事件进行搜索和存储
Web Interface:基于Web的展示界面
主机分类
代理主机是将从beats收集的数据发送至中心服务器处理 只需要运行代理程序
中心主机可运行包括中间转发器(Broker)、索引器(Indexer)、搜索和存储器(Search and Storage)、Web界面端(Web Interface)在内的各个组件,以实现对日志数据的接收、处理和存储
3 kibana
一款可以将Elasticsearch数据进行可视化操作的工具 用浏览器进行查看软件
主要特点
与Elasticsearch无缝衔接
整合数据
对复杂的数据进行分析
可以让各个成员得到数据
api灵活 可以进行分享
配置简单
对数据进行可视化操作
数据的导出和导入
三 部署ELK系统
架构图
2台节点都要执行以下操作
systemctl stop firewalld 关闭防火墙
setenforce 0
#修改各个节点的主机名
host