es7.2.1慢查询
szd1993 回复了问题 • 3 人关注 • 3 个回复 • 1359 次浏览 • 2021-02-04 15:07
18台集群 频繁重启oom
lm324114 回复了问题 • 4 人关注 • 8 个回复 • 1517 次浏览 • 2021-02-08 13:30
ES的父子文档中,如果有多个子文档,如何在子文档之间实现join?
a2dou 回复了问题 • 1 人关注 • 1 个回复 • 2254 次浏览 • 2021-03-19 17:43
es7.8, adjust_pure_negative:true,是什么作用?
Charele 回复了问题 • 5 人关注 • 2 个回复 • 17004 次浏览 • 2021-02-05 16:56
springboot项目集成es启动报错ElasticsearchTemplate为空
回复didiaozhangqi 回复了问题 • 1 人关注 • 1 个回复 • 2234 次浏览 • 2021-02-02 15:24
文本相似度查询词频向量余弦计算方式,如何在es快速实现?
God_lockin 回复了问题 • 3 人关注 • 2 个回复 • 3481 次浏览 • 2021-02-03 10:30
histogram桶数量累加和cardinality统计的值不一致(cardinality的原因,和bucket_selector没关系,感谢guoyanbiao520)
guoyanbiao520 回复了问题 • 1 人关注 • 1 个回复 • 2948 次浏览 • 2021-02-01 10:02
Elasticsearch:EQL 入门 - 使用 EQL 检测威胁
liuxg 发表了文章 • 0 个评论 • 2781 次浏览 • 2021-01-29 16:40
详细阅读,请参阅 https://elasticstack.blog.csdn ... 89999
详细阅读,请参阅 https://elasticstack.blog.csdn ... 89999
如何做到批量查询效率大化
FFFrp 回复了问题 • 4 人关注 • 3 个回复 • 1770 次浏览 • 2021-02-01 09:21
如何使用 Ansible自动化部署 Elastic Stack
liuxg 发表了文章 • 0 个评论 • 1300 次浏览 • 2021-01-28 16:57
如果你想了解 ansible 是如何部署 Elastic Stack 的,请阅读系列文章:
如何使用 Ansible自动化部署 Elastic Stack - Overview(一)
如何使用 Ansible自动化部署 Elastic Stack - Elasticsearch (二)
如何使用 Ansible自动化部署 Elastic Stack - Kibana(三)
Elastic:如何使用 Ansible自动化部署 Elastic Stack -Security(四)
如何使用 Ansible自动化部署 Elastic Stack -Metricbeat(五)
四倍索引速度提升, 有点东西
liugq 发表了文章 • 14 个评论 • 4992 次浏览 • 2021-01-27 23:43
最近看到 INFINI Gateway 新增了一个 bulk_reshuffle filter, 于是便简单地测试一下这个功能。(Gateway [下载地址](http://release.elasticsearch.cn/) 以及 [参考文档](https://gateway.infini.sh/))
测试机器配置
系统|处理器|内存
----|------|---
Macos| 2 GHz 四核Intel Core i5 |16 GB
测试所需软件及版本
- Elasticsearch 7.10
- Kibana 7.10
- INFINI Gateway 最新版本
- Logstash 7.10
- Metricbeat 7.10
本文就省略以上软件的下载和安装步骤了。 另外本文中测试 Elasticsearch 集群含两个节点,每个节点配置内存都为 1GB ,其他参数均为默认。
测试步骤
准备测试数据文件
本文测试数据文件 nginx_mock_log ,文件中每行结构如下:
{"timestamp":1611540661651,"method":"POST","msg":"mock log"}
大概一千多万条
Logstatsh 使用 Input file 模式直接输出数据到 Elasticsearch
编辑 Logstash 配置 test.conf 如下:
<br /> input{<br /> file {<br /> path => ["/test/nginx_mock_log"]<br /> type => "file_monitor"<br /> start_position => "beginning"<br /> }<br /> }<br /> <br /> output{<br /> elasticsearch {<br /> hosts => ["localhost:9200"]<br /> index => "nginx_mock_log"<br /> http_compression => false<br /> }<br /> }<br />
在 kibana 中创建索引 nginx_mock_log ,将主分片设置为2(为了体现出 Gateway的性能优势, 主分片数应设置大于1), 配置如下:
<br /> <br /> PUT nginx_mock_log<br /> {<br /> "mappings" : {<br /> "properties" : {<br /> "@timestamp" : {<br /> "type" : "date"<br /> },<br /> "@version" : {<br /> "type" : "text",<br /> "fields" : {<br /> "keyword" : {<br /> "type" : "keyword",<br /> "ignore_above" : 256<br /> }<br /> }<br /> },<br /> "host" : {<br /> "type" : "text",<br /> "fields" : {<br /> "keyword" : {<br /> "type" : "keyword",<br /> "ignore_above" : 256<br /> }<br /> }<br /> },<br /> "message" : {<br /> "type" : "text",<br /> "fields" : {<br /> "keyword" : {<br /> "type" : "keyword",<br /> "ignore_above" : 256<br /> }<br /> }<br /> },<br /> "path" : {<br /> "type" : "text",<br /> "fields" : {<br /> "keyword" : {<br /> "type" : "keyword",<br /> "ignore_above" : 256<br /> }<br /> }<br /> },<br /> "type" : {<br /> "type" : "text",<br /> "fields" : {<br /> "keyword" : {<br /> "type" : "keyword",<br /> "ignore_above" : 256<br /> }<br /> }<br /> }<br /> }<br /> },<br /> "settings" : {<br /> "number_of_shards" : "2"<br /> }<br /> }<br />
运行 Logstash
/usr/local/logstash/bin/logstash -f test.conf
打开 Kibana Stack Monitorning 查看 Indexing Rate 监控指标如下图:
从图中可以看到索引速率基本保持在4300/s 上下Logstatsh 使用 Input file 模式输出数据到 Gateway
进入 Kibana 删除索引 nginx_mock_log 并重建
<br /> DELETE nginx_mock_log<br /> <br /> PUT nginx_mock_log<br /> {<br /> "mappings" : {<br /> "properties" : {<br /> "@timestamp" : {<br /> "type" : "date"<br /> },<br /> "@version" : {<br /> "type" : "text",<br /> "fields" : {<br /> "keyword" : {<br /> "type" : "keyword",<br /> "ignore_above" : 256<br /> }<br /> }<br /> },<br /> "host" : {<br /> "type" : "text",<br /> "fields" : {<br /> "keyword" : {<br /> "type" : "keyword",<br /> "ignore_above" : 256<br /> }<br /> }<br /> },<br /> "message" : {<br /> "type" : "text",<br /> "fields" : {<br /> "keyword" : {<br /> "type" : "keyword",<br /> "ignore_above" : 256<br /> }<br /> }<br /> },<br /> "path" : {<br /> "type" : "text",<br /> "fields" : {<br /> "keyword" : {<br /> "type" : "keyword",<br /> "ignore_above" : 256<br /> }<br /> }<br /> },<br /> "type" : {<br /> "type" : "text",<br /> "fields" : {<br /> "keyword" : {<br /> "type" : "keyword",<br /> "ignore_above" : 256<br /> }<br /> }<br /> }<br /> }<br /> },<br /> "settings" : {<br /> "number_of_shards" : "2"<br /> }<br /> }<br />
修改 Logstash 配置 test.conf 如下:
<br /> input{<br /> file {<br /> path => ["/test/nginx_mock_log"]<br /> type => "file_monitor"<br /> start_position => "beginning"<br /> }<br /> }<br /> <br /> output{<br /> elasticsearch {<br /> hosts => ["localhost:8000"]<br /> index => "nginx_mock_log"<br /> http_compression => false<br /> }<br /> }<br />
修改 Gateway 配置文件 gateway.yaml 如下:
```
path.data: data
path.logs: log
entry:- name: es_gateway #your gateway endpoint
enabled: true
router: default
network:
binding: localhost:8000
reuse_port: true #you can start multi gateway instance, they share same port, to full utilize system's resources
flow: - name: bulk_es_test
filter: #comment out any filter sections, like you don't need cache or rate-limiter
- name: bulk_reshuffle
parameters:
elasticsearch: dev
level: node
mode: async - name: elasticsearch
parameters:
elasticsearch: dev
refresh:
enabled: true
interval: 30s
- name: bulk_reshuffle
- name: request_logging
filter:
- name: request_logging
parameters:
queue_name: request_logging
router:
- name: request_logging
- name: default
default_flow: bulk_es_test
tracing_flow: request_logging
elasticsearch: - name: dev
enabled: true
endpoint: http://localhost:9200 # if your elasticsearch is using https, your gateway should be listen on as https as well
basic_auth: #used to discovery full cluster nodes, or check elasticsearch's health and versions
username: elastic
password: yV6syH3KLt4DxqMlCyag
discovery: # auto discovery elasticsearch cluster nodes
enabled: true
refresh:
enabled: true
modules: - name: elastic
enabled: true
elasticsearch: dev
store:
enabled: true
orm:
enabled: true
init_template: true
template_name: ".infini-default1"
indexprefix: "gateway"
- name: pipeline
enabled: true
runners: - name: nodes_index
enabled: true
max_go_routine: 2
threshold_in_ms: 0
timeout_in_ms: 5000
pipeline_id: bulk_request_ingest - name: request_logging_test_name
enabled: true
max_go_routine: 2
threshold_in_ms: 0
timeout_in_ms: 5000
pipeline_id: request_logging_index
pipelines: - name: bulk_request_ingest
start:
joint: bulk_indexing
enabled: true
parameters:
elasticsearch: "dev"
timeout: "5s"
worker_size: 10
bulk_size_in_mb: 1 #in MB - name: request_logging_index
start:
joint: json_indexing
enabled: true
parameters:
index_name: "gateway_requests"
elasticsearch: "dev"
input_queue: "request_logging"
timeout: "5s"
worker_size: 10
bulk_size_in_mb: 1 #in MB
queue:
min_msg_size: 1
max_msg_size: 5000000000
max_bytes_per_file: 53687091200
sync_every_records: 100000 # sync by records count
sync_timeout_in_ms: 10000 # sync by time in million seconds
write_chan_buffer: 1000
read_chan_buffer: 1000
``<br /> 以上各配置节点含义,请参考 [Gateway 文档](<a href="https://gateway.infini.sh" rel="nofollow" target="_blank">https://gateway.infini.sh</a>/)<br /> <br /> 启动 Gateway <br />
./gateway<br /> <br /> 删除 Logstash data 目录<br /> <br />
rm -rf /usr/local/logstash/data<br /> <br /> 启动 Logstash<br /> <br />
/usr/local/logstash/bin/logstash -f test.conf`
打开 Kibana Stack Monitorning 查看 Indexing Rate 监控指标如下图:
从上图后半部分可以看到索引速率可以保持在 25000/s 上下(一会儿的功夫,一千多万条数据导入ES完事了)
前面看到 Gateway 配置开启了 request_logging,因此可以在 Kibana Dashboard 里面的
INFINI Gateway Dashboard 查看请求信息,如下图:
注意,上面图中的请求速率是 _bulk 请求的速率,不是索引速率
总结
从测试结果来看,相同环境下,用 Logstash elasticsearch output 输出数据到 Gateway 的方式比
Logstash elasticsearch output 直接到 ES 的方式速率快了4倍,不得不说这速率是真的杠杠的。至于能不能通过参数调优再提升速率呢?大家有兴趣的自己下载测试吧!最后感谢 medcl 大神出品。
- name: es_gateway #your gateway endpoint
使用jest client 6.3.1的异步方法executeAsync写ES,主线程不会结束
回复xulunfan1994 发起了问题 • 1 人关注 • 0 个回复 • 2213 次浏览 • 2021-01-27 13:14