ELK日志分析系统

ELK是一套完整的日志集中处理方案,由三个开源的软件简称组成

E  【ElasticSearch(ES)】 开源的分布式存储检索引擎。索引型的非关系型数据库。存储日志。

Java代码开发。基于Lucene结构开发的一套全文检索引擎。拥有一个web接口。用户可以通过浏览器的形式和ES组件进行通信。

作用:存储。允许全文搜索、结构化搜索(索引点),索引点可以支持大容量的日志数据,也可以所有不同类型的文档。

L  【Logstash】 数据收集引擎。可以支持动态的(实时)从各种服务应用收集日志资源,还可以对收集到的日志进行过滤、分析,并且在一定程度上可以进行丰富、统一格式等操作,然后把数据同步到ES存储引擎。

RUBY语言编写的,运行在Java虚拟机上的一个强大的数据处理工具。数据传输、格式化处理、格式化输出。主要用来处理日志

数据收集工具:

fiebeat: 轻量级的开源的,日志手机共计。收集的速度较快,但是没有数据分析和过滤的能力,一般是结合logstash一块使用.

kafka

RabbitMQ 中间件消息队列

K  【Kiabana 图形化界面】 可以更好的分析存储在ES上的日志数据。提供了一个图形化界面,来浏览ES上的日志数据。汇总、分析、搜索等

ELK日志分析系统_第1张图片

总结:ELK的作用,当我们管理一个大集群时,需要进行分析和定位的日志就会很多,每一台服务器分别去分析,将会耗时耗力

所以我们应运而生了一个集中的统一的日志管理和分析系统。极大的提高了定位问题的效率。

日志系统的特征

1、收集,可以收集基本上市面上常用的软件日志

2、传输,收集到的日志需要发送到ES 上

3、存储, es负责存储数据

4、uI: 图形化界面(kiabana)

三台主机

ES1  192.168.233.20  2核4G起步

ES2  192.168.233.30  2核4G起步

logstash和Kiabana  192.168.233.10  4核8G起步

es的性能调优

修改打开的最大文件数

DefaultlimitNOFILE=65536

一个用户会话的默认最大文件描述符的限制量.

文件描述符: 用于标识打开文件或者I/O资源限制的整数

DefaultLimitNPROC=32000

一个用户可以打开的最大进程数量的限制 32000。 一个用户的终端可以运行多少个进程。

DefaultLimitMEMLoCK=infinity

一个用户的终端默认锁定内存的限制。infinity表示不限制

内核优化

ES是基于Lucene架构,实现的一款索引型数据库。Lucene可以利用操作系统的内存来缓存ES的索引数据。

提供更快的查询速度。在工作中我们会把系统的一半内存留给Lucene

机器内存小于64G,50%给ES,50%给操作系统,供lucene使用

机器内存大于64G,ES分配4-32G即可,其他的都给操作系统,供lucene使用

ym.max map_count=262144

一个进程可以拥有的最大内存映射区参数

内存映射: 将文件或者其他设备映射进程空间的方法。允许进程直接读取或写入文件,无需常规的I/O方式

映射空间越大,ES和lucene的速度越快

28/262144

48/4194304

8g/8388608

http.cors.enabled: true

开启跨域访问的支持

http.cors.allow-origin: "*"

开启跨域访问之后

logstash的命令常用选项

-f指定配置文件,根据配置文件识别输入和输出流。

-e 测试,从命令行当中获取输入,然后经过logstash加工之后,形成一个标准输出

-t 检测配置文件是否正确,然后退出

logstash -e ‘input { stdin ) output{ stdout{} }’

所有的键盘命令行输出,转化成标准输出(rubydebug的模式),6.0之后,logstash的默认输出格式就是rubydebug格式的标准输出

rubydebug

在以前的版本需要手动配置:

Nov 27 12:05:56 test1 logstash: 2023-11-27T12:05:56 354[logstash.config.sourceloader] No configuration found in the configured

sources.

ELK

ES:存储数据,索引型的数据库

logstash: 收集日志,然后按照标准化格式发送给ES (RUBYDEBUG的格式)

K:可视化工具。更人性化的显示用户信息,方便用户检索查询

你可能感兴趣的:(elk)