安装elasticsearch
docker官网
https://hub.docker.com/_/elasticsearch
https://hub.docker.com/_/kibana
https://hub.docker.com/_/logstash
ELK官网
https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html
# es集群部署请参考官网帮助文档
基础镜像
ELK官网镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.7.0
docker pull bolingcavalry/elasticsearch-head:6
注意事项
- 开发环境下载docker官网或者elastic官方仓库里的镜像都可以。
- 运维环境大咖们推荐不要下载docker官方的镜像,最好使用 elastic官方仓库里的镜像
docker官网镜像
docker pull elasticsearch:7.7.0
docker pull kibana:7.7.0
docker pull bolingcavalry/elasticsearch-head:6
前置条件
文件创建数
修改Linux系统的限制配置,将文件创建数修改为65536个 :
- 修改系统中允许应用最多创建多少文件等的限制权限。Linux默认来说,一般限制应用最多创建的文件是65535个。但是ES至少需要65536的文件创建数的权限。
- 修改系统中允许用户启动的进程开启多少个线程。默认的Linux限制root用户开启的进程可以开启任意数量的线程,其他用户开启的进程可以开启1024个线程。必须修改限制数为4096+。因为ES至少需要4096的线程池预备。
vi /etc/security/limits.conf
# 新增如下内容在limits.conf文件中
es soft nofile 65536
es hard nofile 65536
es soft nproc 4096
es hard nproc 4096
系统控制权限
修改系统控制权限,ElasticSearch需要开辟一个65536字节以上空间的虚拟内存。Linux默认不允许任何用户和应用程序直接开辟这么大的虚拟内存。
vi /etc/sysctl.conf
# 添加参数:新增如下内容在sysctl.conf文件中,当前用户拥有的内存权限大小
vm.max_map_count=262144
# 重启生效:让系统控制权限配置生效
sysctl -p
docker官网搭建es
ELK官网搭建es自行参考
试运行
docker run -itd --name elasticsearch -p 9200:9200 -p 9300:9300 -e"discovery.type=single-node" elasticsearch:7.7.0
docker cp elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml /data
elasticsearch.yml
cluster.name: "docker-cluster"
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
制作镜像
Dockerfile
FROM elasticsearch:7.7.0
# 作者信息
MAINTAINER elasticsearch-zh from date UTC by Asia/Shanghai "3220416593@qq.com"
ENV TZ Asia/Shanghai
COPY elasticsearch.yml /usr/share/elasticsearch/config/
制作镜像
docker build -t my/elasticsearch:7.7.0 .
docker-compose
挂载目录授权
mkdir -p /data/elasticsearch
chmod 777 -R /data/elasticsearch
version: '3'
services:
elasticsearch:
image: my/elasticsearch:7.7.0
container_name: elasticsearch770
ports:
- 9200:9200
- 9300:9300
environment:
- "discovery.type=single-node"
- "ES_JAVA_OPTS=-Xms2048m -Xmx2048m"
restart: always
volumes:
- "/data/elasticsearch/data:/usr/share/elasticsearch/data"
- "/data/elasticsearch/plugins:/usr/share/elasticsearch/plugins"
kibana:
image: kibana:7.7.0
container_name: kibana7
ports:
- 5601:5601
restart: always
depends_on:
- elasticsearch
elasticsearchhead:
image: bolingcavalry/elasticsearch-head:6
container_name: elasticsearchhead
environment:
- "TZ=Asia/Shanghai"
ports:
- 9100:9100
restart: always
depends_on:
- elasticsearch
启动服务
docker-compose up -d
访问测试
# 访问es
http://192.168.198.100:9200
# 访问head
http://192.168.198.100:9100
# 访问kibana
http://192.168.198.100:5601
安装ik分词器
官网地址
https://github.com/medcl/elasticsearch-analysis-ik
安装分词器
cd /data/elasticsearch/plugins
mkdir -p ik
unzip elasticsearch-analysis-ik-7.7.0.zip
重启es
docker-compose restart