Elasticsearch 的`path.settings`是用于配置 Elasticsearch 数据和日志存储路径的重要设置,这些路径在`elasticsearch.yml`配置文件中定义。以下是关于 Elasticsearch 的路径设置(`path.data`和`path.logs`)以及快照存储库配置的详细说明:
1.`path.data`配置
`path.data`是 Elasticsearch 用于存储索引数据和集群状态的目录。默认情况下,Elasticsearch 将数据存储在`$ES_HOME/data`目录下。
多路径配置
在 7.13 版本之前,Elasticsearch 支持在`path.data`中配置多个路径,允许将数据分散存储到多个磁盘上。例如:
```yaml
path.data: /mnt/disk1,/mnt/disk2,/mnt/disk3
```
这种配置类似于软件级的 RAID-0,可以提高 I/O 性能。然而,Elasticsearch 不会在多个路径之间自动平衡分片的存储,且单个路径的高磁盘使用率可能触发整个节点的高磁盘水位线。
官方建议
从 7.13 版本开始,多路径支持已被弃用,官方建议使用单路径配置,并通过添加新节点来扩展存储容量。
2.`path.logs`配置
`path.logs`是 Elasticsearch 用于存储日志文件的目录。默认情况下,日志存储在`$ES_HOME/logs`目录下。您可以根据需要修改此路径,例如:
```yaml
path.logs: /var/log/elasticsearch
```
3.快照存储库配置
快照存储库是用于存储快照数据的路径或存储服务。在创建快照之前,必须先定义一个存储库。
配置存储库
在`elasticsearch.yml`文件中,通过`path.repo`指定快照存储库的路径。例如:
```yaml
path.repo: ["/data/es_snapshot"]
```
然后,通过 API 创建存储库:
```bash
PUT /_snapshot/my_backup
{
"type": "fs",
"settings": {
"location": "/data/es_snapshot"
}
}
```
• `type`:存储库类型,`fs`表示本地文件系统。
• `location`:快照数据的存储路径。
创建快照
定义存储库后,可以通过以下命令创建快照:
```bash
PUT /_snapshot/my_backup/snapshot_1
{
"indices": "index_1,index_2",
"ignore_unavailable": true,
"include_global_state": false
}
```
4.注意事项
• 数据安全性:多路径配置类似于软件级 RAID-0,没有数据冗余。如果其中一个磁盘故障,存储在该磁盘上的分片数据将丢失。
• 快照存储库权限:确保 Elasticsearch 有权限访问`path.repo`指定的路径。
• 滚动重启:修改`elasticsearch.yml`文件后,需要滚动重启集群以使配置生效。
通过合理配置`path.data`和`path.logs`,以及设置快照存储库,可以优化 Elasticsearch 的数据存储和备份策略,提高集群的性能和可靠性。Elasticsearch 的 path.settings 是用于配置 Elasticsearch 数据和日志存储路径的重要设置。这些设置在 elasticsearch.yml 配置文件中定义,用于指定 Elasticsearch 数据和日志文件的存储位置。以下是关于 Elasticsearch path.settings 的详细说明:1. 默认路径在 Elasticsearch 的默认安装中, data 和 logs 目录通常位于 $ES_HOME 目录下。 $ES_HOME 是 Elasticsearch 的安装根目录。例如: data 目录:存储 Elasticsearch 的索引数据和集群状态信息。 logs 目录:存储应用程序日志,包括集群健康信息、操作日志等。然而,这种默认设置在生产环境中并不推荐,因为 $ES_HOME 目录中的文件可能会在升级过程中被覆盖或删除。2. 推荐的路径设置为了提高数据安全性和灵活性,Elasticsearch 官方建议在生产环境中将 path.data 和 path.logs 配置为 $ES_HOME 之外的路径。例如:yaml复制path:
data: /var/data/elasticsearch
logs: /var/log/elasticsearch
path.data :指定存储 Elasticsearch 数据的目录。 path.logs :指定存储日志文件的目录。通过将数据和日志存储在独立路径中,可以避免在升级或重新安装 Elasticsearch 时丢失数据。3. 支持的路径格式Elasticsearch 支持的路径格式因操作系统而异:Linux 和 macOS:支持 Unix 风格的路径,例如 /var/data/elasticsearch 。Windows:支持 Windows 风格的路径,例如 C:\data\elasticsearch 。4. 多路径支持(已弃用)在早期版本中,Elasticsearch 支持为 path.data 配置多个路径,例如:yaml复制path:
data:
-
/mnt/elasticsearch_1
-
/mnt/elasticsearch_2
-
/mnt/elasticsearch_3
这种配置允许 Elasticsearch 在多个磁盘路径中存储数据,但每个分片的数据会存储在同一个路径中。然而,从 7.13 版本开始,多路径支持已被弃用,并将在未来版本中完全移除。
-
从多路径迁移到单路径如果您当前使用的是多路径配置,建议迁移到单路径配置。以下是迁移步骤:
-
创建快照:在迁移之前,创建一个集群快照以保护数据。
-
使用分配过滤器迁移数据:将数据从目标节点迁移到其他节点。
-
关闭目标节点:按照滚动重启的步骤关闭目标节点。
-
确保集群健康状态:确保集群健康状态为 yellow 或 green 。
-
移除分配过滤器:如果之前设置了分配过滤器,需要移除。
-
清理数据路径:删除目标节点的数据路径中的内容。
-
重新配置存储:将多个磁盘合并为一个文件系统(例如使用 LVM 或 RAID)。
-
重新配置节点:更新 elasticsearch.yml 文件中的 path.data 设置。
-
启动新节点:启动新配置的节点,并完成滚动重启过程。
-
验证集群状态:确保集群健康状态为 green ,所有分片已正确分配。
-
注意事项数据目录的安全性:不要修改数据目录中的内容,也不要运行可能干扰其内容的进程。否则可能会导致数据损坏或丢失。
备份和恢复:不要尝试对数据目录进行文件系统备份。建议使用 Elasticsearch 的快照和恢复功能进行安全备份。
磁盘使用率:Elasticsearch 不会在多个数据路径之间自动平衡磁盘使用率。如果某个路径的磁盘使用率过高,可能会触发整个节点的高磁盘使用率水位线,导致节点拒绝分片分配。
通过合理配置 path.settings ,可以提高 Elasticsearch 的数据安全性和集群的稳定性。在生产环境中,建议始终将数据和日志存储在 $ES_HOME 之外的路径,并避免使用已弃用的多路径配置。