• ELK安装、部署、调试 (二) ES的安装部署


    ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口操作ES,也可以利用Java API。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    1.概念以及特点

    1、Elasticsearch和MongoDB/Redis/Memcache一样,是非关系型数据库。

    是一个接近实时的搜索平台,从索引这个文档到这个文档能够被搜索到只有一个轻微的延迟,企业应用定位:采用Restful API标准的可扩展和高可用的实时数据分析的全文搜索工具。

    2、可拓展:支持一主多从且扩容简易,只要cluster.name一致且在同一个网络中就能自动加入当前集群;本身就是开源软件,也支持很多开源的第三方插件。

    3、高可用:在一个集群的多个节点中进行分布式存储,索引支持shards和复制,即使部分节点down掉,也能自动进行数据恢复和主从切换。

    4、采用RestfulAPI标准:通过http接口使用JSON格式进行操作数据。

    5、数据存储的最小单位是文档,本质上是一个JSON 文本:

    2,下载及安装

    下载es,Download Elasticsearch | Elastic

    https://www.elastic.co/cn/downloads/elasticsearch

    百度网盘中elk下有

    安装:

    tar -zxvf elasticsearch-7.9.3-linux-x86_64.tar.gz -C /usr/local

    es需要创建一个普通的用户,本身是禁止root来启动es,也是为了安全
    useradd esuser
    chown -R esuser:esuser /usr/loca/elasticsearch 目录授权

    我的操作

    1. [root@localhost elasticsearch]# useradd esuser
    2. [root@localhost elasticsearch]# ls
    3. useradd esuser
    4. mkdir -p /data1/elasticsearch
    5. mkdir -p /data2/elasticsearch
    6. chown -R esuser:esuser /usr/local/elasticsearch
    7. chown -R esuser:esuser /data1/elasticsearch
    8. chown -R esuser:esuser /data2/elasticsearch

    3.系统及jvm 优化es

    1.操作系统优化

    1. /etc/sysctl.conf 文件添加内容如下
    2. fs.file-max=655360   系统最大打开文件数
    3. vm.max_map_count=262144 配置java的进程使用虚拟内存的大小
    4. fs.file-max=655360   
    5. vm.max_map_count=262144
    6. /etc/security/limits.conf
    7. * soft nproc  204800  最大进程数
    8. * hard nproc  204800  最大进程数
    9. * soft nofile 655360
    10. * hard nofile 655350
    11. * soft memlock unlimited
    12. * hard memlock unlimited
    13. /etc/security/limits.d/20-nproc.conf(仅centos7)
    14. * soft nproc 4096 改为20480 
    15. 或者直接删除此文件。
    16. sysctl -p
    17. ulimit -a 查看配置是否生效

    2.jvm优化,对其使用的内存进行优化

    1. vi /usr/local/elasticsearch/config/jvm.options
    2. 修改
    3. -Xms2g
    4. -Xmx2g
    5. 默认是2g,推荐测试系统内存的1/2

    4.配置ES

    /usr/local/elasticsearch/config/elasticsearch
    默认所有配置都是注释掉的

    1. # 集群名称,如果不指定,默认是elasticsearch
    2. cluster.name: my-ly-elk
    3. 节点名称,默认从elasticsearch-***/lib/elasticsearch-2.4.3.jar!config/names.txt中随机选择一个名称
    4. node.name: server-1
    5. 节点是否有权利成为master,默认true,一般第一台启动的es会被认定为master
    6. node.master:true
    7. 是否为数据存储节点,即是datanode节点
    8. node.data:true 
    9. 注意:如果node.master和node.data都是false,则这个节点为client node,类似于路由器,只有转发的能力。
    10. 配置文件的路径
    11. path.conf: /usr/local/elasticsearch/config
    12. #
    13. 可以指定es的数据存储目录,默认存储在es_home/data目录下
    14. path.data: /data1/elasticsearch,/data2/elasticsearch
    15. #
    16. # 可以指定es的日志存储目录,默认存储在es_home/logs目录下
    17. path.logs: /usr/local/elasticsearch/logs
    18. #es插件的存放路径
    19. path.plugins:/usr/local/elasticsearch/plugins
    20. 锁定物理内存地址,防止elasticsearch内存被交换出去,也就是避免es使用swap交换分区
    21. bootstrap.memory_lock: true
    22. # 为es设置ip绑定,默认是127.0.0.1,也就是默认只能通过127.0.0.1 或者localhost才能访问
    23. # es1.x版本默认绑定的是0.0.0.0 所以不需要配置,但是es2.x版本默认绑定的是127.0.0.1,需要配置
    24. network.host: 0.0.0.0
    25. # 为es设置自定义端口,默认是9200
    26. # 注意:在同一个服务器中启动多个es节点的话,默认监听的端口号会自动加1:例如:920092019202...
    27. # Set a custom port for HTTP:
    28. http.port: 9200
    29. 9300为es节点之间的通信端口
    30. 配置最小的master节点数,通过配置这个参数来防止集群脑裂现象 (集群总节点数量/2)+1
    31. discovery.zen.minimum_master_nodes:1
    32. 如果节点少的话,配置为1,如果配置大了,而没有那么多master节点,会造成es集群无法启动
    33. 配置自动发现其他节点,超时的时间。默认为3s,网络条件不太好时设置大一些
    34. discovery.zen.ping.timeout:3s
    35. 配置多播发现节点
    36. discovery.zen.ping.multicast.enabled:false
    37. master节点的初始化。将所有的master节点配置到这里,包括自己的ip
    38. discovery.zen.ping.unicast.host:["10.10.10.65:9300","10.10.10.66:9300"]
    39. cluster.name: my-ly-elk
    40. node.name: server-65
    41. node.master: true
    42. node.data: true
    43. #path.conf: /usr/local/elasticsearch/config
    44. path.data: /data1/elasticsearch,/data2/elasticsearch
    45. path.logs: /usr/local/elasticsearch/logs
    46. #path.plugins: /usr/local/elasticsearch/plugins
    47. bootstrap.memory_lock: true
    48. network.host: 0.0.0.0
    49. http.port: 9200
    50. discovery.zen.minimum_master_nodes: 1
    51. #discovery.zen.ping.timeout: 3s
    52. #discovery.zen.ping.multicast.enabled: false
    53. discovery.zen.ping.unicast.hosts: ["10.10.10.65:9300","10.10.10.66:9300","10.10.10.67:9300"]
    54. cluster.initial_master_nodes: ["10.10.10.65", "10.10.10.66"]     #此参数需要配置,如果默认不配置,kibana连接es会
    55. 报错
    56. #注释掉的都是启动时报错了 然后才注释掉的

    5.启动ES 

    su - esuser
    ES目录下  bin/elasticsearch -d   #-d是配置为后台运行

    启动后查看日志/usr/local/elasticsearch/logs/集群名.log

    启动成功后ps -ef| grep java也可以看到
    或者用curl http://ip:9200查看三台服务器的信息
    [esuser@localhost elasticsearch]$ curl http://10.10.10.66:9200
    curl: (7) Failed connect to 10.10.10.66:9200; 没有到主机的路由
    [esuser@localhost elasticsearch]$ curl http://10.10.10.66:9200

    1. {
    2.   "name" : "server-66",
    3.   "cluster_name" : "my-ly-elk",
    4.   "cluster_uuid" : "_na_",
    5.   "version" : {
    6.     "number" : "7.9.3",
    7.     "build_flavor" : "default",
    8.     "build_type" : "tar",
    9.     "build_hash" : "c4138e51121ef06a6404866cddc601906fe5c868",
    10.     "build_date" : "2020-10-16T10:36:16.141335Z",
    11.     "build_snapshot" : false,
    12.     "lucene_version" : "8.6.2",
    13.     "minimum_wire_compatibility_version" : "6.8.0",
    14.     "minimum_index_compatibility_version" : "6.0.0-beta1"
    15.   },
    16.   "tagline" : "You Know, for Search"
    17. }
    18. [esuser@localhost elasticsearch]$


    如上图,正常

  • 相关阅读:
    每日一道面试题之什么是上下文切换?
    np.argsort()函数
    Spring框架概述以及入门案例
    LeetCode | 225. 用队列实现栈
    关联关系映射
    Java小树的参天成长【基本类型与字符串之间的转化】
    UE5蓝图接口使用方法
    【Java基础面试三十七】、说一说Java的异常机制
    华为eNSP配置专题-IPSec的配置
    基于C语言 -- 线程池实现
  • 原文地址:https://blog.csdn.net/ly4983/article/details/132583543