Centos安装ElasticSearch
- 访问ElasticSearch中文社区下载ElasticSearch。 Centos则下载
tar
后缀 wget
下面地址 ElasticSearch 地址tar -zxvf elasticsearch-6.6.0.tar.gz
解压文件- 修改
/etc/security/limits.conf
文件
# 添加下方代码
# elastic-user 下面elastic为执行用户名
elastic soft nofile 65536
elastic hard nofile 65536
- 修改
/etc/sysctl.conf
文件
# 文件最后添加
vm.max_map_count = 262144
- 执行
sysctl -p
生效配置 加载进系统 - 修改
elasticsearch根目录/config/elasticsearch.yml
文件#这是集群名字,起名为elasticsearch #es启动后会将具有相同集群名字的节点放到一个集群下。 cluster.name: elasticsearch # 添加或修改 node.name: node-1 network.host: 0.0.0.0 http.port: 9200 cluster.initial_master_nodes: ["node-1"]
- 修改
elasticsearch根目录/config/jvm.options
文件-Xms1g 修改为 Xms256m -Xmx1g 修改为 Xmx256m
- 后台执行 ‘elasticseatch &’ 出现下述bug 表示不能使用root执行
java.lang.RuntimeException: can not run elasticsearch as root
- 添加并切换用户
#该用户相关配置在/etc/security/limits.conf配置了
useradd elsearch
#修改权限
chown -R elsearch:elsearch /usr/elasticsearch/elasticsearch-6.6.0/
#切换用户
su elsearch
elasticsearch -d #后台执行elasticsearch
# 查看是否已执行
ps -ef | grep elasticsearch
docker 运行
安装ES
# 拉取es镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.6.0
# 设置容器文件以及目录挂载
# 创建主目录并且进入该目录
mkdir /opt/elasticsearch
cd /opt/elasticsearch
# 创建data文件夹 并且授予777权限 可读可写
mkdir data
chmod 777 /opt/elasticsearch/data/
# 创建log文件夹 并且授予777权限 可读可写
mkdir log
chmod 777 /opt/elasticsearch/log/
# 创建elasticsearch.yml文件 配置相关信息 如下
touch elasticsearch.yml
# docker运行 指定name为es 后台运行 映射端口9200 9300
# 挂载 /opt/elasticsearch/elasticsearch.yml 到 /usr/share/elasticsearch/config/elasticsearch.yml
# 挂载/opt/elasticsearch/data/ 到 /usr/share/elasticsearch/data
# 配置java内存参数 -Xms256m -Xmx256m
# 设置单机运行
docker run --name es -d --restart=always -p 9200:9200 -p 9300:9300 -v /opt/elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /opt/elasticsearch/data/:/usr/share/elasticsearch/data -e ES_JAVA_OPTS="-Xms128m -Xmx128m" -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.6.0
elasticsearch.yml文件
#集群名
cluster.name: elasticsearch
#节点名
node.name: node-1
#设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0,
#指绑定这台机器的任何一个ip
network.bind_host: 0.0.0.0
#设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,
#值必须是个真实的ip地址
network.publish_host: 真实IP
#设置对外服务的http端口,默认为9200
http.port: 9200
#设置节点之间交互的tcp端口,默认是9300
transport.tcp.port: 9300
#是否允许跨域REST请求
http.cors.enabled: true
#允许 REST 请求来自何处
http.cors.allow-origin: "*"
#节点角色设置
node.master: true
node.data: true
#有成为主节点资格的节点列表
discovery.zen.ping.unicast.hosts: ["真实IP:9300"]
#集群中一直正常运行的,有成为master节点资格的最少节点数(默认为1)
# (totalnumber of master-eligible nodes / 2 + 1)
discovery.zen.minimum_master_nodes: 1
安装ik分词器
在线安装
docker exec -it es /bin/bash
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.6.0/elasticsearch-analysis-ik-6.6.0.zip
本地安装
下载ik分词器
上传服务器
# 将压缩包移动到容器中
docker cp /root/elasticsearch-analysis-ik-6.6.0.zip es:/usr/share/elasticsearch/plugins
# 进入容器
docker exec -it es /bin/bash
# 创建目录
mkdir /usr/share/elasticsearch/plugins/ik
# 将文件压缩包移动到ik中
mv /usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-6.6.0.zip /usr/share/elasticsearch/plugins/ik
# 进入目录
cd /usr/share/elasticsearch/plugins/ik
# 解压
unzip elasticsearch-analysis-ik-6.6.0.zip
# 删除压缩包
rm -rf elasticsearch-analysis-ik-6.6.0.zip
# 退出重启容器
exit
docker restart es
安装es-head
# 拉取es-head镜像
docker pull mobz/elasticsearch-head:5
# 后台运行es-head
docker run -d --name es-head --restart=always -p 9100:9100 docker.io/mobz/elasticsearch-head:5
安装Kibana
# 拉取kibana镜像
docker pull kibana:6.6.0
# 后台运行kibana 汉化
docker run --name kibana --restart=always -e ELASTICSEARCH_URL=http://IP:9200 -p 5601:5601 -d kibana:6.6.0
# 汉化
# 本地下载镜像 wget https://mirrors.yangxingzhen.com/kibana/Kibana_Hanization.tar.gz
# 本机解压
tar -zxvf Kibana_Hanization.tar.gz
# 拷贝到docker容器 kibana /opt目录下
docker cp Kibana_Hanization kibana:/opt
# 进入 kibana容器
docker exec -it kibana /bin/bash
# 进入拷贝文件的old目录下
cd /opt/Kibana_Hanization/old/
# 执行 pyton man.py kibana根目录 等下汉化结束
python main.py /opt/kibana/
# 本机重启容器 完成汉化
docker container restart kibana