1. 首选用官方网站下载es以及kibana安装包
https://www.elastic.co/cn/downloads/past-releases#elasticsearch
https://www.elastic.co/cn/downloads/past-releases#kibana
我这里下载了7.6.2版本,下载后解压
[wasadm@ydt-dmcp-etl02 ~]$ ls -l *7.6.2*gz
-rw-r--r-- 1 wasadm wasadm 296477546 Jan 9 17:01 elasticsearch-7.6.2-linux-x86_64.tar.gz
-rw-r--r-- 1 wasadm wasadm 249555386 Jan 20 11:00 kibana-7.6.2-linux-x86_64.tar.gz
tar -xvf elasticsearch-7.6.2-linux-x86_64.tar.gz
tar -xvf kibana-7.6.2-linux-x86_64.tar.gz
2. 看一下es的快照整体情况,一般情况下,自己导出或者从别处拷贝过来的es快照目录结构大致如下:
[root@ydt-dmcp-etl02 backup]# ll
total 48
-rw-rw-r-- 1 wasadm wasadm 1924 Jan 12 21:49 index-0
-rw-rw-r-- 1 wasadm wasadm 8 Jan 12 21:49 index.latest
drwxrwxr-x 7 wasadm wasadm 156 Jan 12 20:48 indices
-rw-rw-r-- 1 wasadm wasadm 35050 Jan 12 21:49 meta-YhkQS7p5THCWa3etmONzAg.dat
-rw-rw-r-- 1 wasadm wasadm 283 Jan 12 21:49 snap-YhkQS7p5THCWa3etmONzAg.dat
[root@ydt-dmcp-etl02 backup]# pwd
/mnt/disk7/es_back/backup
有indices目录、index文件、.dat文件,注意:在能看到这些文件的目录位置,看一下当前所在的路径
当前情况下 pwd获取路径为: /mnt/disk7/es_back/backup
注册仓库indices目录上一层目录名<backup>作为仓库名即可,仓库对应路径为indices目录所在的绝对路径< /mnt/disk7/es_back/backup>
3. 启动es前 打开es的配置文件
[root@ydt-dmcp-etl02 config]# pwd
/ztsoft/usr/wasadm/elasticsearch-7.6.2/config
[root@ydt-dmcp-etl02 config]# cat elasticsearch.yml |grep -vE "^#|^$"
path.data: /mnt/disk7/esdata
path.repo: ["/mnt/disk7/es_back"]
path.data: /mnt/disk7/esdata # 表示存储es的数据data目录地址,根据实际情况配置即可,这个路径指的是es实时在存储数据用的路径地址
path.repo: ["/mnt/disk7/es_back"] # 表示快照仓库的路径,这个路径指的是当前需要导入快照配置的路径(注意:这个仓库路径是仓库名backup的上一层,也就是仓库所在的路径)
这两个配置没有内在关系
改完配置文件启动es
[wasadm@ydt-dmcp-etl02 ~]$ cd elasticsearch-7.6.2/
[wasadm@ydt-dmcp-etl02 elasticsearch-7.6.2]$ ./bin/elasticsearch -d
[wasadm@ydt-dmcp-etl02 elasticsearch-7.6.2]$ netstat -tnlpu|grep 9200
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp6 0 0 127.0.0.1:9200 :::* LISTEN 88203/java
tcp6 0 0 ::1:9200 :::* LISTEN 88203/java
4. 注册仓库
# 注册仓库【注意】: 下面的内容都是命令行入手指令,不要输入少了
[root@ydt-dmcp-etl02 backup]# curl -H "Content-Type: application/json" -XPUT http://localhost:9200/_snapshot/backup -d '
{
"type": "fs",
"settings": {
"location": "/mnt/disk7/es_back/backup"
}
}
'
# 获取仓库路径信息,验证一下
[root@ydt-dmcp-etl02 backup]# curl -XGET "localhost:9200/_snapshot/backup?pretty"
{
"backup" : {
"type" : "fs",
"settings" : {
"location" : "/mnt/disk7/es_back/backup"
}
}
}
5.获取仓库快照
# 查看仓库中所有快照
[root@ydt-dmcp-etl02 es_back]# curl -XGET "localhost:9200/_snapshot/backup/_all?pretty"
{
"snapshots" : [
{
"snapshot" : "sifa",
"uuid" : "YhkQS7p5THCWa3etmONzAg",
"version_id" : 7060299,
"version" : "7.6.2",
"indices" : [
"court_announcement",
"open_announce",
"dishonest_person",
"court_cpws",
"be_performed"
],
"include_global_state" : true,
"state" : "SUCCESS",
"start_time" : "2021-01-12T12:47:29.026Z",
"start_time_in_millis" : 1610455649026,
"end_time" : "2021-01-12T13:48:24.290Z",
"end_time_in_millis" : 1610459304290,
"duration_in_millis" : 3655264,
"failures" : [ ],
"shards" : {
"total" : 50,
"failed" : 0,
"successful" : 50
}
}
]
}
"snapshot" : "sifa" 代表这个快照别处导出来时,这个目录仓库中有一个名为 sifa的快照
indices中的参数是索引
6. 恢复快照
# 执行仓库中对应快照恢复备份
[root@ydt-dmcp-etl02 es_back]# curl -XPOST http://localhost:9200/_snapshot/backup/sifa/_restore
{"accepted":true}
按照上面一步步下来逻辑都对上,那么恢复备份命令执行 返回{"accepted":true},则意味着已经开始了备份
# 查看恢复快照进度,等所有的进度100%即完成恢复
[root@ydt-dmcp-etl02 backup]# curl -XGET http://localhost:9200/_recovery/
最后完成后,记得浏览一下索引信息
[root@ydt-dmcp-etl02 ~]# curl localhost:9200/_cat/indices?v
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open open_announce MBXcM-ELQ0qYixVkpEua7g 10 0 47620119 3354786 20.8gb 20.8gb
green open court_cpws SXtEQv8NSke3l2AdCgpWHw 10 0 92522437 18703282 266.2gb 266.2gb
red open dishonest_person 2hP3quRmTlOkz_j2Y6jx0g 10 0 16387480 4721698 9.5gb 9.5gb
green open court_announcement IbhnnTx2QZegMMrHCPxnFA 10 0 6251455 1376423 5.6gb 5.6gb
green open .kibana_task_manager_1 2qFnpd6_TBmZbNcXu65PZA 1 0 2 2 20.9kb 20.9kb
green open .apm-agent-configuration SwZwwCUsT16FbfaliNPf_A 1 0 0 0 283b 283b
green open .kibana_1 fXENFBO3TAGjkjWISMp0NA 1 0 11 9772 848.6kb 848.6kb
green open be_performed H0d2HgUyQxe9-pGu11IzeA 10 0 40760556 13450502 18.6gb 18.6gb
7. 使用kibana
查看kibana配置文件信息并启动,server.host 是本机的在用ip,用于本地环境url访问,因为es在本机,所以es直接localhost
[root@ydt-dmcp-etl02 config]# cat kibana.yml |grep -vE "^$|^#"
server.host: "11.14.10.1"
elasticsearch.hosts: ["http://localhost:9200"]
[wasadm@ydt-dmcp-etl02 kibana-7.6.2-linux-x86_64]$ nohup bin/kibana &
【注意】:
# 如果你拿到的快照,之前环境使用过kibana,那么本地kibana第一次使用,应该是注册不进索引的,需要执行如下命令,否则kibana启动不起来,命令相当于清除原有的kibana旧索引
如果需要执行kibana索引重建,则操作完需要把kibana重启
[root@ydt-dmcp-etl02 ~]# curl -X DELETE http://localhost:9200/.kibana*
浏览器输入 http://11.14.10.1:5601/
数据查询地址URL根据自己实际情况的IP地址打开
左侧栏 --> Dev Tools (左边扳手图标)
# 常用查询示例
======================================
# 初始模板语句
GET /court_cpws/_search
{
"query": {
"match_all": {}
}
}
======================================
# 初始模板相当于不带条件查询所有记录的方法 类似select*
GET /court_cpws/_search
{
"query": {
"match_all": {}
}
}
======================================
#带关键字条件查询 PS title这个字段中含有周某1与汤某抚养费纠纷一审民事判决书 (匹配越精准越靠前)
GET /court_cpws/_search
{
"query":{
"match": {
"title": "周某1与汤某抚养费纠纷一审民事判决书"
}
}
}
======================================
#带排序查询 PS 地区为广东省的数据 再按照id正排序和procedure倒序
GET /court_cpws/_search
{
"query":{
"term":{
"area":"广东省"
}
},
"sort":[
{"id":{"order":"asc"}},
{"procedure":{"order":"desc"}}
]
}
======================================
#查询5条记录 类似limit area为广东省的5条记录
GET /court_cpws/_search
{
"from":0,
"size":5,
"query":{
"term":{
"area":"广东省"
}
}
}
======================================
#联合查询 查询causeName含有金融借款合同纠纷且caseType不为民事案件的结果
GET /court_cpws/_search
{
"query": {
"bool": {
"must": {
"match": {
"causeName": "金融借款合同纠纷"
}
},
"must_not": {
"match": {
"caseType": "民事案件"
}
}
}
}
}
#联合查询 查询caseType中为执行案件且procedure为首次执行且area不是上海市的结果
GET /court_cpws/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"caseType": "执行案件"
}
},
{
"match": {
"procedure": "首次执行"
}
}
],
"must_not": {
"match": {
"area": "上海市"
}
}
}
}
}
#联合查询 查询caseType中为执行案件且procedure为首次执行且area不是上海市的结果后再按照id进行正向排序
GET /court_cpws/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"caseType": "执行案件"
}
},
{
"match": {
"procedure": "首次执行"
}
}
],
"must_not": {
"match": {
"area": "上海市"
}
}
}
},
"sort": [
{
"id": {
"order": "asc"
}
}
]
}
======================================