标签: elastic-stack

Docker - 无法将 Docker Daemon 连接到 rm 容器

使用 ELK 和 docker,我需要重新启动每个服务。

docker ps告诉我我没有任何容器。

docker run -it --rm [...] --name es elasticsearch->Error response from daemon. The name "es" is already use by container [...]

所以我尝试删除所有容器:

docker ps -a -q | xargs docker rm->Cannot connect to the Docker daemon. Is the docker daemon running on this host?

容器还没有起来,但还在这里。

当然,我可以简单地更改容器的名称,但这是不对的。这意味着我正在运行容器。即使我重新启动服务器。

任何想法 ?

docker elastic-stack

2
推荐指数
1
解决办法
2554
查看次数

ElasticSearch 在哪里/如何存储从 Logstash 收到的日志?

免责声明:我对 ELK Stack非常陌生,所以这个问题可能非常基本。

我现在正在设置 ELK 堆栈。我有以下关于ElasticSearch 的基本问题。

  1. Elasticsearch遵循的存储模型是什么?

例如,Oracle 使用关系模型,Alfresco 使用“文档模型”,Apache Jackrabbit 使用“层次模型”

2.elasticsearch中存储的日志数据是持久的/永久的吗?或者ElasticSearch在一段时间后删除日志数据?

3.我们将如何管理/备份这些数据?

4.Elastic Search 中的日志/数据文件是人类可读的

任何帮助/文档路径将不胜感激。

storage elasticsearch elastic-stack

2
推荐指数
1
解决办法
2188
查看次数

我们如何验证运行 ElasticSearch 的堆大小

我正在运行 ElasticSearch 版本 6.2.3,并且我将文件中的堆大小增加到 4GB config\jvm.options。然后重新启动我的 ES,我如何确保我的 ES 正在使用修改后的堆大小运行。有没有命令可以验证ES的堆大小。

我正在 Windows 机器上运行我的 ES。

请找到我的配置详细信息。

## JVM configuration

################################################################
## IMPORTANT: JVM heap size
################################################################
##
## You should always set the min and max JVM heap
## size to the same value. For example, to set
## the heap to 4 GB, set:
##
## -Xms2g
## -Xmx2g
##
## See https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
## for more information
##
################################################################

# Xms represents the initial size of total heap space
# …
Run Code Online (Sandbox Code Playgroud)

java elasticsearch elastic-stack

2
推荐指数
1
解决办法
2324
查看次数

Logstash 不读取文件输入

我正在运行ELK 堆栈的实现,它非常简单且易于配置。

我可以使用 netcat 将 TCP 输入推送到堆栈,如下所示:

nc localhost 5000 < /Users/me/path/to/logs/appOne.log
nc localhost 5000 < /Users/me/path/to/logs/appOneStackTrace.log
nc localhost 5000 < /Users/me/path/to/logs/appTwo.log
nc localhost 5000 < /Users/me/path/to/logs/appTwoStackTrace.log
Run Code Online (Sandbox Code Playgroud)

但我无法让 Logstash 读取我在配置中指定的文件路径:

input {
        tcp {
        port => 5000
    }

        file {
                path => [
                    "/Users/me/path/to/logs/appOne.log",
                    "/Users/me/path/to/logs/appOneStackTrace.log",
                    "/Users/me/path/to/logs/appTwo.log",
                    "/Users/me/path/to/logs/appTwoStackTrace.log"
                ]
                type => "log"
                start_position => "beginning"
        }
}

output {
    elasticsearch {
        hosts => "elasticsearch:9200"
    }
}

Run Code Online (Sandbox Code Playgroud)

以下是有关 Logstash 输入的堆栈的启动输出:

