
ELK
const伐伐
这个作者很懒,什么都没留下…
展开
-
elastic search中如何对字段进行建模
1. 选择字段类型2. 是否需要搜索如不需要检索,排序和聚合分析,Enable设置成false如不需要检索,index设置成false对需要存储的字段,可以通过如下配置,设定存储粒度index_optioins/Norms:不需要归一化数据时,可以关闭3. 是否需要聚合及排序如不需要检索,排序和聚合分析,Enable设置成false如不需要排序或者聚合分析功能,Doc_values / fielddata设置成false更新频繁,聚合查询频繁的keyword类型的字段推荐.原创 2020-11-23 15:13:33 · 321 阅读 · 2 评论 -
elasticsearch查询原理query-fetch分析
es的查询dsl有很多种类型,比如match query,term query, filter, 关于elasticsearch query 各种dsl可以参考:elastic search query dsl查询语法总结这篇文章不详细展开具体的区别,仅对完整的流程做一个分析查询分为两个阶段:query阶段和fetch阶段query阶段1、客户端发送请求到任意一个coordinate node(节点默认就为coordinate node)构建一个priority queue,长度以paging操作原创 2020-11-11 20:22:07 · 3936 阅读 · 0 评论 -
elastic search query dsl查询语法总结
elastic search query DSL 关键字很多,什么场景对应选择合适的DSL并不容易。官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html核心概念概念1查询语句其可以分为两种类型:子查询语句 Leaf query clauses子查询子句在特定字段中查找特定值,例如match,term或range查询。复合查询语句 Compound query clauses复合查原创 2020-11-06 16:23:13 · 2568 阅读 · 0 评论 -
elasticsearch与关系型数据库之间的比较
数据库搜索存在的问题用数据库做搜索并不好,主要问题每次搜索都要对记录的一长条内容进行扫描like %关键字% 不能使用到索引不能将搜索词拆分开来,很难实现部分匹配,比如杭州医疗保险,如果搜索杭州保险,就搜索不到同义词的实现也比较复杂要给表中新增一些column,必须用复杂的修改表结构的语法去执行。而且可能对系统代码还有一定的影响。lucene存在的问题lucene解决了上述的问题但是其也存在问题lucene是部署在单台机器上的,假设磁盘有500个G的空间,如果我们数据量很大,有一个T原创 2020-11-05 19:47:31 · 2186 阅读 · 0 评论 -
elastic search document写入原理分析
document写入过程数据写入buffer缓冲和translog日志文件每隔一秒钟,buffer中的数据被写入新的segment file(在es底层,用的是lucene,lucene底层的index是分为多个segment的,每个segment都会存放部分数据,lucene的segment是放在lucene内存中的,这里所说的segment file仍旧是内存中的file),并进入os cache,此时segment被打开并供search使用buffer被清空重复1~3,新的se原创 2020-11-05 15:58:14 · 335 阅读 · 0 评论 -
使用search guard解决Elasticsearch未授权访问问题
背景:线上es集群,版本6.2.4,尽管其在内网,但安全扫描之后发现其存在Elasticseach未授权访问问题,需要进行http basic认证方案:elasticsearch-http-basic plugin仅支持es 1.x版本,且近3年未更新。目前我们线上使用的是6.x版本,此插件不能支持。方案1是使用search guard插件,使用其社区版本,使用其提供的基础http basic认证功能,其本质就是es cluster前置search guard filter。方案2是es原创 2020-09-11 11:07:10 · 2892 阅读 · 0 评论 -
es (brain split)脑裂问题导致重建索引速度缓慢
场景:线上使用两台es主机,6.2.4版本,组成集群(为什么是两台,这就是历史遗留问题了......)使用logstash-jdbc同步数据库中的数据到es(定时重建索引任务),原本只需要1到2秒的时间,现在居然1min(logstash抓取modify_time字段的时间间隔)仅仅同步了部分数据问题排查:查看logstash日志,其已经向mysql发出了执行请求查看es日...原创 2020-03-26 08:15:48 · 956 阅读 · 0 评论 -
解决logstash创建es索引默认使用@timestamp的UTC时间所导致的时区问题
场景:有一个用户行为日志的统计,其使用logstash过滤后放到es里面。脚本是这样每天记录加入一个field,指定其位置根据这个filed,放到es指定的index中问题:2019.09.17的index2019.09.16的index显然遇到了时区转换问题原因:logstash创建es索引默认使用@timestamp的UTC时间....原创 2019-09-20 16:52:46 · 6629 阅读 · 0 评论 -
org.elasticsearch.common.util.concurrent.EsRejectedExecutionException错误解决
场景:今天用jmeter来测试搜索服务的并发性能,1000并发,结果es报错了org.elasticsearch.common.util.concurrent.EsRejectedExecutionException: rejected execution of org.elasticsearch.common.util.concurrent.TimedRunnable@69105af3 ...原创 2019-09-18 20:30:03 · 5921 阅读 · 0 评论 -
mysql中datetime类型字段通过logstash-jdbc plugin映射到es date类型字段的时区问题解决
场景:通过logstash-jdbc plugin执行sql,将mysql中某些表的数据导入到es中其中release_time字段mysql中类型为datetime,es mapping template中对应设置的type为date结果发现日期时间与mysql中的日期时间不同而且不是像很多文章所写的,晚8个小时(类似于导入的mysql的日期时间,es中将其设置为0时区,而在ki...原创 2019-08-03 16:46:48 · 2969 阅读 · 1 评论 -
kibana中更改saved Objects中的index
背景:在原索引下 在kibana中创建了saved Objects,包括dashboard searches以及visualization需求:删除了原索引,在新创建的索引下复用之前的saved Objects方法:直接查询GET .kibana/_search?q=type:index-pattern&size=100显示的内容是我们在kibana中配置的index-...原创 2019-06-26 16:41:04 · 2825 阅读 · 0 评论 -
使用logstash file input plugin与filebeat进行日志采集的功能对比
我们知道,logstash的file input plugin可以读取nginx日志等日志类文件,而filebeat也可以进行相同的功能。那这两者有什么区别呢?在选型上应该怎么做呢?最佳实践是什么?答案是:当处理日志文件时,几乎总是需要使用Filebeat和Logstash的组合。为什么?原因1:logstash提供了ETL中的强大的Transfer功能原因2:支持多个日志记...原创 2019-05-10 09:40:30 · 1145 阅读 · 0 评论 -
使用logstash将字符串或json数据转换为多个event
文本格式数据转换为多个logstash event需求:最近在做用ELK进行用户行为日志采集分析的工作,遇到一个问题,就是前端上报的数据是批量的,类似于header:a=1&b=2;body:c=3&d=4,c=5&d=6,c=7&d=8...我要通过logstash将其解析为{ "a":"1", "b":"2", "c":"3",...原创 2019-05-10 09:18:24 · 3570 阅读 · 2 评论 -
logstash报错:Mapping definition has unsupported parameters: search_analyzer, analyzer的解决
背景:logstash每分钟从mysql中读取数据,传送到elastic search中今天重建es索引,报错:某个fieldMapping definition has unsupported parameters: search_analyzer, analyzer这个field使用的是type:keyword问题解决:尝试在logstash mapping中修改这个...原创 2019-03-08 14:18:49 · 8923 阅读 · 0 评论 -
如何处理elastic search中的unassigned shards?
我们通过 GET _cat/allocation?v 可以查看每个节点分片的分配数量以及它们所使用的硬盘空间大小发现其有51个shard是unassigned状态再通过命令GET _cat/health?v:查看集群健康状态可以看到其active_shards_percent为63.3%,原因就是其存在UNASSIGNED shards的情况,不过即使存在unassigned ...原创 2018-08-08 14:53:13 · 18892 阅读 · 0 评论 -
elastic search mapping对match query及term query的影响
elastic search的mapping是非常重要的,mapping就是index的type的元数据,每个type都有一个自己的mapping,决定了数据类型、建立倒排索引的行为以及进行搜索的行为。举个例子来说:mapping的操作新建一个mappingPUT /test-website{ "mappings": { "test-article": { "proper...原创 2018-06-29 09:15:08 · 1076 阅读 · 0 评论 -
elastic search6.2.4配置同义词典synonys
需求:有一个字段item_name,两条数据出租车出租汽车如果使用ik_smart分词,出租车和出租汽车都不会分词如果使用ik_max_word分词,出租车分为出租车、出租、租车。出租汽车分为出租汽车、出租、汽车。搜索端使用的分词是ik_smart,而索引使用的分词是ik_max_word。那当我搜索“出租车”的时候,是搜索不到出租汽车的当我搜索“出租汽车”的时候,是搜...原创 2018-07-17 16:57:55 · 2716 阅读 · 3 评论 -
elastic search配置ik分词及pinyin分词使搜索同时支持中文和拼音搜索
有这样一个需求:对于某个中文field进行ik分词,并对ik分词后的结果进行pinyin分词,这样我通过中文和英文都可以对此field进行搜索。 比如说“道路挖掘”,分词结果是道路 和 挖掘,其拼音应该是daolu和wajue,那么我通过daolu或道路应该都能搜索到这条记录。 如何解决呢?1. 先下载ik分词和pinyin分词,并放到esplugins相应目录中通过kibanaGET /_cat...原创 2018-07-06 09:22:33 · 12500 阅读 · 5 评论 -
使用visualvm监控logstash的运行
visualvm是一个监控jvm运行的工具。想通过visualvm监控远程虚拟机192.10.15.32中logstash的运行。visualvm访问remote jvm,需要remote开启授权,有两种授权方式:1. 通过jstatd启动RMI服务参照网上的做法在/root下新建jstatd.all.policy文件,内容grant codebase "file:${...原创 2018-07-06 09:48:37 · 1038 阅读 · 0 评论 -
离线安装ELK之后,kibana发生request timeout after 30000ms问题的解决
在我自己的虚拟机中安装了ELK,没有使用官方推荐的rpm方式安装,而是使用了离线安装的方式。这样在启动的时候要注意顺序及过程(当然前提是kibana.yml中配置好了elasticsearchurl)。elasticsearch 和 kibana都安装在/usr/local下启动ELK的顺序是:新建xshell terminal,su testuser(因为elasticsearch不...原创 2018-08-09 12:59:19 · 6637 阅读 · 0 评论 -
elasticsearch备份与恢复1_安装Hadoop HDFS
先介绍一下背景:我自己的两台虚拟机,一台部署了es,另一台安装hadoop HDFS作为索引备份的存储。这里es版本是6.2.3,而Hadoop HDFS版本是2.7.1这是第一篇:为虚拟机安装Hadoop HDFShadoop hdfs,提供的是分布式的文件存储,数据存储这里我们在192.168.211.104的docker02上安装hadoop HDFS,由于只有一台机...原创 2018-08-10 09:55:46 · 614 阅读 · 0 评论 -
elasticsearch备份与恢复2_es通过repository-hdfs插件支持snapshot和restore API
前面的背景参见:elasticsearch备份与恢复1_安装Hadoop HDFS备份es数据,要使用snapshot api。这个api会将es当前的状态和数据全部存储到一个外部的共享目录中去,如HDFS。恢复索引数据,使用restore api,会将保存在HDFS中的索引snapshot恢复到es中官方snapshot及restore文档:https://www.elastic.c...原创 2018-08-10 10:18:07 · 2819 阅读 · 1 评论 -
elastic search mapping parameters参数总结
手动来为es创建index的mapping是非常重要的,需要每个field来进行分析,设置其参数,这样一方面可以节省存储空间,另一方面也可以由于字段设置不合理,导致需要重建索引这类昂贵的操作。参考官网:把elastic search mapping设置时常用的设置参数进行总结mapping parameters官网参考:https://www.elastic.co/guide/en...原创 2018-08-02 15:24:43 · 1087 阅读 · 0 评论 -
logstash报错:forbidden-12-index-read-only-allow-delete-api
ELK技术栈,并且安装了xpack今天在创建索引的时候,报错({"type"=>"cluster_block_exception", "reason"=>"blocked by: [FORBIDDEN/12/index read-only / allow delete (api)]原因是什么呢?首先我们知道,索引的读写操作是可以被限制的blocks.read_o...原创 2018-08-02 17:28:37 · 2758 阅读 · 0 评论 -
elasticsearch备份与恢复3_使用ES-Hadoop将HDFS数据写入Elasticsearch中
背景知识见链接: elasticsearch备份与恢复2_es通过repository-hdfs插件支持snapshot和restore API es使用repository-hdfs插件通过snapshot和restore,来执行将索引传入HDFS以及从HDFS中恢复。但这样的在HDFS中的snapshot文件并不适合处理。ES-Hadoop可以用java来操作HDFS以及Elastic...原创 2018-08-13 09:15:30 · 1790 阅读 · 0 评论 -
elasticsearch备份与恢复4_使用ES-Hadoop将ES中的索引数据写入HDFS中
背景知识见链接:elasticsearch备份与恢复3_使用ES-Hadoop将HDFS数据写入Elasticsearch中项目参考《Elasticsearch集成Hadoop最佳实践》的tweets2HdfsMapper项目项目源码:https://gitee.com/constfafa/ESToHDFS.git开发过程:1. 先在kibana中查看下索引的信息"hits"...原创 2018-08-13 09:18:44 · 1744 阅读 · 2 评论 -
将logstash与elasticsearch性能匹配的几点尝试
背景公司的测试环境4核8G内存,安装部署ELK技术栈elastic search6.2.4 分配4G内存空间kibana 6.2.4logstash 6.2.4并集成了xpack发生性能不匹配问题结果在对一个表(数据大约80000条)进行全表建索引的时候:(全表建索引的逻辑是logstash使用logstash-jdbc-input从mysql表中根据jdbc_page_size来更新相应大小行数...原创 2018-06-22 11:32:57 · 15660 阅读 · 0 评论