elasticsearch 集群+skywalking 集群 搭建

发布时间 2023-05-08 17:53:01作者: MhaiM

###elasticsearch集群部署####

elasticsearch 包下载地址:https://www.elastic.co/downloads/past-releases/elasticsearch-7-14-0

前提:elasticsearch集群 只能用普通用户启动,root账号启动会失败

1、创建一个user_es普通用户,并修改密码

groupadd -g 10001 user_es
useradd -g 10001 -u 10001 -m user_es

echo user_es:qazwsxedc|chpasswd

2、为新用户授权目录

mv  elasticsearch-7.14.0 /home/user_es/elasticsearch

chown -R user_es. user_es  /home/es_user/elasticsearch

3、优化系统参数

ElasticSearch7需要jdk支持,我们常用的为jdk8,也可以使用ElasticSearch7自带的jdk,如下配置是自带的jdk

vim  /home/user_es/elasticsearch/bin/elasticsearch-env

添加如下配置:

if [ "$(uname -s)" = "Darwin" ]; then
# macOS has a different structure
  JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
else
   JAVA="$ES_HOME/jdk/bin/java"
fi
JAVA_TYPE="bundled JDK"

#配置最大的文件数

vim /etc/security/limits.conf

# 在文件末尾中增加下面内容
user_es soft nofile 655360
user_es hard nofile 655360

# 配置最大进程数

vim /etc/security/limits.d/20-nproc.conf
# 在文件末尾中增加下面内容
user_es soft nofile 655360
user_es hard nofile 655360
* hard nproc 4096
# 注:* 带表Linux所有用户名称

#配置虚拟机最大内存
vim /etc/sysctl.conf
# 在文件中增加下面内容
vm.max_map_count=655360
#重新加载配置
sysctl -p

#创建数据和日志目录并授权

mkdir -p /opt/elasticsearch_data/data
mkdir -p /opt/elasticsearch_log/logs
chown -R user_es.user_es /opt/elasticsearch_data
chown -R user_es.user_es/opt/elasticsearch_log

4、优化elasticsearch 配置

#修改jvm 参数 默认是1g,es7版本以上配置4g,推荐将堆内存设置在总内存的50%以下

vim  /home/user_es/elasticsearch/config/jvm.options

-Xms4g
-Xmx4g

#修改GC

8-13:-XX:+UseConcMarkSweepGC 改为8-13:-XX:+UseG1GC

说明:G1GC是面向大内存的,适用于具有大量内存的应用程序,而CMS更适用于小型应用程序

#修改elasticsearch的配置文件

vim  /home/user_es/elasticsearch/config/elasticsearch.yml

#cluster
cluster.name: yunsale-aiot-cluster                    #集群名称3个必需相同
#Node
node.name: skywalking-elasticsearch-1           #节点名称
node.master: true                                             #当前是否选举为master节点 true:是、false:否
node.data: true                                                 #当前是否用于存储数据 true:是、false:否
#Paths
path.data: /opt/es_user-data/data                    # 数据存储目录
path.logs: /opt/es_user-log/logs                      # 日志存储目录
#Memory
bootstrap.memory_lock: false                        #需求锁住物理内存,是:true、否:false
#Network
network.host: 0.0.0.0                                     #绑定ip地址本机访问
#默认:9200-9300端口
http.port: 9200                                                # 主机访问的端口
#默认:9300-9400端口
transport.tcp.port: 9300                                 #集群内部通信端口
#Discovery
discovery.seed_hosts: ["192.168.6.8:9300", "192.168.6.9:9300","192.168.6.10:9300"]                            # 集群节点列表,此处已经提前做好host映射,可替换为真实ip
discovery.zen.minimum_master_nodes: 2                                                             #当在更新集群的状态时至少需要有两个主节点可用。通常情况下,这个值应该是集群中主节点数量的一半加一 ,防止发生脑裂
cluster.initial_master_nodes: ["192.168.6.8","192.168.6.9","192.168.6.10"]                                              #es7.x 之后新增的配置,初始主节点
http.cors.enabled: true                                                                                                                                         #是否支持跨域,是:true,在使用head插件时需要此配置
http.cors.allow-origin: "*"                                                                                                                                      # "*" 支持所有域名访问
#Various
#xpack.security.enabled: true                                                                                                                             #是否开启安全认证机制(已注释)
#xpack.security.transport.ssl.enabled: true                                                                                                        # 是否开启节点间的安全连接传输功能(已注释)

#启动Elasticsearch及验证

su - user_es -c "/home/user_es/elasticsearch/bin/elasticsearch -d"                                                                  #后台启动

#单节点验证是否成功
浏览器访问curl 192.168.6.8:9200
#集群验证是否成功
# 节点的健康状态
curl 192.168.6.8:9200/_cat/health