logstash_1       | [2019-01-28T17:44:33,206][INFO ][logstash.inputs.tcp      ] Starting tcp input listener {:address=>"0.0.0.0:5000", …
Run Code Online (Sandbox Code Playgroud)

logstash docker-compose logstash-configuration elastic-stack

2
推荐指数
1
解决办法
3475
查看次数

斜杠在 Elasticsearch 中使用正则表达式匹配查询时不起作用

Elasticsearch 官方文档中有这样写Any reserved character can be escaped with a backslash "\*" including a literal backslash character: "\\"

你能解释一下为什么这样查询吗

{
                    "query": {
                        "bool": {
                            "must": [
                                {
                                    "regexp": {
                                        "path": ".*test\/test.txt.*"
                                    }
                                },
                                {
                                    "match": {
                                        "user_id": 1
                                    }
                                }
                            ]
                        }
                    }
                }
Run Code Online (Sandbox Code Playgroud)

找不到这样的索引

{
                "_index": "pictures",
                "_type": "picture",
                "_id": "wiskQ2kBi923Omj4U",
                "_score": 1,
                "_source": {
                    "user_id": 1,
                    "tag": [],
                    "text": "some text",
                    "path": "test/test.txt"
                }
            }
Run Code Online (Sandbox Code Playgroud)

regex indexing elasticsearch elasticsearch-query elastic-stack

2
推荐指数
1
解决办法
2687
查看次数

Elasticsearch - must(QueryBuilders.rangeQuery) 和 mustNot(QueryBuilders.existsQuery) 一次不工作

我正在使用高级 java rest 客户端(6.5),我需要根据某个日期范围过滤数据-让,我在同一索引中有这 4 个文档(添加了邮递员图像),而在 2 个文档中我没有 publish_date和 publish_end_date 字段,所以当我放置一个范围时,我需要介于这些范围和没有这些范围字段的文档之间的文档。

JSON 值

我从这个问题中得到了一些帮助 - 在 startDate 和 endDate 之间的 ElasticSearch (2.2) Java 过滤器如果存在,因为不推荐使用QueryBuilders.missingQuery所以我使用mustNot(QueryBuilders.existsQuery)通过从这里获取参考但它不起作用,我我没有得到结果。

当我只使用如下所示的范围查询时,它的工作正常 -

BoolQueryBuilder startDateQuery = new BoolQueryBuilder()
           .must(QueryBuilders.rangeQuery("publish_date").lte("now"));
BoolQueryBuilder endDateQuery = new BoolQueryBuilder()
          .must(QueryBuilders.rangeQuery("publish_end_date").gte("now"));
Run Code Online (Sandbox Code Playgroud)

结果 1

当我只使用如下所示的 mustNot 查询时,我得到了想要的结果-

BoolQueryBuilder startDateQuery = new BoolQueryBuilder()
           .mustNot(QueryBuilders.existsQuery("publish_date"));
BoolQueryBuilder endDateQuery = new BoolQueryBuilder()
          .mustNot(QueryBuilders.existsQuery("publish_end_date"));
Run Code Online (Sandbox Code Playgroud)

结果 2

但问题是当我结合下面的两个查询时,我没有得到任何结果(得到一个空数组)-

BoolQueryBuilder startDateQuery = new BoolQueryBuilder()
           .must(QueryBuilders.rangeQuery("publish_date").lte("now"))
           .mustNot(QueryBuilders.existsQuery("publish_date"));
BoolQueryBuilder endDateQuery = new BoolQueryBuilder()
          .must(QueryBuilders.rangeQuery("publish_end_date").gte("now"))
          .mustNot(QueryBuilders.existsQuery("publish_end_date"));
Run Code Online (Sandbox Code Playgroud)

结果 3

我想要结果 3 中的所有 …

elasticsearch spring-boot elastic-stack elasticsearch-6

2
推荐指数
1
解决办法
3155
查看次数

Elasticsearch(6.5) 高级 Java Rest 客户端按名称删除索引不起作用

我可以通过传递索引名称、类型和 id 来删除文档,如下所示-

DeleteRequest deleteRequest = new DeleteRequest(data.getIndexName(),data.getType(),data.getUniqueId());

    DeleteResponse deleteResponse = client.delete(deleteRequest);
Run Code Online (Sandbox Code Playgroud)

但是当我尝试通过仅给出索引名称来删除索引时,如下所示-(根据本文档

DeleteRequest deleteRequest = new DeleteRequest(allData.getIndexName());

    DeleteResponse deleteResponse = client.delete(deleteRequest);
Run Code Online (Sandbox Code Playgroud)

得到-

org.elasticsearch.action.ActionRequestValidationException: Validation Failed: 1: type is missing;2: id is missing;
Run Code Online (Sandbox Code Playgroud)

我尝试过类似的另一种方法(参考

DeleteIndexRequest request = new DeleteIndexRequest(allData.getIndexName());
    AcknowledgedResponse deleteIndexResponse = client.indices().delete(request, RequestOptions.DEFAULT);
Run Code Online (Sandbox Code Playgroud)

得到:

java.lang.NoSuchMethodError: 
at org.elasticsearch.client.IndicesClient.delete(IndicesClient.java:93) ~[elasticsearch-rest-high-level-client-6.5.4.jar:6.4.3]
Run Code Online (Sandbox Code Playgroud)

我正在使用这个依赖项:

<dependency>
       <groupId>org.elasticsearch.client</groupId>
       <artifactId>elasticsearch-rest-high-level-client</artifactId>
       <version>6.5.4</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

mvn依赖:树

[INFO] \- org.elasticsearch.client:elasticsearch-rest-high-level- 
client:jar:6.5.4:compile
[INFO]    +- org.elasticsearch:elasticsearch:jar:6.4.3:compile
[INFO]    |  +- org.elasticsearch:elasticsearch-core:jar:6.4.3:compile
[INFO]    |  +- org.elasticsearch:elasticsearch-secure- 
sm:jar:6.4.3:compile
[INFO]    |  +- org.elasticsearch:elasticsearch-x- …
Run Code Online (Sandbox Code Playgroud)

java elasticsearch spring-boot elastic-stack

2
推荐指数
1
解决办法
3197
查看次数

使用 Filebeat 和 Logstash 推送日志文件到 Elasticsearch 的区别

我正在尝试使用 ELK 来可视化我的日志文件。我尝试了不同的设置:

  1. Logstash 文件输入插件https://www.elastic.co/guide/en/logstash/current/plugins-inputs-file.html
  2. Logstash Beats 输入插件https://www.elastic.co/guide/en/logstash/current/plugins-inputs-beats.html带有 Filebeat Logstash 输出https://www.elastic.co/guide/en/beats/filebeat /current/logstash-output.html
  3. Filebeat Elasticsearch 输出https://www.elastic.co/guide/en/beats/filebeat/current/elasticsearch-output.html

有人可以列出他们的差异以及何时使用哪种设置?如果不是这里,请把我指向正确的地方,比如超级用户或 DevOp 或服务器故障。

elasticsearch logstash elastic-stack filebeat elk

2
推荐指数
1
解决办法
3358
查看次数

ElasticSearch 按文档字段分组并计算出现次数

我的 ElasticSearch 6.5.2 索引看起来像:

      {
    "_index" : "searches",
    "_type" : "searches",
    "_id" : "cCYuHW4BvwH6Y3jL87ul",
    "_score" : 1.0,
    "_source" : {
      "querySearched" : "telecom",
    }
  },
  {
    "_index" : "searches",
    "_type" : "searches",
    "_id" : "cSYuHW4BvwH6Y3jL_Lvt",
    "_score" : 1.0,
    "_source" : {
      "querySearched" : "telecom",
    }
  },
  {
    "_index" : "searches",
    "_type" : "searches",
    "_id" : "eCb6O24BvwH6Y3jLP7tM",
    "_score" : 1.0,
    "_source" : {
      "querySearched" : "industry",
    }
Run Code Online (Sandbox Code Playgroud)

我想要一个返回这个结果的查询:

"result": 
{
"querySearched" : "telecom",
"number" : 2
},
{
"querySearched" : "industry", …
Run Code Online (Sandbox Code Playgroud)

elasticsearch elastica elastic-stack elasticsearch-6

2
推荐指数
1
解决办法
7270
查看次数

Elasticsearch 未分配的分片 CircuitBreakingException[[parent] 数据太大

我收到警报,指出 elasticsearch 有 2 个未分配的分片。我进行了以下 api 调用以收集更多详细信息。

    curl -s http://localhost:9200/_cluster/allocation/explain | python -m json.tool
Run Code Online (Sandbox Code Playgroud)

下面的输出

    "allocate_explanation": "cannot allocate because allocation is not permitted to any of the nodes",
    "can_allocate": "no",
    "current_state": "unassigned",
    "index": "docs_0_1603929645264",
    "node_allocation_decisions": [
        {
            "deciders": [
                {
                    "decider": "max_retry",
                    "decision": "NO",
                    "explanation": "shard has exceeded the maximum number of retries [5] on failed allocation attempts - manually call [/_cluster/reroute?retry_failed=true] to retry, [unassigned_info[[reason=ALLOCATION_FAILED], at[2020-10-30T06:10:16.305Z], failed_attempts[5], delayed=false, details[failed shard on node [o_9jyrmOSca9T12J4bY0Nw]: failed recovery, failure RecoveryFailedException[[docs_0_1603929645264][0]: Recovery failed from …
Run Code Online (Sandbox Code Playgroud)

circuit-breaker elasticsearch kubernetes elastic-stack elk

2
推荐指数
1
解决办法
876
查看次数