美文网首页
Elasticsearch安装及配置

Elasticsearch安装及配置

作者: 哈哈新开张 | 来源:发表于2020-01-20 09:51 被阅读0次

    中国网下载地址,各种版本和平台的都有 https://elasticsearch.cn/download/

    java 下载 https://www.oracle.com/technetwork/java/javase/downloads/index.html

    环境 Centos7 ES7.5

    注意事项:

    1 Java版本不要过低
    安装java,下载后解压缩,复制到自己指定目录
    vim /etc/profile 文件末尾添加
    export JAVA_HOME=/usr/local/jdk1.8  #指定自己的jdk文件路径
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin
    执行:source /etc/profile  使配置生效
    
    启动ES时可能会报错如下
    [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
    [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
    
    1 修改/etc/security/limits.conf文件,增加配置,用户退出后重新登录生效;用户退出后重新登录生效;用户退出后重新登录生效
    ***               soft    nofile          65536
    ***               hard    nofile          65536
    其中*** 为启动ES的用户,切记不要用root用户启动
    
    2 修改/etc/sysctl.conf文件,增加配置
    vi /etc/sysctl.conf
    vm.max_map_count=262144
    sysctl -p 
    
    2 启动Elasticsearch时,不要使用root用户,最好新建一个group和用户,命令如下
    groupadd elsearch
    useradd elsearch -g elsearch
    passwd elsearch
    启动前要检查配置的端口(9200)是否开放,否则web端无法访问
    
    firewall-cmd --zone=public --list-ports (查看所有开放的端口)
    firewall-cmd --zone=public --add-port=9200/tcp --permanent (开放9200端口)
    firewall-cmd --reload (重新加载使之神效)
    
    进入其目录,更改elasticsearch文件夹及内部文件的所属用户及组为elsearch:elsearch
    chown -R elsearch:elsearch  elasticsearch-6.8.0
    
    此时要保证 启动用户有执行es安装目录的权限,端口打开,如果设置开机启动如
    在/etc/rc.d/rc.local 中添加 su cq -c "/usr/local/elastic/bin/elasticsearch -d" 并给此文件可执行权限
    

    配置详解

    elasticsearch的config文件夹里面有两个配置文 件:elasticsearch.yml和logging.yml,第一个是es的基本配置文件,第二个是日志配置文件,es也是使用log4j来记录日 志的,所以logging.yml里的设置按普通log4j配置文件来设置就行了。下面主要讲解下elasticsearch.yml这个文件中可配置的 东西。

    
    #集群名称,同一个集群内的所有节点集群名称必须保持一致
    cluster.name: fuck
    
    #集群内的节点名称,同一个集群内的节点名称要具备唯一性
    node.name: node_41
    
    #允许节点是否可以成为一个master节点,ES是默认集群中的第一台机器成为master,如果这台机器停止就会重新选举
    node.master: true
    
    #允许该节点存储索引数据(默认开启)
    #关于Elasticsearch节点的角色功能详解,请看:https://www.dockerc.com/elasticsearch-master-or-data/
    node.data: true
    
    #es绑定地址,支持IPv4及IPv6,默认绑定127.0.0.1;es的HTTP端口和集群通信端口就会监听在此地址上
    network.host: 10.150.55.94
    
    #是否启用tcp无延迟,true为启用tcp不延迟,默认为false启用tcp延迟
    network.tcp.no_delay: true
    
    #是否启用TCP保持活动状态,默认为true
    network.tcp.keep_alive: true
    
    #设置集群节点通信的TCP端口,默认就是9300
    transport.tcp.port: 9300
    
    #设置是否压缩TCP传输时的数据,默认为false
    transport.tcp.compress: true
    
    #是否开启跨域访问
    http.cors.enabled: true
    
    #开启跨域访问后的地址限制,*表示无限制
    http.cors.allow-origin: "*"
    
    #设置http请求内容的最大容量,默认是100mb
    http.max_content_length: 100mb
    
    #定义ES对外调用的http端口,默认是9200
    http.port: 9200
    
    
    #集群内同时启动的数据任务个数,默认是2个
    cluster.routing.allocation.cluster_concurrent_rebalance: 2
    
    #添加或删除节点及负载均衡时并发恢复的线程个数,默认4个
    cluster.routing.allocation.node_concurrent_recoveries: 4
    
    #初始化数据恢复时,并发恢复线程的个数,默认4个
    cluster.routing.allocation.node_initial_primaries_recoveries: 4
    
    # 开启 xpack 功能,如果要禁止使用密码,请将以下内容注释,直接启动不需要设置密码
    # xpack.security.enabled: true
    # xpack.security.transport.ssl.enabled: true
    # xpack.security.transport.ssl.verification_mode: certificate
    # xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
    # xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
    
    
    ###################Elasticsearch7.0新增配置
    
    #写入候选主节点的设备地址,来开启服务时就可以被选为主节点,由discovery.zen.ping.unicast.hosts:参数改变而来
    discovery.seed_hosts: ["10.150.55.94:9301", "10.150.55.95:9301","10.150.30.246:9301"]
    
    #写入候选主节点的设备地址,来开启服务时就可以被选为主节点
    cluster.initial_master_nodes: ["10.150.55.94:9301", "10.150.55.95:9301","10.150.30.246:9301"]
    
    #设置每个节点在选中的主节点的检查之间等待的时间。默认为1秒
    cluster.fault_detection.leader_check.interval: 15s
    
    discovery.cluster_formation_warning_timeout: 30s
    #Elasticsearch7新增参数,启动后30秒内,如果集群未形成,那么将会记录一条警告信息,警告信息未master not fount开始,默认为10秒
    
    cluster.join.timeout: 30s
    #Elasticsearch7新增参数,节点发送请求加入集群后,在认为请求失败后,再次发送请求的等待时间,默认为60秒
    
    cluster.publish.timeout: 90s
    #Elasticsearch7新增参数,设置主节点等待每个集群状态完全更新后发布到所有节点的时间,默认为30秒
    
    
    
    
    ###################本地网关模块在整个集群重新启动时存储集群状态和分片数据。以下参数是配置 尝试恢复集群状态和集群数据的触发点,必须在每个主节点上都做做如下配置。
    
    
    
    #预期在集群中的(数据或主)节点数。只要预期的节点数已加入集群,就会启动本地分片的恢复。默认为0
    gateway.expected_nodes: 0
    
    #预期在集群中的主节点数。一旦预期的主节点数加入集群,就会开始恢复本地分片。默认为0
    gateway.expected_master_nodes: 0
    
    #预期在集群中的数据节点数。一旦预期数量的节点已加入集群,就会启动本地分片的恢复。默认为0
    gateway.expected_data_nodes: 0
    
    #如果未达到预期的节点数,则恢复过程将等待配置的时间量,然后再尝试恢复。如果只要配置了expected_nodes,则默认这个参数值为5m
    gateway.recover_after_time: 5m
    
    #一旦recover_after_time持续时间超时,只要满足以下条件,恢复就会开始:
    #只要此许多数据或主节点已加入集群,即可恢复。
    gateway.recover_after_nodes: 2
    
    #只要这么多主节点已加入集群,就可以恢复。
    gateway.recover_after_master_nodes
    
    #只要这么多数据节点已加入集群,就可以恢复。
    gateway.recover_after_data_nodes
    
    
    
    ###################以下配置取默认值,先注释
    
    #ES是搜索引擎,会创建文档,建立索引,此路径是索引的存放目录,如果我们的日志数据较为庞大,那么索引所占用的磁盘空间也是不可小觑的
    #这个路径建议是专门的存储系统,如果不是存储系统,最好也要有冗余能力的磁盘,此目录还要对elasticsearch的运行用户有写入权限
    #path可以指定多个存储位置,分散存储,有助于性能提升,以至于怎么分散存储请看详解https://www.dockerc.com/elk-theory-elasticsearch/
    
    #path.data: /data/ES-Cluster/master/ES-master-10.150.55.94/data1,/data/ES-Cluster/master/ES-master-10.150.55.94/data2
    
    
    #elasticsearch专门的日志存储位置,生产环境中建议elasticsearch配置文件与elasticsearch日志分开存储
    #path.logs: /data/ES-Cluster/master/ES-master-10.150.55.94/logs
    
    
    #在ES运行起来后锁定ES所能使用的堆内存大小,锁定内存大小一般为可用内存的一半左右;锁定内存后就不会使用交换分区
    #如果不打开此项,当系统物理内存空间不足,ES将使用交换分区,ES如果使用交换分区,那么ES的性能将会变得很差
    #bootstrap.memory_lock: true
    
    
    #network.tcp.reuse_address: true
    #是否应该重复使用地址。默认true,在Windows机器上默认为false
    
    
    #tcp发送缓冲区大小,默认不设置
    #network.tcp.send_buffer_size: 128mb
    
    
    #tcp接收缓冲区大小,默认不设置
    #network.tcp.receive_buffer_size: 128mb
    
    
    
    
    ###################Elasticsearch7.0版本已被移除的老配置
    discovery.zen.ping.unicast.hosts: ["10.150.55.94:9301", "10.150.55.95:9301","10.150.30.246:9301"]
    #写入候选主节点的设备地址,来开启服务时就可以被选为主节点;默认主机列表只有127.0.0.1和IPV6的本机回环地址;上面是书写格式,discover意思为发现,zen是判定集群成员的协议,unicast是单播的意思,ES5.0版本之后只支持单播的方式来进行集群间的通信,hosts为主机;总结下来就是:使用zen协议通过单播方式去发现集群成员主机,在此建议将所有成员的节点名称都写进来,这样就不用仅靠集群名称cluster.name来判别集群关系了
    
    
    #为了避免脑裂,集群的最少节点数量为,集群的总节点数量除以2加一,通过这个配置保证集群中具备master资格的节点达到这个个数再开始选举
    discovery.zen.minimum_master_nodes: 2 
    
    #探测超时时间,默认是3秒,我们这里填120秒是为了防止网络不好的时候ES集群发生脑裂现象
    discovery.zen.fd.ping_timeout: 120s 
    
    #探测次数,如果每次探测90秒,连续探测超过六次,则认为节点该节点已脱离集群,默认为3次
    discovery.zen.fd.ping_retries: 6
    
    #节点每隔15秒向master发送一次心跳,证明自己和master还存活,默认为1秒太频繁,
    discovery.zen.fd.ping_interval: 15s

    相关文章

      网友评论

          本文标题:Elasticsearch安装及配置

          本文链接:https://www.haomeiwen.com/subject/cyokzctx.html