ELK是一套完整的日志集中处理方案。
E:ElasticSearck ES 分布式索引型非关系数据库 存储logstash输出的日志 全文检索引擎,保存的格式是json格式
L:logstash 基于java语言开发的,数据收集引擎。日志的收集,可以对数据进行过滤,分析,汇总,以标准格式输出
K:Kiabana 是es的可视化工具。对es存储的数据进行可视化展示,分析和检索。
ELK F K
F
filebeat:轻量级的开源日志文件数据搜集器,logstash占用系统资源比较大,属于重量级,有了filebeat可以节省资源,可以通过filebeat和logstash实现义远程数据收集。
filebeat不能对数据进行标准输出,不能输出为es格式的数据,所以需要logstash把filebeat数据做标准化处理。
k
kafka 消息队列
总结
ELK的作用:当我们管理一个大集群时,需要分析和定位的日志就会很多,每一台服务器分别去分析,将会耗时耗力。所以应运而生了一个集中统一的日志管理和分析系统。极大的提高了定位问题的效率。
日志系统的特征:
1、 收集,可以收集基本上市面上常用的软件日志。
2、 传输,收集到的日志需要发送到ES上
3、 存储,ES负责存储数据
4、 UI:图形化界面(kiabana)
如何实现过滤
kibana可以自动实现过滤
可以添加可用字段查看日志
不再需要再配置文件中加入字段了
需要移除字段,直接点移除即可
自动刷新功能:可选择刷新间隔。生产中一般
时间戳:选择绝对展示这一天内所有数据信息
es的性能调优
vim /etc/security/limits.conf
#修改最大打开文件数
* soft nofile 65536
#打开最大文件数软限制
* hard nofile 65536
#打开最大文件数硬限制
* soft nproc 32000
#打开最大进程软限制
* hard nproc 32000
#打开最大进程硬限制
* soft memlock unlimited
#是否对内存使用量软限制unlimited:不做限制
* hard memlock unlimited
#是否对内存使用量硬限制unlimited:不做限制
重启生效
vim /etc/systemd/system.conf
#对内核文件进行优化
在最后一行插入
DefaultLimitNOFILE=65536
#一个用户会话的末日最大文件描述符的限制量
#文件描述符:用于标识打开文件或者I/O资源限制的整数
DefaultLimitNPROC=32000
#一个用户可以打开的最大进程数量的限制 32000个,一个用户的终端可以运行多少个进程
DefaultLimitMEMLOCK=infinity
#一个用户的终端,默认锁定内存的限制。infinity:不做限制
#这个限制需要重启生效
内核优化
ES是基于lucene架构,实现的一款索引型数据库。lucene可以利用操作系统的内存来缓存ES的索引数据。提供更快的查询速度。在工作中我们会把系统的一般内存留给lucene。
部署es通用规则
如果机器内存小于64G。那么50%给ES。50%给操作系统,让操作系统内存给lucene架构缓存数据
如果机器内存大于64G。那么ES分配4-32G即可,其他的都给操作系统,供lucene架构缓存数据
vim /etc/sysctl.conf
#修改内核文件
vm.max map_count=262144
#一个进程可以拥有的最大内存映射区参数
#内存映射:将文件或者其他设备映射到进程地址空间的方法。允许进程直接读取或写入文件,无需常规的I/O方式。映射空间越大,ES和lucene的速度越快。
sysctl -p
#立即生效
映射关系:
2g/262144
4g/4194304
8g/8388608