最近爆出log4j日志组件漏(bug)洞,我们的日志系统使用的是ELK方案,其中elasticsearch、logstash服务都用到了log4j组件,于是想通过升级来解决软件的漏(bug)洞问题。

按照下面思路进行: 1.备份elasticsearch现有业务数据 2.停掉旧版elasticsearch服务 3.安装新版elasticsearch服务 4.将备份数据恢复到新版elasticsearch服务中。

实施过程:

一、配置文件中指定仓库目录

修改elasticsearch.yml配置文件,并重启服务 path.repo: /data/elasticsearch_data_backup/

二、注册仓库 这里我使用的仓库名是20211223_001_bak,仓库存储路径/data/elasticsearch_data_backup/。

#注册快照存储库路径

PUT _snapshot/20211223_001_bak
{
  "type": "fs",
  "settings": {
     "location": "/data/elasticsearch_data_backup/"
  }
}

#查看仓库

GET /_cat/repositories?v

#删除仓库

DELETE /_snapshot/20211223_001_bak

三、创建快照备份数据 我的快照名为snapshot_20211223_001,位于20211223_001_bak仓库下

创建快照

PUT /_snapshot/20211223_001_bak/snapshot_20211223_001?wait_for_completion=true
{
  "indices": "php_error,kafka_delivery_success,queue_nginx_access,kafka_consumer_exec,kafka_delivery_start,nginx_access,kafka_consumer_receive,kafka_consumer_retry_exec,kafka_log_message,queue_php_error,kafka_consumer_commit_offset",
  "ignore_unavailable": true,
   "include_global_state": true
}

#查看所有快照

GET /_snapshot/20211223_001_bak/_all

#查看指定仓库正在运行的快照

GET /_snapshot/20211223_001_bak/_current

#查看所有指定快照

GET /_snapshot/20211223_001_bak/snapshot_20211223_001

#查看指定快照的运行状态

GET /_snapshot/20211223_001_bak/snapshot_20211223_001/_status

#删除快照

DELETE  /_snapshot/20211223_001_bak/

四、从指定快照恢复数据 恢复速度由您的服务器性能决定,这里可能需要耐心等待。

GET /_snapshot/20211223_001_bak/snapshot_20211223_001/_restore

五、验证查看索引数据

GET /_cat/indices?v

粗体