11.Elasticsearch的重要配置

  • Elasticsearch在生产中使用cluster之前必须考虑许多事项:
    • Path设置
    • Cluster name设置
    • Node name设置
    • Network host设置
    • Discovery设置
    • Heap size设置
    • JVM heap dump path设置
    • GC logging设置
    • Temporary directory设置
    • JVM fatal error log设置
    • Cluster备份

11.1 路径设置

  • 如果正在使用 .zip 或 .tar.gz 归档, data 和 logs 目录在都在 $ES_HOME 下
    • 如果这些比较重要的文件夹保留在默认位置,则 Elasticsearch 升级到新版本时,很有可能被删除
path:
logs: /var/log/elasticsearch
data: /var/data/elasticsearch
  • RPM 和 Debian 发行版已经为 data 和 logs 使用了自定义路径。
  • path.data 可以设置为多个路径,在这种情况下,所有路径将用于存储数据
    • 属于单个shard的文件将全部存储在同一数据路径上:
path:
  data:
  - /mnt/elasticsearch_1 
  - /mnt/elasticsearch_2 
  - /mnt/elasticsearch_3

11.2 cluster名称

  • 当node与cluster中的所有其他node共享 cluster.name 时,该node就能加入cluster
  • 默认名称是 elasticsearch,但可将其更改为描述cluster用途的适当名称
cluster.name: logging-prod
  • 确保不要在不同的环境中重复使用相同的cluster名称,否则最终可能会导致node加入错
    误的cluster

11.3 node名称

  • Elasticsearch 使用 node.name 作为 Elasticsearch 特定 instance 的可读标识符,因此它被包含在许多 API 的响应中
  • 它默认机器在 Elasticsearch 启动时的主机名,但可以在 elasticsearch.yml 中更改配置,如下所示:
node.name: prod-data-2

11.4 Network host设置

  • 默认情况下, Elasticsearch 仅绑定回送地址
    • 例如 127.0.0.1 和 [::1]
    • 这样足以在服务器上运行单nodecluster
  • 实际上,可以从单node上相同的 $ ES_HOME 位置启动多个node
    • 这对于测试 Elasticsearch 形成cluster的能力很有用,但不建议在生产中使用此配置
  • 为了与其他服务器上的node形成cluster,node将需要绑定到非回送地址
    • 尽管有许多网络设置方式,但通常需要配置的只是 network.host:
network.host: 192.168.1.10
  • network.host 还可以设置一些特殊值
    • 例如_local_,site,global 以及诸如 :ip4 和 :ip6

11.5 重要的discovery和cluster初始化设置

  • 在投入生产之前,应配置如下2个参数,以便cluster中的node可以彼此发现并选举一个主node:
    • discovery.seed_hosts
    • cluster.initial_master_nodes
  • discovery.seed_hosts
    • 开箱即用,无需任何网络配置,Elasticsearch 将绑定到可用的回送地址,并将扫描 Local 端口9300 至 9305
    • 如果要与其他主机上的node组成cluster,则必须设置 discovery.seed_hosts
discovery.seed_hosts:
  - 192.168.1.10:9300
  - 192.168.1.11 
  - seeds.mydomain.com 
  - [0:0:0:0:0:ffff:c0a8:10c]:9301
  • cluster.initial_master_nodes
    • 重新启动cluster或者有新node加入cluster时,不应使用此设置
discovery.seed_hosts:
  - 192.168.1.10:9300 
  - 192.168.1.11 
  - seeds.mydomain.com
cluster.initial_master_nodes: 
- master-node-a 
- master-node-b 
- master-node-c

11.6 Heap size设置

  • 默认情况下,Elasticsearch 会告诉 JVM 使用最大和最小 1 GB 的堆
    • Elasticsearch 将通过 [jvm.options]中指定整个堆
      • Xms(最小堆大小) 和 Xmx(最大堆大小) 设置,应该让这 2 个参数相等
  • Xmx 和 Xms 设置不应该超过宿主机内存的 50%
    • Xmx 和 Xms 设置不超过 JVM 用于压缩对象指针(压缩 oops ), 确切的值会有有所不同,但是接近 32G,可以通过在日志中查找验证是否在阈值之下:
