关键词:
elk笔记11--快照的使用
1 快照介绍
快照是运行中es集群的一个备份,进行快照时候既可以全集群所有索引备份,也可以指定某些索引备份;
快照存储在仓库中,因此使用快照前需要注册一个仓库;
快照可以存储在本地仓库,也可以存储到远程仓库,如Amazon S3, HDFS, Microsoft Azure, Google Cloud Storage;
快照中的数据是增量进行了,即当前快照里面某个index的数据不在比它早的快照数据中,因此可以多次进行快照操作,而不用担心占用过多存储空间。
快照的流程:
客户端请求->协调节点->主节点->[数据节点1,数据节点2…数据节点n],快照涉及3类型节点;
协调节点:接收客户端请求,转发到主节点。
主节点:将创建快照相关的请求信息放到集群状态中广播下去,数据节点收到后执行数据复制;主节点同时负责在仓库中写入集群状态数据。
数据节点:负责将Lucene文件复制到仓库,并在数据复制完毕后清理仓库中与如何快照都不相关;由于数据发布在各个节点,因此复制操作必须由数据节点执行,每个数据节点将快照请求中本地存储的主分片复制到仓库。
2 快照使用
2.1 nfs 作为存储仓库
- 配置并挂载nfs服务
- 在h01 上启动nfs
在 /etc/exports 中配置nfs目录/mnt/nfs01, 并重启nfs服务端
/mnt/nfs01 10.120.75.0/24(rw,sync,no_subtree_check)
/etc/init.d/nfs-kernel-server restart - 在h01,h02,h03 上挂载nfs服务
在/etc/fstab 中配置nfs挂载项目,并挂载
10.120.75.102:/mnt/nfs01 /nfs01 nfs rw,async,vers=3,rsize=524288,wsize=524288,acdirmin=5,acdirmax=8,hard,proto=tcp 0 0
mount -a
nfs 安装和使用见笔者文章shell编程笔记2–nfs挂载
- 配置仓库目录信息
在yml中添加path.repo属性,确保所有的master和data节点能感知到该目录,配置后重启所有节点
path.repo: ["/nfs01/my_backup_es6", “/nfs01/my_backup_es7”] - 创建仓库
PUT _snapshot/my_backup
"type": "fs",
"settings":
"location": "/nfs01/my_backup_es6"
"acknowledged" : true
GET _snapshot/my_backup
"my_backup" :
"type" : "fs",
"settings" :
"location" : "/nfs01/my_backup_es6"
注意:需要先设置path.repo参数,否则执行的时候会出现如下错误:
“reason”: “[my_backup] location [/nfs01/my_backup_es6] doesn’t match any of the locations specified by path.repo because this setting is empty”
- 创建快照
创建索引,并向其写入3条数据,此处依次_doc/1,2,3, 其对应的value为1,2,3,
PUT /%3Csnap001-%7Bnow%2Fd%7D-000001%3E
"aliases":
"snap001_write":
PUT snap001-2020.08.09-000001/_doc/1
"name":"index1",
"value":1
创建快照:
PUT _snapshot/my_backup/snap001_1?wait_for_completion=true
"indices": "snap001-*",
"ignore_unavailable": true,
"include_global_state": true
若设置"indices": "*", 则快照所有索引,输出结果如下:
"snapshot" :
"snapshot" : "snap001_1",
"uuid" : "uFBXg1p8QYiruL5QYOue_g",
"version_id" : 6080899,
"version" : "6.8.8",
"indices" : [
"snap001-2020.08.09-000001"
],
"include_global_state" : true,
"state" : "SUCCESS",
"start_time" : "2020-08-09T06:17:35.039Z",
"start_time_in_millis" : 1596953855039,
"end_time" : "2020-08-09T06:17:36.112Z",
"end_time_in_millis" : 1596953856112,
"duration_in_millis" : 1073,
"failures" : [ ],
"shards" :
"total" : 2,
"failed" : 0,
"successful" : 2
快照成功后,共享目录生成如下内容:
$ ls
- 从快照恢复
这里直接先删除索引,然后再从快照恢复
delete snap001-2020.08.09-000001
POST _snapshot/my_backup/snap001_1/_restore
"indices": "snap001-*"
"accepted" : true
2.2 hdfs 作为存储仓库
- 安装hdfs插件
下载对应版本的插件安装包,通过bin/elasticsearch-plugin install plugin-name的方式安装
wget https://artifacts.elastic.co/downloads/elasticsearch-plugins/repository-hdfs/repository-hdfs-6.8.8.zip
soft/elk6.8.8/elasticsearch-6.8.8/bin/elasticsearch-plugin install file:///home/yourpath/repository-hdfs-6.8.8.zip
for descriptions of what these permissions allow and the associated risks.
Continue with installation? [y/N]y
->
重启后,通过GET _cat/plugins 确认已经安装好对应的插件
- 注册仓库并创建hdfs目录
PUT _snapshot/my_hdfs_repository
"type": "hdfs",
"settings":
"uri": "hdfs://10.120.75.102:9000/",
"path": "elasticsearch/repositories/my_hdfs_repository",
"conf.dfs.client.read.shortcircuit": "true"
"acknowledged" : true
创建hdfs目录,并设置权限为777
hadoop fs -mkdir -p /elasticsearch/repositories/my_hdfs_repository
hadoop fs -chmod 777 /elasticsearch/repositories/my_hdfs_repository
创建后,通过GET _snapshot/_all 查看当前仓库:
- 执行快照
rollover 第二个index,并向其中写入数据
POST snap001_write/_rollover
文档id和value相同,分别为5,6,7
PUT snap001_write/_doc/5
"name":"index2",
"value":5
执行快照:
PUT _snapshot/my_hdfs_repository/snap001_1?wait_for_completion=true
"indices": "snap001-*",
"ignore_unavailable": true,
"include_global_state": true
"snapshot" :
"snapshot" : "snap001_1",
"uuid" : "kVtq1ZLZSq-BH3erBcmb2w",
"version_id" : 6080899,
"version" : "6.8.8",
"indices" : [
"snap001-2020.08.09-000001",
"snap001-2020.08.09-000002"
],
"include_global_state" : true,
"state" : "SUCCESS",
"start_time" : "2020-08-10T07:29:54.217Z",
"start_time_in_millis" : 1597044594217,
"end_time" : "2020-08-10T07:29:57.829Z",
"end_time_in_millis" : 1597044597829,
"duration_in_millis" : 3612,
"failures" : [ ],
"shards" :
"total" : 4,
"failed" : 0,
"successful" : 4
备份成功后,可以通过 GET _snapshot/my_hdfs_repository/snap001_1/_status 查看备份信息信息,
- 恢复索引
先删除索引:
DELETE snap001-2020.08.09-000002
再还原索引:
POST _snapshot/my_hdfs_repository/snap001_1/_restore
"indices": "snap001-2020.08.09-000002"
"accepted" : true
3 使用技巧
- 创建hdfs仓库错误
创建hdfs仓库报错,错误内容如下:
“reason”: “The short-circuit local reads feature is enabled but dfs.domain.socket.path is not set.”
出现此处错误原因:hdfs没有配置 dfs.client.read.shortcircuit参数
解决方法:
1)在hdfs的xml中配置如下参数
<property>
<name>dfs.client.read.shortcircuit</name>
<value>true</value>
</property>
4 说明
es 官文 snapshot-restoreelasticsearch源码解析与优化实战-Snapshot模块分析
elk笔记10--filebeat使用
elk笔记10--filebeat使用1filebeat介绍2filebeat使用案例2.1软件安装2.2采集数据到kafka2.3采集数据到es3使用技巧3.1filebeat将日志按照类别发送到不同kafkatopic3.2filebeat将日... 查看详情
elk笔记9--跨集群搜索
elk笔记9--跨集群搜索1.跨集群搜索简介2.跨集群搜索配置3跨集群使用案例4说明1.跨集群搜索简介跨集群允许我们在一个或者多个远程集群上执行搜索任务,通常我们可以用跨集群搜索来过滤或... 查看详情
elk学习笔记之kibana入门使用
Kibana入门使用: 第一次导入索引:修改展示时间,不然查不到数据:点Discover,查阅数据:如果要添加新的index:点击Visualize,创建chart:点击Dashboard,布局:DashBoard完工啦!!!嘿嘿嘿 查看详情
elk学习笔记之elasticsearch环境搭建
ELK概述:ElasticSearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等Logstash是一个完全开源的工具,它可以对你的日志进行收集、... 查看详情
11.elk部署安装
...行依赖于Java运行环境,Logstash1.5以上版本不低于java7推荐使用最新版本的Java。由于我们只是运行Java程序,而不是开发,下载JRE即可。下载linux-64的版本。如果使用Linux下载执行如下命令下载即可。1#wget http://download.oracle.com/otn-... 查看详情
elk笔记8--index
elk笔记8--index1.index创建的几种方式1.1直接创建index1.2按照当前日期创建索引1.3创建带有rollover功能的索引2.索引的常见设置2.1基本设置2.2index为unassigned的常见处理方式... 查看详情
elk学习笔记安装elasticsearchkibanalogstash和x-pack
最近在学习ELK的时候踩了不少的坑,特此写个笔记记录下学习过程。日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常... 查看详情
elk学习笔记之elasticsearchhead插件安装
elasticsearchhead插件安装: 准备工作:安装nodejs和npm https://nodejs.org/en/download/ node-v6.11.2-linux-x64.tar.xz由于是xz压缩文件,所以要先安装yum-yinstallxz$xz-d***.tar.xz$tar-xvf ***.tar配置环境变量#setn 查看详情
elk数据备份,迁移及恢复
...一半数据。所以数据的备份恢复就相当重要。elasticsearch快照和恢复模块可以创建单个索引或者整个集群的快照到远程的仓库实现数据的备份及恢复。下面以备份恢复.kibana索引为例数据备份及恢复1、修改elasticsearch配置文件vimel 查看详情
elk学习笔记之logstash之inputs配置
Logstash之inputs配置: inputplugindoc:https://www.elastic.co/guide/en/logstash/current/index.html插件很多,选两个常用的使用下。1.stdininputplugin参数:建立stdin-sample.conf:input{ stdin{}}output{ stdout{}}执行:. 查看详情
elk学习笔记---安装elk5.x版
ELK日志平台是一个完整的日志分析系统,有三个开源工具构建组成,分别是:Elasticsearch、Logstash和Kibana。Elasticsearch用于数据分析和深度搜索;Logstash作用是从其他服务器上传输和转发日志,对其集中管理,进行分析;Kibana则是提... 查看详情
elk学习笔记之elasticsearch启动时warning解决办法
elasticsearch启动时Warning解决办法: 转载:http://www.dajiangtai.com/community/18136.do?origin=csdn-geek&dt=1214问题一: [2016-11-06T16:27:21,712][WARN][o.e.b.JNANatives]unabletoinstallsyscallfilter:&n 查看详情
elk的备份与恢复
elasticsearch提供了快照功能:1、在elsticsearch的配置文件中定义一个path.repo路径配置path.repo:["/elk/my_backup"]重新启动elasticsearch服务创建备份的文件夹并赋予权限 mkdir-p/elk/my_backup chmod755/elk 查看详情
elk笔记22.2--通过api快速创建索引
elk笔记22.2--通过api快速创建索引1简介2功能实现2.1源码2.2测试3注意事项说明1简介本文基于elk笔记22–通过api快速创建索引继续通过api快速创建索引。本节将追加一个... 查看详情
elk学习笔记之logstash基本语法
Logstash基本语法: 处理输入的input处理过滤的filter处理输出的output 区域数据类型条件判断字段引用 区域:Logstash中,是用{}来定义区域区域内,可以定义插件一个区域内可以定义多个插件 数据类型:条件判断:字... 查看详情
elk笔记4--grok正则解析
elk笔记4--grok正则解析1grok切分方法2grok切分案例3说明1grok切分方法grok切分规则可按照如下思路进行。1)找准切分标志,以切分标志作为中心向左或者向右逐个字段抽出,对于正则中的通配符需要进行... 查看详情
elk笔记16--聚合分析
elk笔记16--聚合分析1聚合概念2聚合类型2.1Bucketing2.1.1TermsAggregation2.2Metric2.2.1AvgAggregation2.3Pipeline2.3.1AvgBucketAggregation2.3.2MaxBucketAggregation2.3.3MinBucke... 查看详情
elk学习笔记之elasticsearchbulk操作:
Bulk操作: Bulk操作用于批量插入数据:请求体格式:编辑一个文件:(插入2个新的文档)curl-XPOST‘http://192.168.1.151:9200/library/books/_bulk‘--data-binary@requests用mget查询文档:已经成功插入。 查看详情