为了实现事件的可缩放分布式索引,您必须在群集模式下安装 Elasticsearch。为 Sentinel 安装的 Elasticsearch 群集只能用于为 Sentinel 数据编制索引。
安装 Elasticsearch 前,请先实现以下先决条件:
通过在 /etc/sysctl.conf 文件中添加以下属性,设置虚拟内存:
vm.max_map_count=262144
通过在 /etc/security/limits.conf 文件中添加以下属性,设置文件描述符:
elasticsearch hard nofile 65536
elasticsearch soft nofile 65536
elasticsearch soft as unlimited
重要说明:满足上述前提条件之后,运行 sysctl -p 命令重新装载文件变更。
您必须在每个 Elasticsearch 群集节点上安装 Elasticsearch 以及必需的插件。
要安装和配置 Elasticsearch,请执行以下操作:
安装 Elasticsearch 支持的 JDK 版本。
下载 Elasticsearch RPM 已认证版本。有关 Elasticsearch 已认证版本和下载 URL 的信息,请参见 Sentinel 技术信息页面。
安装 Elasticsearch:
rpm -i elasticsearch-<版本>.rpm
完成 RPM 安装后说明屏幕上提到的任务。
确保 Elasticsearch 用户可通过运行以下命令访问 Java:
sudo -u elasticsearch java -version
通过更新或添加以下信息,配置 /etc/elasticsearch/elasticsearch.yml 文件:
属性和值 |
注释 |
---|---|
cluster.name:<Elasticsearch _cluster_name> |
对于所有节点,指定的群集名称必须相同。 |
node.name:<node_name> |
对于每个节点,节点名称必须唯一。 |
network.host:_<networkInterface>:ipv4_ |
|
discovery.zen.ping.unicast.hosts:["<elasticsearch 节点 1 的 FQDN>", "<elasticsearch 节点 2 的 FQDN>", 等等"] |
|
thread_pool.bulk.queue_size: 300 |
|
thread_pool.search.queue_size: 10000 |
搜索队列大小达到限制后,Elasticsearch 就会丢弃队列中所有未处理的搜索请求。 您可以根据以下公式增加搜索队列大小:calculation:threadpool.search.queue_size = 仪表板中每个用户的平均控件查询次数 x 分区数(每日索引)x 天数(搜索持续时间) |
index.codec:best_compression |
|
path.data:["/<es1>", "/<es2>"] |
让数据分布到多个独立磁盘或位置,以减少磁盘 I/O 延迟。 配置多个路径,用于储存 Elasticsearch 数据。例如 /es1、/es2,等等。 为了实现最佳性能和可管理性,请将每个路径都装入单独的物理磁盘 (JBOD)。 |
更新 /etc/elasticsearch/jvm.options 文件中默认的 Elasticsearch 堆大小。
堆大小必须是服务器内存的 50%。例如,在 24 GB 的 Elasticsearch 节点上,分配 12 GB 作为堆大小,以实现最佳性能。
启动 Elasticsearch:
/etc/init.d/elasticsearch start
在每个 Elasticsearch 群集节点上重复执行以上所有步骤。