当前位置:   article > 正文

Elastic search /Elastic Stack(ELK) 的入门和docker compose一键安装部署ELk_elastic stack docker

elastic stack docker

什么是elk?

        (不是blg的adc)是以elasticsearch为核心的技术栈,包括:

1.elasticsearch:储存、计算和搜索数据(核心,不可替代的ad)

2.kibana数据可视化(辅助,帮忙做眼)

3.logstash/beats :数据抓取(帮忙喂人头的打野)

        elasticsearch的底层实现是Lucene,是Apache的开源的java语言的搜索引擎类库,提供了搜索引擎的核心API。易扩展、高性能(基于倒排索引)。

什么是倒排索引?

正序索引:

  • 正向索引是最传统的,根据id索引的方式。但根据词条查询时,必须先逐条获取每个文档,然后判断文档中是否包含所需要的词条,是根据文档找词条的过程

  • 优点
    • 可以给多个字段创建索引
    • 根据索引字段搜索、排序速度非常快
  • 缺点
    • 根据非索引字段,或者索引字段中的部分词条查找时,只能全表扫描。

倒排索引:

  • 倒排索引则相反,是先找到用户要搜索的词条,根据词条得到保护词条的文档的id,然后根据id获取文档。是根据词条找文档的过程

  • 优点
    • 可以给多个字段创建索引
    • 根据索引字段搜索、排序速度非常快
  • 缺点
    • 根据非索引字段,或者索引字段中的部分词条查找时,只能全表扫描。

mysql和es对比:

MySQLElasticsearch说明
TableIndex索引(index),就是文档的集合,类似数据库的表(table)
RowDocument文档(Document),就是一条条的数据,类似数据库中的行(Row),文档都是JSON格式
ColumnField字段(Field),就是JSON文档中的字段,类似数据库中的列(Column)
SchemaMappingMapping(映射)是索引中文档的约束,例如字段类型约束。类似数据库的表结构(Schema)
SQLDSLDSL是elasticsearch提供的JSON风格的请求语句,用来操作elasticsearch,实现CRUD

elk的安装部署

docker compose的安装:

        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 的文件,输入配置文件信息如下:

  1. version: '3'
  2. services:
  3. elasticsearch:
  4. restart: always
  5. image: docker.elastic.co/elasticsearch/elasticsearch:7.10.2
  6. container_name: elasticsearch
  7. hostname: elasticsearch
  8. privileged: true
  9. ulimits:
  10. memlock:
  11. soft: -1
  12. hard: -1
  13. environment:
  14. - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
  15. - "discovery.type=single-node"
  16. ports:
  17. - "9200:9200"
  18. - "9300:9300"
  19. volumes:
  20. - "./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml"
  21. - "./elasticsearch/plugins:/usr/share/elasticsearch/plugins:rw"
  22. - "./elasticsearch/data:/usr/share/elasticsearch/data:rw"
  23. networks:
  24. - elk
  25. kibana:
  26. restart: always
  27. container_name: kibana
  28. image: docker.elastic.co/kibana/kibana:7.10.2
  29. environment:
  30. ELASTICSEARCH_HOSTS: http://elasticsearch:9200
  31. ports:
  32. - "5601:5601"
  33. depends_on:
  34. - elasticsearch
  35. networks:
  36. - elk
  37. logstash:
  38. image: docker.elastic.co/logstash/logstash:7.10.2
  39. container_name: logstash
  40. ports:
  41. - "5044:5044"
  42. restart: always
  43. volumes:
  44. - "./logstash/config:/usr/share/logstash/pipeline"
  45. - "./logstash/plugins:/usr/share/logstash/plugins"
  46. - "./logstash/data:/usr/share/logstash/data"
  47. - "./logstash/logs:/usr/share/logstash/logs"
  48. - "./logstash/lib/mysql-connector-java-8.0.23.jar:/usr/share/logstash/mysql-connector-java-8.0.23.jar"
  49. depends_on:
  50. - elasticsearch
  51. networks:
  52. - elk
  53. networks:
  54. elk:
  55. external: true

可将 image 换成:

image: elasticsearch:7.8.0
image: kibana:7.8.0

解释:

顶部配置:

version: '3'  这是Docker Compose文件的版本。

服务定义

配置文件定义了三个服务:elasticsearchkibanalogstash

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,所有服务都在这个网络中运行

使用docker compose 一键启动

        运行配置文件,建立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操作

运行结果:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/992904
推荐阅读
相关标签
  

闽ICP备14008679号