赞
踩
(不是blg的adc)是以elasticsearch为核心的技术栈,包括:
1.elasticsearch:储存、计算和搜索数据(核心,不可替代的ad)
2.kibana:数据可视化(辅助,帮忙做眼)
3.logstash/beats :数据抓取(帮忙喂人头的打野)
elasticsearch的底层实现是Lucene,是Apache的开源的java语言的搜索引擎类库,提供了搜索引擎的核心API。易扩展、高性能(基于倒排索引)。
正向索引是最传统的,根据id索引的方式。但根据词条查询时,必须先逐条获取每个文档,然后判断文档中是否包含所需要的词条,是根据文档找词条的过程。
而倒排索引则相反,是先找到用户要搜索的词条,根据词条得到保护词条的文档的id,然后根据id获取文档。是根据词条找文档的过程。
MySQL | Elasticsearch | 说明 |
---|---|---|
Table | Index | 索引(index),就是文档的集合,类似数据库的表(table) |
Row | Document | 文档(Document),就是一条条的数据,类似数据库中的行(Row),文档都是JSON格式 |
Column | Field | 字段(Field),就是JSON文档中的字段,类似数据库中的列(Column) |
Schema | Mapping | Mapping(映射)是索引中文档的约束,例如字段类型约束。类似数据库的表结构(Schema) |
SQL | DSL | DSL是elasticsearch提供的JSON风格的请求语句,用来操作elasticsearch,实现CRUD |
Docker compose(容器编排工具)是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose酒可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,可以从 YML 文件配置中创建并启动所有服务。
Linux 上我们可以从 Github 上下载它的二进制包来使用,最新发行的版本地址:Releases · docker/compose · GitHub。运行以下命令以下载 Docker Compose 的当前稳定版本:(最好和自己docker版本对应)
$ sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
安装其他版本的 Compose,替换 ''v2.2.2''。
将可执行权限应用于二进制文件:(给权限)
$ sudo chmod +x /usr/local/bin/docker-compose
创建软链:
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
测试是否安装成功:
$ docker-compose version
能够显示版本信息则成功!
创建一个docker 网络 后面用
$ docker network create elk
建立一个名为elk.yml 的文件,输入配置文件信息如下:
- version: '3'
- services:
- elasticsearch:
- restart: always
- image: docker.elastic.co/elasticsearch/elasticsearch:7.10.2
- container_name: elasticsearch
- hostname: elasticsearch
- privileged: true
- ulimits:
- memlock:
- soft: -1
- hard: -1
- environment:
- - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- - "discovery.type=single-node"
- ports:
- - "9200:9200"
- - "9300:9300"
- volumes:
- - "./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml"
- - "./elasticsearch/plugins:/usr/share/elasticsearch/plugins:rw"
- - "./elasticsearch/data:/usr/share/elasticsearch/data:rw"
- networks:
- - elk
-
- kibana:
- restart: always
- container_name: kibana
- image: docker.elastic.co/kibana/kibana:7.10.2
- environment:
- ELASTICSEARCH_HOSTS: http://elasticsearch:9200
- ports:
- - "5601:5601"
- depends_on:
- - elasticsearch
- networks:
- - elk
-
- logstash:
- image: docker.elastic.co/logstash/logstash:7.10.2
- container_name: logstash
- ports:
- - "5044:5044"
- restart: always
- volumes:
- - "./logstash/config:/usr/share/logstash/pipeline"
- - "./logstash/plugins:/usr/share/logstash/plugins"
- - "./logstash/data:/usr/share/logstash/data"
- - "./logstash/logs:/usr/share/logstash/logs"
- - "./logstash/lib/mysql-connector-java-8.0.23.jar:/usr/share/logstash/mysql-connector-java-8.0.23.jar"
- depends_on:
- - elasticsearch
- networks:
- - elk
-
- networks:
- elk:
- external: true

可将 image 换成:
image: elasticsearch:7.8.0
image: kibana:7.8.0
解释:
version: '3'
这是Docker Compose文件的版本。
配置文件定义了三个服务:elasticsearch
、kibana
和logstash
。
elasticsearch:
image
: 使用的对应镜像 ,改成自己的
container_name
: 容器名称
volumes
: 挂载主机目录到容器内部目录。配置文件、插件、数据目录的挂载。
networks
: 该容器所属的网络,这里是elk
网络
environment:(有些缩写为-e)设置环境变量,第一个是设置堆内存大小;512M;第二个是运行模式,single-node为单点模式运行
volumes:(有些缩写为-v)数据卷挂载,data为数据保存目录,plugin为插件目录(为将来es插件扩张)
port(有些缩写为-p
):端口,第一个9200为暴露在http的端口,为用户访问;9300是各个容器互联的端口(如果是云服务器,需要将端口开放才能被访问到)
kibana:
environment:设置环境变量, 用【容器名:地址名】让kibana连接es
其余的都差不多。
版本一定要和es一致!
kibana启动较慢,可用命令康康:
docker logs -f kibana
定义了一个外部网络elk
,所有服务都在这个网络中运行
运行配置文件,建立es集群:
docker-compose -f elk.yml up -d
启动完毕!,使用 docker ps 查看
可以在浏览器输入 服务器ip地址:5601 如 172.0.0.1:5601 进入 kibana,利用辅助做的眼看可视化界面:
点击右上角的 Dev tools 可以进入DSL控制台,可以发送DSL请求(类似发送sql语句)
kibana可以将语句发送给es进行crud操作
运行结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。