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

Elasticsearch

Elasticsearch安装(docker)

下载Elasticsearch
查询镜像
shell 复制代码
[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                    
拉取镜像

docker pull elasticsearch:版本号

·

shell 复制代码
[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
挂载配置
创建挂载文件夹
shell 复制代码
[root@localhost elasticsearch]# mkdir -p elasticsearch/data
[root@localhost elasticsearch]# mkdir -p elasticsearch/config
[root@localhost elasticsearch]# mkdir -p elasticsearch/plugins
修改文件夹权限
shell 复制代码
[root@localhost elk]#chmod 777 elasticsearch/**
elasticsearch.yml

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

shell 复制代码
[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 6月  23 18:22 elastisearch.yml

修改elasticsearch.yml的内容

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

shell 复制代码
http:
  host: 0.0.0.0
  cors:
    enabled: true
    allow-origin: "*"
xpack:
  security:
    enabled: false
linux环境配置
调整max_map_count

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

查询max_map_count值
shell 复制代码
 sysctl -a|grep vm.max_map_count
修改max_map_count值
shell 复制代码
 sysctl -w vm.max_map_count=262144

测试是否修改

创建运行容器
  • 9200作为Http协议,主要用于外部通讯。一般都是给工具连接ElasticSearch使用的,java连接ES也需要这个端口。
  • 9300是一个自定义的二进制协议,用于集群中各节点之间的通信。用于诸如集群变更、主节点选举、节点加入/离开、分片分配等事项。
  • ES_JAVA_OPTS指定容器内的JVM内存配置,建议大于512M。
shell 复制代码
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
修改ES内存大小
进入容器
shell 复制代码
[root@localhost config]# docker exec -it es bash
进入config文件夹
修改jvm.options默认内存大小
shell 复制代码
root@6fa12b7a6ddb:/usr/share/elasticsearch/config# echo "-Xms4g"  >> jvm.options
root@6fa12b7a6ddb:/usr/share/elasticsearch/config# echo "-Xmx4g"  >> jvm.options
退出、重启容器
shell 复制代码
root@6fa12b7a6ddb:/usr/share/elasticsearch/config# exit                         
exit
[root@localhost config]# docker restart es 
开放9200,9300端口
shell 复制代码
[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
浏览器测试

安装ik分词器

下载分词器

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

Releases · medcl/elasticsearch-analysis-ik · GitHub

上传分词器

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

shell 复制代码
[root@localhost software]# mkdir elasticsearch-analysis-ik
拷贝分词器到es容器的plugins/ik中

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

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

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

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

删除elasticsearch-analysis-ik-7.17.7.zip

shell 复制代码
root@6fa12b7a6ddb:/usr/share/elasticsearch/plugins/ik# rm -rf elasticsearch-analysis-ik-7.17.7.zip
重启docker
shell 复制代码
root@6fa12b7a6ddb:/usr/share/elasticsearch/plugins# exit
exit
[root@localhost elasticsearch-analysis-ik]# docker restart es 
使用kibana测试分词器
自定义分词器
分词器的文件结构

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

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!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>
        <!--用户可以在这里配置远程扩展字典 -->
        <!-- <entry key="remote_ext_dict">words_location</entry> -->
        <!--用户可以在这里配置远程扩展停止词字典-->
        <!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>       

打开一个分词内容ext_stopwords

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

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

shell 复制代码
touch extra_my_ik.dic
编辑文件

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

修改配置文件

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

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
        <comment>IK Analyzer 扩展配置</comment>
        <!--添加自定义的词库extr_my_ik.dic -->
        <entry key="ext_dict">extra_my_ik.dic</entry>
         <!--用户可以在这里配置自己的扩展停止词字典-->
        <entry key="ext_stopwords"></entry>
        <!--用户可以在这里配置远程扩展字典 -->
        <!-- <entry key="remote_ext_dict">words_location</entry> -->
        <!--用户可以在这里配置远程扩展停止词字典-->
        <!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
测试分词

使用kibana测试

相关推荐
武子康3 天前
调查研究-197 FAISS vs Elasticsearch 全面对比:从向量检索、全文搜索到 RAG 选型指南
人工智能·elasticsearch·agent
Elasticsearch4 天前
Elasticsearch ES|QL:现已支持视图、子查询和读取时模式定义
elasticsearch
Patrick_Wilson4 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
Suroy5 天前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker
云恒要逆袭5 天前
运行你的第一个Docker容器
后端·docker·容器
宋均浩6 天前
# Docker 镜像瘦身实战:从 1.2G 到 80MB 的五个优化步骤
ci/cd·docker
程序员老赵6 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程
Elasticsearch7 天前
Kibana 中的 SNMP 拓扑数据:从采集到 Canvas
elasticsearch
WangMingHua1117 天前
LM Studio Docker 部署——本地大模型一键启动
docker
曲幽8 天前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate