三人行必有我师
问题

问题

logstash输出到elasticsearch出现问题

Logstashsec_master 回复了问题 • 4 人关注 • 3 个回复 • 20271 次浏览 • 2019-12-04 11:02 • 来自相关话题

filebeat设置了多行合并,kibana出现日志缺失

Elasticsearchxiaoaps 回复了问题 • 5 人关注 • 8 个回复 • 4078 次浏览 • 2019-01-29 10:25 • 来自相关话题

由于是我账户的问题给大家带来这么多垃圾信息,实在抱歉了。

回复

默认分类zqc0512 发起了问题 • 1 人关注 • 0 个回复 • 2276 次浏览 • 2018-11-05 09:53 • 来自相关话题

邮箱无法验证

默认分类aslan 回复了问题 • 6 人关注 • 5 个回复 • 2215 次浏览 • 2018-09-27 12:47 • 来自相关话题

filebeat6.0怎么获取包含"^M"这个特殊字符日志?

回复

Beatswpf 发起了问题 • 1 人关注 • 0 个回复 • 2780 次浏览 • 2017-12-30 23:10 • 来自相关话题

128G内存服务器怎么给elasticsearch6.0分配32g内存?

Elasticsearchstrglee 回复了问题 • 3 人关注 • 1 个回复 • 4588 次浏览 • 2017-12-28 17:31 • 来自相关话题

Elasticsearch关于unassigned shards修复

Elasticsearcharterforyou 发表了文章 • 2 个评论 • 5825 次浏览 • 2017-12-23 12:23 • 来自相关话题

ES 版本: 5.2.1

步骤:

  • curl localhost:9200/_cat/shards > shards
  • 跑脚本:nohup python recovery.py &

    注意:跑脚本过程会返回大量json,时间较长,请注意放入后台

  • 查看修复shard进度:curl 127.0.0.1:9200/_cat/recovery/你修复shard对应的索引
  • 结果: 找到索引对应的shard,看到existing_store done说明已经从本地修复
     index 19 268ms existing_store done n/a        n/a                    10.0.58.67 node_name
#!/usr/bin/env python
#name: recovery.py

import requests
import json
host = "http://localhost:9200/_cluster/allocation/explain"
s= requests.Session()
def reroute_shard(index,shard,node):
    data = {
    "commands" : [
        {
          "allocate_stale_primary" : {
              "index" : index, "shard" : shard, "node" : node, "accept_data_loss": True
          }
        }
    ]
   }
    print data
    url = "http://localhost:9200/_cluster/reroute"
    res = s.post(url,json=data)
    print res

def get_node(line):
    if "UNASSIGNED" in line:
        line = line.split()
        index = line[0]
        shard = line[1]
        if line[2] != "p":
            return
        body = {
           "index": index,
           "shard": shard,
           "primary": True
               }
        res = s.get(host, json = body)
        for store in res.json().get("node_allocation_decisions"):
            if store.get("store").get("allocation_id"):
               node_name = store.get("node_name")
               reroute_shard(index,shard,node_name)
    else:
        return

with open("shards", 'rb') as f:
    map(get_node,f)

相关文档:

ES支持SPL(搜索处理语言)吗?

回复

Elasticsearch匿名用户 发起了问题 • 2 人关注 • 0 个回复 • 8242 次浏览 • 2017-08-10 19:23 • 来自相关话题

es搜索特殊字符《

Elasticsearchchachalala 回复了问题 • 4 人关注 • 2 个回复 • 13267 次浏览 • 2017-03-10 14:40 • 来自相关话题

elasticsearch严重问题

Elasticsearchwangjueying 回复了问题 • 2 人关注 • 1 个回复 • 4473 次浏览 • 2017-02-03 15:06 • 来自相关话题

logstash输出到elasticsearch出现问题

回复

Logstashsec_master 回复了问题 • 4 人关注 • 3 个回复 • 20271 次浏览 • 2019-12-04 11:02 • 来自相关话题

filebeat设置了多行合并,kibana出现日志缺失

回复

Elasticsearchxiaoaps 回复了问题 • 5 人关注 • 8 个回复 • 4078 次浏览 • 2019-01-29 10:25 • 来自相关话题

由于是我账户的问题给大家带来这么多垃圾信息,实在抱歉了。

回复

默认分类zqc0512 发起了问题 • 1 人关注 • 0 个回复 • 2276 次浏览 • 2018-11-05 09:53 • 来自相关话题

邮箱无法验证

回复

默认分类aslan 回复了问题 • 6 人关注 • 5 个回复 • 2215 次浏览 • 2018-09-27 12:47 • 来自相关话题

filebeat6.0怎么获取包含"^M"这个特殊字符日志?

回复

Beatswpf 发起了问题 • 1 人关注 • 0 个回复 • 2780 次浏览 • 2017-12-30 23:10 • 来自相关话题

128G内存服务器怎么给elasticsearch6.0分配32g内存?

回复

Elasticsearchstrglee 回复了问题 • 3 人关注 • 1 个回复 • 4588 次浏览 • 2017-12-28 17:31 • 来自相关话题

ES支持SPL(搜索处理语言)吗?

回复

Elasticsearch匿名用户 发起了问题 • 2 人关注 • 0 个回复 • 8242 次浏览 • 2017-08-10 19:23 • 来自相关话题

es搜索特殊字符《

回复

Elasticsearchchachalala 回复了问题 • 4 人关注 • 2 个回复 • 13267 次浏览 • 2017-03-10 14:40 • 来自相关话题

elasticsearch严重问题

回复

Elasticsearchwangjueying 回复了问题 • 2 人关注 • 1 个回复 • 4473 次浏览 • 2017-02-03 15:06 • 来自相关话题

Elasticsearch关于unassigned shards修复

Elasticsearcharterforyou 发表了文章 • 2 个评论 • 5825 次浏览 • 2017-12-23 12:23 • 来自相关话题

ES 版本: 5.2.1

步骤:

  • curl localhost:9200/_cat/shards > shards
  • 跑脚本:nohup python recovery.py &

    注意:跑脚本过程会返回大量json,时间较长,请注意放入后台

  • 查看修复shard进度:curl 127.0.0.1:9200/_cat/recovery/你修复shard对应的索引
  • 结果: 找到索引对应的shard,看到existing_store done说明已经从本地修复
     index 19 268ms existing_store done n/a        n/a                    10.0.58.67 node_name
#!/usr/bin/env python
#name: recovery.py

import requests
import json
host = "http://localhost:9200/_cluster/allocation/explain"
s= requests.Session()
def reroute_shard(index,shard,node):
    data = {
    "commands" : [
        {
          "allocate_stale_primary" : {
              "index" : index, "shard" : shard, "node" : node, "accept_data_loss": True
          }
        }
    ]
   }
    print data
    url = "http://localhost:9200/_cluster/reroute"
    res = s.post(url,json=data)
    print res

def get_node(line):
    if "UNASSIGNED" in line:
        line = line.split()
        index = line[0]
        shard = line[1]
        if line[2] != "p":
            return
        body = {
           "index": index,
           "shard": shard,
           "primary": True
               }
        res = s.get(host, json = body)
        for store in res.json().get("node_allocation_decisions"):
            if store.get("store").get("allocation_id"):
               node_name = store.get("node_name")
               reroute_shard(index,shard,node_name)
    else:
        return

with open("shards", 'rb') as f:
    map(get_node,f)

相关文档: