• ELK入门(一)-Elasticsearch(docker版)


    Elasticsearch

    Elasticsearch安装(docker)

    下载Elasticsearch
    查询镜像
    [root@localhost elk]# docker search elasticsearch
    NAME                                     DESCRIPTION                                       STARS     OFFICIAL   AUTOMATED
    elasticsearch                            Elasticsearch is a powerful open source sear…    6126      [OK]       
    kibana                                   Kibana gives shape to any kind of data — str…   2629      [OK]       
    bitnami/elasticsearch                    Bitnami Docker Image for Elasticsearch            67                   [OK]
    bitnami/elasticsearch-exporter           Bitnami Elasticsearch Exporter Docker Image       7                    [OK]
    rancher/elasticsearch-conf                                                                 2                    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    拉取镜像

    docker pull elasticsearch:版本号

    image-20230622225933747·

    [root@localhost elk]# docker image ls
    REPOSITORY           TAG       IMAGE ID       CREATED         SIZE
    elasticsearch        7.17.7    ec0817395263   9 months ago    619MB
    nginx                latest    605c77e624dd   19 months ago   141MB
    redis                latest    7614ae9453d1   19 months ago   113MB
    mysql                latest    3218b38490ce   19 months ago   516MB
    rabbitmq             latest    d445c0adc9a5   19 months ago   220MB
    canal/canal-server   latest    0c7f1d62a7d8   2 years ago     874MB
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    挂载配置
    创建挂载文件夹
    [root@localhost elasticsearch]# mkdir -p elasticsearch/data
    [root@localhost elasticsearch]# mkdir -p elasticsearch/config
    [root@localhost elasticsearch]# mkdir -p elasticsearch/plugins
    
    • 1
    • 2
    • 3
    修改文件夹权限
    [root@localhost elk]#chmod 777 elasticsearch/**
    
    • 1
    elasticsearch.yml

    在config文件夹下创建elasticsearch.yml文件,并修改其为可读写执行权限。

    [root@localhost config]# touch elasticsearch.yml
    [root@localhost config]# chmod 777 elasticsearch.yml 
    [root@localhost config]# tree
    .
    └── elastisearch.yml
    
    [root@localhost config]# ll
    总用量 0
    -rwxrwxrwx. 1 root root 0 623 18:22 elastisearch.yml
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    修改elasticsearch.yml的内容

    xpack.security.enabled: 配置es的安全,但是只免费使用1个月。本机使用不设置安全模块。

    http:
      host: 0.0.0.0
      cors:
        enabled: true
        allow-origin: "*"
    xpack:
      security:
        enabled: false
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    linux环境配置
    调整max_map_count

    max_map_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量,默认值是65536。

    查询max_map_count值
     sysctl -a|grep vm.max_map_count
    
    • 1
    修改max_map_count值
     sysctl -w vm.max_map_count=262144
    
    • 1

    测试是否修改

    image-20230629151143142
    创建运行容器
    • 9200作为Http协议,主要用于外部通讯。一般都是给工具连接ElasticSearch使用的,java连接ES也需要这个端口。
    • 9300是一个自定义的二进制协议,用于集群中各节点之间的通信。用于诸如集群变更、主节点选举、节点加入/离开、分片分配等事项。
    • ES_JAVA_OPTS指定容器内的JVM内存配置,建议大于512M。
    docker run  -itd \
    --name es \
    --privileged \
    --network wn_docker_net \
    --ip 172.18.12.70 \
    -p 9200:9200 \
    -p 9300:9300 \
    -e "discovery.type=single-node" \
    -e ES_JAVA_OPTS="-Xms1g -Xmx1g" \
    -v /usr/local/softwares/elk/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
    -v /usr/local/softwares/elk/elasticsearch/data:/usr/share/elasticsearch/data \
    -v /usr/local/software/elk/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
    elasticsearch:7.17.7
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    修改ES内存大小
    进入容器
    [root@localhost config]# docker exec -it es bash
    
    • 1
    进入config文件夹
    image-20230623193626510

    image-20230623193729179

    修改jvm.options默认内存大小
    root@6fa12b7a6ddb:/usr/share/elasticsearch/config# echo "-Xms4g"  >> jvm.options
    root@6fa12b7a6ddb:/usr/share/elasticsearch/config# echo "-Xmx4g"  >> jvm.options
    
    • 1
    • 2
    退出、重启容器
    root@6fa12b7a6ddb:/usr/share/elasticsearch/config# exit                         
    exit
    [root@localhost config]# docker restart es 
    
    • 1
    • 2
    • 3
    开放9200,9300端口
    [root@localhost config]# firewall-cmd --zone=public --add-port=9200/tcp --permanent
    success
    [root@localhost config]# firewall-cmd --zone=public --add-port=9300/tcp --permanent
    success
    [root@localhost config]# firewall-cmd --reload 
    success
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    浏览器测试

    image-20230729220630026

    安装ik分词器

    下载分词器

    最好下载和elasticSearch一致的分词器,如果没有则保证大版本一致,例如:7.17.X

    Releases · medcl/elasticsearch-analysis-ik · GitHub

    image-20230624205127343 image-20230624205354726
    上传分词器

    上传分词器到: /usr/local/software/elasticsearch-analysis-ik

    [root@localhost software]# mkdir elasticsearch-analysis-ik
    
    • 1
    拷贝分词器到es容器的plugins/ik中

    在容器plugins文件下创建 ik文件夹

    tips:v7,.17.7版本一定要解压在plugins**/ik**文件夹下否则报找不到错误。

    容器中位置: /usr/share/elasticsearch/plugins/ik

    [root@localhost elasticsearch-analysis-ik]# docker cp elasticsearch-analysis-ik-7.17.7.zip es:/usr/share/elasticsearch/plugins/ik
    
    • 1
    解压分词器
    root@6fa12b7a6ddb:/usr/share/elasticsearch/plugins/ik# unzip elasticsearch-analysis-ik-7.17.7.zip
    
    • 1

    删除elasticsearch-analysis-ik-7.17.7.zip

    root@6fa12b7a6ddb:/usr/share/elasticsearch/plugins/ik# rm -rf elasticsearch-analysis-ik-7.17.7.zip
    
    • 1
    image-20230629162724933
    重启docker
    root@6fa12b7a6ddb:/usr/share/elasticsearch/plugins# exit
    exit
    [root@localhost elasticsearch-analysis-ik]# docker restart es 
    
    • 1
    • 2
    • 3
    使用kibana测试分词器

    image-20230624215557035

    自定义分词器
    分词器的文件结构

    在Ik文件夹下的config中存储分词器的字典和配置文件

    image-20230629163322984

    
    DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    <properties>
            <comment>IK Analyzer 扩展配置comment>
            
            <entry key="ext_dict">entry>
             
            <entry key="ext_stopwords">entry>
            
            
            
            
    properties>       
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    打开一个分词内容ext_stopwords

    image-20230629164136117

    添加自定义分词器
    新建分词器文件

    新建自定义分词器文件,后缀为.dic

    touch extra_my_ik.dic
    
    • 1
    编辑文件

    编辑文件,使用utf-8编码

    image-20230629164415653
    修改配置文件

    修改IKAnalyzer.cfg.xml 文件,添加自定义的分词器

    
    DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    <properties>
            <comment>IK Analyzer 扩展配置comment>
            
            <entry key="ext_dict">extra_my_ik.dicentry>
             
            <entry key="ext_stopwords">entry>
            
            
            
            
    properties>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    测试分词

    使用kibana测试

    image-20230629171330048

  • 相关阅读:
    CSS3 grid 网格/栅格布局
    Spring框架——加载属性(properties)文件
    WPF+ASP.NET SignalR实现简易在线聊天功能
    2022年半导体硅片行业研究报告
    前端框架Vue学习 ——(六)Vue组件库Element
    【C++ 学习】库文件和头文件编写
    vue3接入腾讯地图后遇到的错位问题探究
    Java进阶笔记(中级)
    必须知道的RPC内核细节(值得收藏)!!!
    基于ssm流浪动物领养救助系统
  • 原文地址:https://blog.csdn.net/qq_36115196/article/details/136196038