[1.9gb], compressed ordinary object pointers [true]
  • 下面是通过 jvm.options 文件设置堆大小的示例:
1. -Xms2g 
2. -Xmx2g
  • 也可以通过环境变量设置堆大小
    • 这可以通过在 jvm.options 文件,并通过 ES_JAVA_OPTS 设置以下值:
      • 将最小和最大堆大小设置为 2 GB
      • 将最小和最大堆大小设置为 4000 MB
ES_JAVA_OPTS="-Xms2g -Xmx2g" ./bin/elasticsearch 
ES_JAVA_OPTS="-Xms4000m -Xmx4000m" ./bin/elasticsearch

11.7 VM heap dump 文件路径

  • Elasticsearch 配置 JVM 的默认配置,将内存不足异常时生成的 heap dump 文件保存到data 目录
    • 当以 RPM 和 Debian 的方式安装时,在 /var/lib/elasticsearch 目录下
    • 当以 tar 和 zip 压缩包的方式安装时,data 目录在 Elasticsearch 的根目录下
  • 如果此路径不适合存储 heap dump 文件,应该修改 jvm.options 的配置项 -
    XX:HeapDumpPath=…
    • 当指定的是一个目录,那么 JVM 将以正在运行 instance 的 PID 作为 heap dump 的文件名
    • 如果指定的是一个文件而不是一个目录,当出现内存不足异常时,必须确保这个文件不存在,否则 heap dump 将会生成失败

11.8 GC logging设置

  • 默认情况下,Elasticsearch 启用 GC 日志
  • 这些是在 jvm.options 中配置的,默认为与 Elasticsearch 日志相同的默认位置
  • 默认配置每 64 MB 轮换一次日志,最多可消耗 2 GB 磁盘空间

11.9 临时文件

  • 默认情况下,Elasticsearch 启动脚本在系统临时目录下立即创建私有临时目录
  • 在某些 Linux 发行版上,如果最近未访问过文件和目录,则系统程序将从 / tmp 中清除文件和目录
    • 如果长时间不使用需要临时目录的功能,这可能会导致在运行时, Elasticsearch 删除私有临时目录
    • 如果随后使用需要临时目录的功能,则将导致问题
  • 如果使用.deb 或.rpm 软件包安装 Elasticsearch 并在 systemd 下运行它,则定期清理计划将排除 Elasticsearch 使用的私有临时目录
  • 但如果打算长时间在 Linux 上运行.tar.gz 发行版,则应考虑为 Elasticsearch 创建专用的临时目录,该临时目录不在将清除旧文件和目录的路径下
    • 该目录应该设置权限,以便只有运行 Elasticsearch 的用户才能访问它
    • 然后在启动 Elasticsearch 之前将 $ ES_TMPDIR 环境变量指向它

11.10 JVM 致命错误日志

  • 默认情况下,Elasticsearch 将 JVM 配置为将致命错误日志写入默认日志目录
    • 在RPM和Debian软件包上,这个目录是/var/log/elasticsearch.
    • 在Linux 和 MacOS以及Windows发行版上,该logs 目录位于 Elasticsearch 安装的根目录下
  • 这些是 JVM 在遇到致命错误(例如分段错误)时生成的日志
    • 如果此路径不适合接收日志,则应将参数修改成备用路径 -XX:ErrorFile=… 在 jvm.options

11.11 cluster备份

  • 在灾难中,快照可以防止永久性数据丢失
  • 快照生命周期管理是对cluster进行定期备份的最简单方法

大数据视频推荐:
CSDN
大数据语音推荐:
ELK7 stack开发运维
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通

你可能感兴趣的:(ELK,elasticsearch,kafka,big,data)