安装es:root用户:
1.布署java环境 - 所有节点
wget https://d6.injdk.cn/oraclejdk/8/jdk-8u341-linux-x64.rpm
yum localinstall jdk-8u341-linux-x64.rpm -y
java -version
2.下载安装elasticsearch - 所有节点
wget ftp://10.3.148.254/Note/Elk/elasticsearch-6.4.1.tar.gz
2.1.创建elk用户
# useradd elk # elasticsearch不能以root用户运行,仅普通用户运行
# echo 123|passwd --stdin elk
# tar xf elasticsearch-6.4.1.tar.gz -C /usr/local/
# ln -s /usr/local/elasticsearch-6.4.1 /usr/local/es
# chown -R elk.elk /usr/local/es/*
2.2.创建数据目录
# mkdir -p /data/es/{data,logs}
# chown -R elk.elk /data/es/
修改es配置:elk用户
1.节点一配置es-master
# su - elk
# egrep -v "^#" /usr/local/es/config/elasticsearch.yml
cluster.name: es-cluster # 集群名称,各节点配置相同集群名称
node.name: node-1 # 节点名称,各节点配置不同。
node.master: true # 指示某个节点是否符合成为主节点的条件
node.data: true # 指示节点是否为数据节点。数据节点包含并管理索引的一部分
path.data: /data/es/data # 数据存储目录
path.logs: /data/es/logs # 日志存储目录
bootstrap.memory_lock: true # 内存锁定,是否禁用交换
network.host: 0.0.0.0 # 绑定节点IP
http.port: 9200 # rest api端口
discovery.zen.ping.unicast.hosts: ["node-1", "node-2"] # 提供其他 Elasticsearch 服务节点的单点广播发现功能
#bootstrap.system_call_filter 系统调用过滤器。
#discovery.zen.minimum_master_nodes 集群中可工作的具有Master节点资格的最小数量,官方的推荐值是(N/2)+1,其中N是具有master资格的节点的数量。
#discovery.zen.ping_timeout 节点在发现过程中的等待时间。
#discovery.zen.fd.ping_retries 节点发现重试次数。
#http.cors.enabled 是否允许跨源 REST 请求,用于允许head插件访问ES。
#http.cors.allow-origin 允许的源地址。
2.节点二配置es-data
# su - elk
# egrep -v "^#" /usr/local/es/config/elasticsearch.yml
cluster.name: es-cluster
node.name: node-2
node.master: false
node.data: true
path.data: /data/es/data
path.logs: /data/es/logs
bootstrap.memory_lock: true
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["node-1", "node-2"]
配置环境:root用户:
1.两台机器要互相解析;节点名和主机名一样,就无需解析!
节点一:
# hostnamectl set-hostname es1
# vim /etc/hosts
192.168.148.132 es1 node-1
192.168.148.133 es2 node-2
节点二:
# hostnamectl set-hostname es2
# vim /etc/hosts
192.168.148.133 es2 node-2
192.168.148.132 es1 node-1
更改性能要求:所有节点
2.进程最大可同时打开文件数太小,至少要65536
# echo "elk soft nofile 65536" >> /etc/security/limits.conf
# echo "elk hard nofile 65536" >> /etc/security/limits.conf
3.请求锁内存失败,系统默认能让进程锁住的最大内存为64k
# echo "elk soft memlock unlimited" >> /etc/security/limits.conf
# echo "elk hard memlock unlimited" >> /etc/security/limits.conf
4.elk用户拥有的内存权限太小了,至少需要262114
# echo vm.max_map_count=262144 >> /etc/sysctl.conf
启动服务:elk用户:
1.先启动master节点, 再启动data节点
# su - elk
$ /usr/local/es/bin/elasticsearch -d #-d以守护进程方式运行
# su - elk -c '/usr/local/es/bin/elasticsearch -d'
2.验证端口:9200:传输数据;9300:集群通信
# netstat -tln #elk用户不能+p
tcp6 0 0 :::9200 :::* LISTEN 1238/java
tcp6 0 0 :::9300 :::* LISTEN 1238/java
3.查看服务情况:
# curl 192.168.148.132:9200
查看集群的详细信息:
# curl 192.168.148.132:9200/_cluster/health?pretty
number_of_nodes 和 number_of_data_nodes 这个命名完全是自描述的。
active_primary_shards 指出你集群中的主分片数量。这是涵盖了所有索引的汇总值。
active_shards 是涵盖了所有索引的所有分片的汇总值,即包括副本分片。
relocating_shards 显示当前正在从一个节点迁往其他节点的分片的数量。通常来说应该是0,不过在ES发现集群不太均衡时,该值会上涨。
initializing_shards 是刚刚创建的分片的个数。比如,当你刚创建第一个索引,分片都会短暂的处于 initializing 状态。
unassigned_shards 是已经在集群状态中存在的分片,但是实际在集群里又找不着。通常未分配分片的来源是未分配的副本。
关于集群健康状况
响应信息中最重要的一块就是 status字段。状态可能是下列三个值之一:
green - 所有的主分片和副本分片都正常运行。
yellow - 所有的主分片都正常运行,但不是所有的副本分片都正常运行。
red - 有主分片没能正常运行。