elk
文章平均质量分 84
elk实战
huan_1993
这个作者很懒,什么都没留下…
展开
-
es中将sql转换成dsl
在es中,有些时候我们知道sql语句是怎么写的,但是如果我想通过dsl来实现,那么该如何处理呢?其中在es中提供了将sql转换成dsl的api,此处我们来简单使用下。原创 2023-02-13 12:54:32 · 1705 阅读 · 0 评论 -
elasticsearch使用painless的一些简单例子
此篇文档仅仅是简单的记录一下painless的一些简单的例子,防止以后忘记,不过多涉及painless的语法。原创 2023-02-09 12:27:16 · 702 阅读 · 0 评论 -
elasticsearch中使用bucket script进行聚合
此篇文档简单的记录一下在`es`使用`bucket script`来进行聚合的一个例子。原创 2023-02-07 12:35:04 · 800 阅读 · 0 评论 -
elasticsearch中使用runtime fields
在我们使用es的开发过程中可能会遇到这么一种情况,比如我们的线路名称字段lineName字段在设置mapping的时候使用的是text类型,但是后期发现需要使用这个字段来进行聚合操作,那么我们除了对索引进行reindex操作外,还有什么办法可以解决这个问题呢?此处我们通过runtime field来解决。原创 2023-02-02 07:30:00 · 760 阅读 · 0 评论 -
在elasticsearch中简单的使用script_fields
在我们使用es时,有些时候需要动态返回一些字段,而这些字段是通过动态计算得出的,那么此时该如何操作呢? 比如:我们索引中有一个sex字段,保存的是1或0,而在页面上需要展示男或女,那么这个时候就可以使用script_fields来解决。可能有些人说,我通过后台进行格式化一下不就行了吗,但是假设我们需要在kibana等可视化工具上展示呢?原创 2023-01-31 13:11:58 · 2979 阅读 · 0 评论 -
如何在es中查询null值
在我们向es中写入数据时,有些时候数据写入到es中的是null,或者没有写入这个字段,那么这个时候在es中该如何查询出这种为null的数据呢?原创 2023-01-29 21:15:02 · 8677 阅读 · 7 评论 -
elasticsearch实现基于拼音搜索
自定义一个分词器,即可以实现拼音搜索,也可以实现中文搜索。原创 2023-01-15 12:19:45 · 1457 阅读 · 0 评论 -
elasticsearch实现简单的脚本排序(script sort)
我有一堆学生数据,其中`湖北省`的学生需要排在所有数据的最前面。`其余省`正序排序,对于`同一个省`的数据,按照`年龄`倒序排序。原创 2023-01-13 07:45:00 · 3862 阅读 · 0 评论 -
elasticsearch之metric聚合
此篇文章简单的记录一下 `elasticsearch`的`metric`聚合操作。比如求 平均值、最大值、最小值、求和、总计、去重总计等。原创 2022-12-27 12:22:58 · 894 阅读 · 0 评论 -
elasticsearch global 、 filters 和 cardinality 聚合
此处将单记录一下 `global` 、 `filters`和`cardinality`的聚合操作。原创 2022-12-10 11:36:32 · 959 阅读 · 2 评论 -
elasticsearch 聚合之 date_histogram 聚合
此处来简单学习一下 `elasticsearch` 的 `date_histogram`直方图聚合。它和普通的直方图`histogram`聚合差不多,但是`date_histogram`只可于 `日期或日期范围` 类型的值一起使用。原创 2022-12-01 07:45:00 · 3399 阅读 · 0 评论 -
elasticsearch 之 histogram 直方图聚合
`直方图聚合`是一种基于多桶值聚合,可从文档中提取的`数值`或`数值范围值`来进行聚合。它可以对参与聚合的值来动态的生成固定大小的桶。原创 2022-11-25 13:27:22 · 1927 阅读 · 0 评论 -
elasticsearch bucket 之rare terms聚合
我们知道当我们使用 `terms`聚合时,当修改默认顺序为`_count asc`时,统计的结果是不准备的,而且官方也不推荐我们这样做,而是推荐使用`rare terms`聚合。`rare terms`是一个`稀少`的term聚合,可以一定程度的解决升序问题。原创 2022-11-23 07:45:00 · 370 阅读 · 0 评论 -
elasticsearch多字段聚合实现方式
我们知道在`sql`中是可以实现 `group by 字段a,字段b`,那么这种效果在`elasticsearch`中该如何实现呢?此处我们记录在`elasticsearch`中的3种方式来实现这个效果。原创 2022-11-15 08:00:00 · 9074 阅读 · 4 评论 -
elasticsearch聚合之bucket terms聚合
此处简单记录一下`bucket`聚合下的`terms`聚合。记录一下`terms`聚合的各种用法,以及各种注意事项,防止以后忘记。原创 2022-11-14 07:45:00 · 705 阅读 · 0 评论 -
记录在linux上单机elasticsearch8和kibana8
此处简单记录一下,`elasticsearch8`和`kibana8`在`Centos7`下的单机安装步骤。原创 2022-10-31 07:30:00 · 1340 阅读 · 0 评论 -
filebeat收集日志到elsticsearch中并使用ingest node的pipeline处理
filebeat收集日志到elsticsearch中一、需求二、实现1、filebeat.yml 配置文件的编写2、加密连接到es用户的密码1、创建keystore2、添加一个ES_PASSWORD这个key3、列出keystore中已经有了多少个key4、删除keystore中的某个key5、修改filebeat.yml中es的密码3、准备测试数据4、运行filebeat5、查看结果三、如何读取同一个文件多次四、数据去重五、参考文档一、需求使用 filebeat 收集系统中的日志到 elasticse原创 2021-05-17 15:22:17 · 1068 阅读 · 1 评论 -
logstash收集的日志输出到elasticsearch中
logstash收集的日志输出到elasticsearch中一、需求二、实现步骤1、编写pipeline文件1、`elasticsearch`配置参数解析:2、可能会报的一个异常2、准备测试数据3、启动logstash4、在es上创建索引模式5、进行日志搜索三、参考文档一、需求使用logstash收集系统上的日志,并使用 grok解析日志,使用mutate修改解析出来的字段类型、删除字段、重命名字段,最后将解析好的日主输出到 elasticsearch中。二、实现步骤1、编写pipeline文件v原创 2021-05-13 20:47:18 · 3734 阅读 · 0 评论 -
使用logstash的grok插件解析springboot日志
使用logstash的grok插件解析springboot日志一、背景二、解决思路三、前置知识四、实现步骤1、准备测试数据2、编写`grok`表达式3、编写 logstash pipeline文件4、查看运行结果五、代码地址六、参考网址一、背景我们的应用程序通常每天都会产生非常多的日志,这些日志大多都是一个字符串的格式,那么我们如果想从中提取一些有用的信息(比如:请求的时间、日志的级别等),那么应该如果实现呢?二、解决思路针对以上的问题,我们可以通过正则表达式来匹配我们的日志内容,从而达到提取到有用原创 2021-05-13 12:27:09 · 1524 阅读 · 0 评论 -
logstash的mutate过滤器的使用
logstash的mutate过滤器的使用一、背景二、需求三、实现步骤1、安装 `csv codec` 插件2、准备需要读取的文件数据3、编写 pipeline ,读取和输出数据4、mutate 插件的使用1、coerce 给字段设置默认值1、配置文件的写法2、执行结果2、rename 给字段重命名1、配置文件的写法2、执行结果3、update 更新字段的值1、配置文件的写法2、执行结果3、解释4、replace 更新字段的值1、配置文件的写法2、执行结果5、convert 数据类型转换1、可以转换的数据类原创 2021-05-12 12:29:18 · 732 阅读 · 0 评论 -
logstash处理多行日志-处理java堆栈日志
logstash处理多行日志-处理java堆栈日志一、背景二、需求三、实现思路1、分析日志2、实现,编写pipeline文件四、注意事项五、参考文档一、背景在我们的java程序中,经常会输出一些日志,来帮助我们来分析一些问题。但是对于我们的异常来说,它可能存在多行,因此我们就需要处理这种多行的事件。在 logstash 中,我们可以借助 multiline codec 来处理。二、需求假设我们有如下数据。129904 [2021-05-11 13:31:19] [ip=] INFO o.s.c.原创 2021-05-11 15:08:25 · 2719 阅读 · 0 评论 -
logstash multi pipeline的使用
logstash multi pipeline的使用一、背景二、解决方案1、方案一:2、方案二:3、方案三:三、实现步骤1、编写 pipeline 文件1、从文件收集,输出到控制台2、从socket收集,输出到控制台2、修改 pipelines.yml 配置文件3、启动logstash4、测试1、测试 file 收集2、测试从 tcp 收集3、结果四、参考文档一、背景假设我们需要从多个渠道来收集数据,比如:1、从文件收集。2、从tcp收集。不同的渠道收集过来的数据需要做不同的处理。那么我们这个时候应该如原创 2021-05-11 10:31:37 · 1036 阅读 · 0 评论 -
使用logstash的input file filter收集日志文件
使用logstash的input file filter收集日志文件一、需求二、实现步骤1、前置知识2、编写pipeline文件3、Input 中 file 插件的部分参数解释:4、启动logstash5、测试三、参考链接一、需求使用logstash读取本地磁盘上的文件,并通过标准输出输出出来。二、实现步骤1、前置知识1、读取本地磁盘文件? 可以通过 input file plugin 来实现。2、如何保证文件的每一行只读取一次? 这个是通过 sincedb来保证的。2、编写p原创 2021-05-10 16:21:12 · 1558 阅读 · 0 评论 -
logstash的安装和简单使用
logstash的安装和简单使用一、安装1、下载并解压2、logstash 一些命令行参数1、查看帮助信息2、加载指定pipeline文件路径3、检测配置文件语法是否有错误4、热加载pipeline配置文件5、指定绑定的主机和启动的端口3、修改logstash的配置文件1、修改jvm的配置2、修改logstash.yml配置4、编写一个pipeline文件5、启动logstash6、查看运行结果二、pipeline的组成三、参考链接一、安装1、下载并解压# 下载,不同的操作系统下载不同的包wget原创 2021-05-09 15:15:20 · 711 阅读 · 0 评论 -
elasticsearch父子文档处理(join)
elasticsearch父子文档处理 join一、背景二、需求三、前置知识四、实现步骤1、创建 mapping2、添加父文档数据3、添加子文档4、查询文档1、根据父文档id查询它下方的子文档2、has_child返回满足条件的父文档3、has_parent返回满足父文档的子文档五、Nested Object 和 join 对比六、参考文档一、背景在我们工作的过程中,有些时候我们需要用到父子文档的关系映射。**比如:**一个问题有多个答案、一本书籍有多个评论等等。此处我们可以使用 es 的 jion数据原创 2021-05-08 12:25:41 · 1739 阅读 · 0 评论 -
elasticsearch基于RBAC认证和集群之间的TLS通讯
222原创 2021-04-28 22:28:45 · 400 阅读 · 0 评论 -
Java High Level REST Client 使用地理位置查询
Java High Level REST Client 使用地理位置查询一、需求一、需求使用 elasticsearch原创 2021-04-24 10:42:37 · 998 阅读 · 0 评论 -
使用cerebro可视化ElasticSearch集群信息
使用cerebro可视化ElasticSearch集群信息一、背景二、安装步骤1、下载并解压2、配置cerebro3、启动 cerebro4、启动界面三、注意事项四、参考文档一、背景es本身没有提供一个可视化的工具来查看集群的信息,使用命令行工具不太方便查看,此处安装cerebro来查看集群中的一些信息。二、安装步骤1、下载并解压# 下载wget https://github.com/lmenezes/cerebro/releases/download/v0.9.4/cerebro-0.9.4.原创 2021-04-22 10:30:55 · 489 阅读 · 1 评论 -
elasticsearch地理位置查询
elasticsearch地理位置查询一、背景二、geo数据类型1、geo_point2、geo_shape三、此处对geo_point类型实战1、背景2、插入地点数据1、创建索引2、插入地理位置数据3、执行检索1、geo_bounding_box 矩形过滤1、es查询语句2、查询结果2、geo_distance 圆形查询1、es查询语句2、查询结果3、geo_distance 查询并排序,返回距离相隔多少米1、es 查询语句2、查询结果4、geo_distance聚合2、查询结果5、geo-polygon原创 2021-04-21 17:55:52 · 1564 阅读 · 0 评论 -
elasticsearch使用ik中文分词器
elasticsearch使用ik中文分词器一、背景二、安装 ik 分词器1、从 github 上找到和本次 es 版本匹配上的 分词器2、使用 es 自带的插件管理 elasticsearch-plugin 来进行安装3、重启es三、测试 ik 分词1、测试默认的分词效果2、测试 ik_max_word 的分词效果3、测试 ik_smart 的分词效果4、自定义 ik 的启用词和停用词1、找到 ik 的配置目录2、修改 IKAnalyzer.cfg.xml 文件3、custom-ext.dic 和 cus原创 2021-04-20 08:42:18 · 543 阅读 · 0 评论 -
es7集群的搭建
es7集群的搭建一、需求二、前置条件三、搭建步骤1、下载es2、创建 `es` 用户并给es目录授权3、修改es的配置文件4、es01目录下 elasticsearch.yml 的一个完整的配置5、启动es集群6、查看集群是否启动四、参考链接一、需求最近在看es相关的知识,此处简单记录一下es集群的搭建步骤。因为本地机器有限,此处模拟一下在同一台机器上搭建三个节点的集群。二、前置条件1、es不能使用root用户启动,因此需要创建一个用户。2、本地的多个es节点之间不能使用相同的data和log目录原创 2021-04-16 16:47:58 · 1886 阅读 · 0 评论 -
elasticsearch的dsl查询
测试es的dsl查询,准备数据,在插入数据的时候,如果index、type、mapping都没有,es会自动创建一、数据的准备curl -XPOST "http://192.168.99.1:9200/new_index/product/p1" -d'{ "name":"new Mac Book"}'curl -XPOST "http://192.168.99.1:...原创 2017-08-16 17:49:05 · 473 阅读 · 0 评论 -
elasticsearch的索引操作
1、创建索引(test_index)curl -XPUT "http://192.168.99.1:9200/test_index"2、创建索引,指定分片和副本的数量curl -XPUT "http://192.168.99.1:9200/test_index" -d'{ "settings": { "number_of_shards": 2, "numbe...原创 2017-08-15 23:47:40 · 236 阅读 · 0 评论 -
elasticsearch入门(简单的crud操作)
记录一下,elasticsearch从创建索引到插入数据的一个crud操作。一、创建索引curl -XPUT "http://192.168.99.1:9200/productindex" -d'{ "settings": { "number_of_shards": 1, "number_of_replicas": 1 }, "mappings":...原创 2017-08-17 19:22:54 · 977 阅读 · 0 评论 -
elasticsearch的bulk(批量)操作
在es中我们可能会有这么一种需求,即有时需要批量向es中插入或更新或删除数据,如果一条一条数据的操作,那么速度必然很慢,那么es的bulk api就可以派上用场。delete 删除操作,只需要写一个json即可create 创建操作,如果需要创建的文档已经存在,那么创建失败index 创建或替换操作,如果要创建的文档不存在则执行创建操作,如果已经存在则执行替换操作update 更...原创 2017-08-17 20:55:00 · 1879 阅读 · 0 评论 -
elasticsearch嵌套对象的映射
在es中,我们有时候可能需要映射,{ "field" : "xx" , "field01" : [] }这样格式的嵌套对象,默认情况下es会将field01的type映射成object类型,这个时候,我们去查询可能就会出现问题。需要手动修改成nested嵌套类。型。一、有问题的情形演示。1、插入数据,es默认会自动创建映射curl -XPUT "http://192.168....原创 2017-08-18 15:50:10 · 1942 阅读 · 0 评论 -
elasticsearch的索引重建
我们知道es在字段的mapping建立后就不可再次修改mapping的值。在我们实际的情况下有些时候就是需要修改mapping的值,解决方案就是重新构建索引数据。方式一 : 使用索引别名,创建另外一个索引、使用scroll滚屏搜索插入数据、等等,(网上有很多这样的例子,略)方式二:(参考链接:https://www.elastic.co/guide/en/elastic...原创 2017-08-19 00:19:08 · 666 阅读 · 0 评论