赞
踩
Elasticsearch的搭建
测试环境 centos7 版本elasticsearch-7.17.8
节点host名称 | 节点ip | 节点部署内容 |
note1 | 192.168.57.188 | 主节点 数据节点 |
note2 | 192.168.57.189 | 主节点 数据节点 |
note3 | 192.168.57.190 | 数据节点 |
一 准备安装环境
1.下载安装包 官网 www.elastic.co 下载所有版本地址 点击跳转 下载elasticsearch-7.17.8版本
2.创建安装环境
安装jdk并配置环境变量
创建安装目录每个节点都要创建
mkdir -p /home/tools/elasticsearch
创建ssh免密登录
3.上传压缩包
4.解压Elasticsearch压缩包
二 修改配置文件
vim elasticsearch-7.17.8/config/elasticsearch.yml
核心配置
- #为集群设置名称,集群内所有节点配置的名称必须一致
- cluster.name: bigdata
- #当前节点取名,集群内节点名称必须唯一
- node.name: node1
- #当前节点地址
- network.host: 192.168.57.188
- #始化一个新的集群时需要此配置来选举master
- cluster.initial_master_nodes: ["note1", "note2"]
- #写入候选主节点的设备地址,在开启服务后可以被选为主节点
- discovery.seed_hosts: ["note1", "note2", "note3"]
- #表示该节点会不会作为主节点,true表示会;false表示不会
- node.master: true
- #当前节点是否用于存储数据,是:true、否:false
- node.data: true
- #数据存储目录(用逗号分隔多个位置) 这个目录默认不存在,自行创建
- path.data: /home/tools/elasticsearch/elasticsearch-7.17.8/data
- #日志文件路径
- path.logs: /home/tools/elasticsearch/elasticsearch-7.17.8/logs
- #es对外提供的http端口,默认 9200
- http.port: 9200
- #TCP的默认监听端口,默认 9300
- transport.tcp.port: 9300
- #启动时是否有锁定内存,生产环境需要true(可用内存一般设置可用内存的一半左右)
- bootstrap.memory_lock: true
核心配置简化
- cluster.name: bigdata
- node.name: note1
- network.host: 192.168.57.188
- cluster.initial_master_nodes: ["note1", "note2"]
- discovery.seed_hosts: ["note1", "note2", "note3"]
- path.data: /home/tools/elasticsearch/elasticsearch-7.17.8/data
- path.logs: /home/tools/elasticsearch/elasticsearch-7.17.8/logs
- http.port: 9200
- transport.tcp.port: 9300
- bootstrap.memory_lock: true
其他配置 (可忽略)
- # 设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)
- discovery.zen.minimum_master_nodes: 2
- discovery.zen.fd.ping_timeout: 1m
- discovery.zen.fd.ping_retries: 5
- # 是否支持跨域,是:true,在使用head插件时需要此配置
- http.cors.enabled: true
- # “*” 表示支持所有域名
- http.cors.allow-origin: "*"
- action.destructive_requires_name: true
- action.auto_create_index: .security,.monitoring*,.watches,.triggered_watches,.watcher-history*
- xpack.security.enabled: false
- xpack.monitoring.enabled: true
- xpack.graph.enabled: false
- xpack.watcher.enabled: false
- xpack.ml.enabled: false
三 分发配置过后的安装包到节点2与节点3
scp -r ./elasticsearch-7.17.8 note2:$PWD
scp -r ./elasticsearch-7.17.8 note3:$PWD
四 修改节点2与节点3的配置文件
节点2核心配置如下
- cluster.name: bigdata
- node.name: note2
- network.host: 192.168.57.189
- cluster.initial_master_nodes: ["note1", "note2"]
- discovery.seed_hosts: ["note1", "note2", "note3"]
- path.data: /home/tools/elasticsearch/elasticsearch-7.17.8/data
- path.logs: /home/tools/elasticsearch/elasticsearch-7.17.8/logs
- http.port: 9200
- transport.tcp.port: 9300
- bootstrap.memory_lock: true
节点3核心配置如下
- cluster.name: bigdata
- node.name: note3
- network.host: 192.168.57.190
- cluster.initial_master_nodes: ["note1", "note2"]
- discovery.seed_hosts: ["note1", "note2", "note3"]
- path.data: /home/tools/elasticsearch/elasticsearch-7.17.8/data
- path.logs: /home/tools/elasticsearch/elasticsearch-7.17.8/logs
- http.port: 9200
- transport.tcp.port: 9300
- bootstrap.memory_lock: true
注意,集群名字保持一致,所有服务器的地址网段必须保持一致,才能有集群的效果 xxx.xxx.xxx.xxx 前9位相同, 后三位(主机)不同
五 启动集群
启动集群不能使用root用户 需要使用普通用户 这里创建es用户(每个节点都需要创建赋权限)
useradd es -m
设置密码
passwd es
赋予安装包的使用权限(注意如果数据目录不在安装包下 需要再赋予一次数据目录权限)
chown -R es:es /home/tools/elasticsearch
启动 :
- su es
- /home/tools/elasticsearch/elasticsearch-7.17.8/bin/elasticsearch
初次启动集群会抛出异常
异常信息如下
1. elasticsearch进程的最大文件数[4096]太低,增加到至少[65535]
2. elasticsearch进程请求内存锁定,但内存未锁定
3. 最大虚拟内存区域。Max_map_count[65530]太低,至少增加到[262144]
解决方法
1.修改进程的最大文件数
vi /etc/security/limits.conf
添加最大创建文件数(*不能去掉)
- * soft nofile 65536
- * hard nofile 131072
2.内存锁定
vim /etc/security/limits.d/20-nproc.conf
* soft nproc 4096
vim /etc/systemd/system.conf
- DefaultLimitNOFILE=65536
- DefaultLimitNPROC=32000
- DefaultLimitMEMLOCK=infinity
3.设置最大虚拟内存区域
执行命令
- sysctl -w vm.max_map_count=262144
- echo "vm.max_map_count=262144" >> /etc/sysctl.conf
- sysctl -a|grep vm.max_map_count
配置完成
自定义启动脚本 需要在es账户之间配置免密登录
- #启动脚本
- esPath="/home/tools/elasticsearch/elasticsearch-7.17.8/bin"
- #节点需要启动的节点ip地址
- hostname1="note1"
- hostname2="note2"
- hostname3="note3"
- case $1 in
- "start")
- ssh es@$hostname1 "source /etc/profile; $esPath/elasticsearch -d"
- ssh es@$hostname2 "source /etc/profile; $esPath/elasticsearch -d"
- ssh es@$hostname3 "source /etc/profile; $esPath/elasticsearch -d"
- ;;
- "stop")
- pid=$(ssh $hostname1 "ps -ef | grep Elasticsearch | grep -v grep | awk '{print $2}'"| awk '{print $2}')
- ssh $hostname1 "kill $pid"
- echo "stop $hostname1 Elasticsearch $pid"
- pid=$(ssh $hostname2 "ps -ef | grep Elasticsearch | grep -v grep | awk '{print $2}'"| awk '{print $2}')
- ssh $hostname2 "kill $pid"
- echo "stop $hostname2 Elasticsearch $pid"
- pid=$(ssh $hostname3 "ps -ef | grep Elasticsearch | grep -v grep | awk '{print $2}'"| awk '{print $2}')
- ssh $hostname3 "kill $pid"
- echo "stop $hostname3 Elasticsearch $pid"
- ;;
- *)
- echo "input {start | stop}"
- ;;
- esac
科学上网安装ElasticSearch Head (使用谷歌浏览器安装插件)
es 索引创建脚本
- address=localhost:9200
- index=$1
- mapping=`cat mapping`
- #创建索引
- curl -X PUT "${address}/${index}"
- #设置mapping
- curl -XPOST "http://${address}/${index}/robot/_mapping?pretty" -d "
- ${mapping}
- "
- {
- "robot": {
- "_all": {
- "enabled": false
- },
- "properties": {
- "istat": {
- "analyzer": "standard",
- "type": "text"
- },
- "fileName": {
- "type": "keyword"
- },
- "_createDate_": {
- "format": "yyyy-MM-dd'T'HH:mm:ss.SSS'+08:00'",
- "type": "date"
- },
- "listener_time": {
- "format": "yyyy-MM-dd'T'HH:mm:ss.SSS'+08:00'",
- "type": "date"
- },
- "quality": {
- "analyzer": "standard",
- "type": "text"
- },
- "@timestamp": {
- "format": "yyyy-MM-dd'T'HH:mm:ss.SSS'+08:00'",
- "type": "date"
- },
- "value": {
- "type": "double"
- },
- "_nodeName_": {
- "type": "keyword"
- }
- }
- }
- }
节点规模扩展
新添加的节点需要配置cluster.initial_master_nodes,旧节点如果不重启不用修改,如果要重启旧节点,需要修改cluster.initial_master_nodes写入所有节点
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。