对ELK的一些思考总结
什么是ELK
E: Elasticsearch
L: Logstash
K: Kibana
所以,ELK是一个简写,通常会以ELK-stack出现在大家眼前,即说明这套技术一起使用的,很明显的一点,这三者在部署的时候是要部署相同的一个版本的,不能有不同,这点我认为是挺好的,毕竟,版本匹配这个问题确实非常让人头疼的
kinaba的索引是什么
在最开始学习的时候,就有一个困惑,kibana中的索引到是是什么?
是log日志文件中的字段(key)?
这个索引又是从哪里来的?
怎么这个概念从来没有听过?
那什么又是那个索引模式呢?
要想知道知道上面这些问题,想要了解一下,Elasticsearch和Mysql的不精确的对比
Elasticsearch与mysql的概念对比:
Elasticsearch | MySQL |
Index(索引) | Database(数据库) |
Type(类型) | Table(数据表) |
Dcoument(文档) | Row(行) |
Mapping | Schema |
Fields(字段) | Column(列) |
所以索引就是hikibana对一些数据做的一个标签,或者可以理解为,用一捆名字为XX(索引名称)的绳子捆住一些一些数据
所以是从哪里来的
在kibana前端界面直接导入数据的话,会要求你设置一个索引,相当于简历一个数据库,直接把你上传的这些数据直接管理起来
第二种方式经过Logstash获取到数据之后,根据在pipline.conf文件中定义的index(索引)来直接关联起来
什么是索引模式
由其提供的功能可以知道,他支持XXXX,也就是前面可以填任意多的字符,然后后面可以加一个表示通配,比如 nginx_2022_12*可以匹配到"nginx_2022_12" 和 "nginx_2022_13"等等,从这里我们就去推测作者的思路,即可以通过一个索引模式,将多个有直接关联的索引关联起来,类似于将多个数据库关联起来,这样子去统一协同分析
ELK在性能测试中的作用
最初学习ELK的时候,是在学习测试右移的时候,最开始老师说的是,使用ELK来监控软件上面生产环境之后的日志,监控业务情况,以此返回一些业务信息.所以,ELK对性能测试过程并无直接作用,而是在Devops环节中,做运维,并提供一个业务实际情况,或者一个业务的变化情况
对比过来grafana+prometheus(或者其他时序数据库)+node_exporter可以专注于指标数据的监控,在性能测试中就有很大作用了,因为性能指标数据(cpu,mem,网络,磁盘IO,缓存,数据库等指标)是直接用于性能测试过程中,观测系统的响应情况的