
docker 部署使用 ELk
docker 部署使用 ELk
学习参考文章
基础 : 拉取镜像
1 | docker pull elasticsearch:6.5.4 |
集成:ELK
工具: docker-compose
版本的指定: 在 compose 文件下有.env 文件写上相应的版本号内容
1
ELK_VERSION=6.5.4
添加相应版本分词插件:IK (github 地址版本: https://github.com/medcl/elasticsearch-analysis-ik/releases?after=v6.5.2)
Ik 的说明文章: https://github.com/medcl/elasticsearch-analysis-ik
集成到 docker-compose 上:
1 |
|
- compose 文件内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48version: '2'
services:
elasticsearch:
image: "elasticsearch:${ELK_VERSION}"
container_name: elasticsearch
ports:
- "9200:9200"
- "9300:9300"
environment:
ES_JAVA_OPTS: "-Xmx1024m -Xms1024m"
#command: ["bash", "-c", "echo 'discovery.type: single-node'>>/usr/share/elasticsearch/config/elasticsearch.yml; /usr/local/bin/docker-entrypoint.sh eswrapper"]
command: ["bash", "-c", "/usr/local/bin/docker-entrypoint.sh eswrapper"]
# Ik 分词器的安装
volumes:
- ./es-plugin/ik:/usr/share/elasticsearch/plugins/ik
networks:
- elk
logstash:
image: "logstash:${ELK_VERSION}"
container_name: logstash
volumes:
- ./logstash/pipeline:/usr/share/logstash/pipeline:ro
ports:
- "5000:5000"
environment:
LS_JAVA_OPTS: "-Xmx256m -Xms256m"
depends_on:
- elasticsearch
command: ["bash", "-c", "echo 'path.config: /usr/share/logstash/pipeline'>>/usr/share/logstash/config/logstash.yml; /usr/local/bin/docker-entrypoint"]
networks:
- elk
kibana:
image: "kibana:${ELK_VERSION}"
container_name: kibana
ports:
- "5601:5601"
depends_on:
- elasticsearch
networks:
- elk
networks:
elk:
driver: bridge
访问服务
- 访问 Es : http://localhost:9200/
- 访问 kibana : http://localhost:5601
1 | 1. 打开dev Tools |
IK 分词器是否安装成功,在 kibana 上执行操作
1 |
|
kibana 操作 Es 增删该查操作
概念
- 类比:
1 | Relational DB -> Databases -> Tables -> Rows -> Columns |
kibana 对 es 增删改查
概念文档: http://blog.didispace.com/books/elasticsearch-definitive-guide-cn/010_Intro/00_README.html
例子文档: https://blog.csdn.net/u014646662/category_8747782_2.html
- 查看集群健康信息
1 |
|
- 查看集群,索引,分片情况:
1 |
|
- 查看查询全部内容
1 |
|
- 增加一个 document 内容,格式 : POST /{index}/{type} 不加 id 则系统默认给出一个 id
1 |
|
- 删除一个 document 内容: DELETE /{index}/{type}/{id}
1 |
|
- 修改的操作,分覆盖全部 与 修改某些字段:
1 |
|
- 查询一个 document 内容 : GET /{index}/{type}/{id}
1 | 1. |
Es 语法高亮查询
1 |
|
Es 查询分类 : query string search / query DSL
1 |
|
full-text search 全文检索 | phrase search 短语搜索
1 |
|
- 多条件查询中的字段描述
1 |
|
Es批量的操作
- 针对批量插入的限制: 一般建议是1000-5000个文档,大小建议是5-15MB,默认不能超过100M,可以在es的配置文件(即$ES_HOME下的config下的elasticsearch.yml)中
- 批量的查询(kibana操作)
1 | GET /_mget |
- 批量查询 id 的集合的数据:
1 | GET db-1/tab-1/_mget |
- 批量的增加: _bulk:
1 | POST /db-1/tab-1/_bulk |
Es 核心的操作还是查询操作: 使用query DSL 请求查询
- match 分页查询:
1 | GET db-1/tab-1/_search |
- 根据字段 age 的倒序的查询:
1 | GET db-1/tab-1/_search |
- 指定查询项 : 只查询出 content 的字段内容:
1 | GET db-1/tab-1/_search |
- matchAll 操作: 全查询 但显示仅仅是 5条记录
1 |
|
- 全文检索:
1
2
3
4
5
6
7
8GET db-1/tab-1/_search
{
"query": {
"match": {
"content": "97"
}
}
}
- 短语检索:
1 | GET db-1/tab-1/_search |
- 复合查询:
1 |
|
感谢您的阅读,本文由 左之右 版权所有。如若转载,请注明出处:左之右(https://zuoyoulai.github.io/2020/01/27/elk/)