标签: elastic-stack

如何将日志收集到 Elasticsearch

我在不同的服务器(许多机器)中有网络应用程序的日志。如何在安装了 Elastic search 和 Kibana 的系统中收集这些日志。当我搜索时,我只找到了显示设置的教程,其中logslogstashbeats和都在一起。elasticsearchkibana

elasticsearch elastic-stack

5
推荐指数
1
解决办法
1万
查看次数

如何将日志数据从 Azure Application Insights 导出到 Elastic Stack?

有没有办法将日志数据从 Application Insights 导出到 Elasticsearch?

Application Insights 正在监视我的弹性集群。

我希望能够将这些日志导出到 Elasticsearch。我在想,如果我随后将 sql-db 与 Logstash 连接起来,那么使用流分析设置连续导出到 sql 可能会起作用。

但这似乎不必要地复杂。

任何想法和想法都值得赞赏。提前。

编辑以澄清:我想将 Application Insights 数据导出到单独的 Azure/弹性集群。

elasticsearch logstash azure-monitoring azure-application-insights elastic-stack

5
推荐指数
0
解决办法
786
查看次数

Elasticsearch 搜索 API 未返回所有结果

我有三个索引,所有三个索引共享一个特定的键值对。当我使用请求正文使用api“ http://localhost:9200/_search ”进行全面搜索时

{"query":{
    "query_string":
    {
        "query":"city*"

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

它仅返回两个索引的结果。我尝试通过更改 url 来使用相同的请求正文,以仅在丢失的索引“ http://localhost:9200/index_name/_search ”中进行搜索,并且该方法有效。我在这里错过了什么吗?

插入所有三个索引的代码遵循相同的过程,我使用 elasticsearch-py 来提取数据。

我正在使用 GET HTTP 方法,还尝试了 POST HTTP 方法。两者返回相同的结果。Elasticsearch 版本是 7.6.0。

特定索引搜索的结果如下所示

{
    "took": 1,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 1,
            "relation": "eq"
        },
        "max_score": 1.0,
        "hits": [
            {
                "_index": "index_name",
                "_type": "meta",
                "_id": "LMRqDnIBh5wU6Ax_YsOD",
                "_score": 1.0,
                "_source": {
                    "table_schema": "test_table",
                    "table_name": "citymaster_old" 
                }
            }
        ]
    }
}

Run Code Online (Sandbox Code Playgroud)

python elasticsearch elastic-stack

5
推荐指数
1
解决办法
7762
查看次数

用于弹性搜索的开放发行版“源别名不指向写入索引”

我正在使用 open distro for elasticsearch v7.7.0,我想自动管理索引生命周期,因此当创建新索引时,它会自动附加到 ISM 策略。但我收到此错误“源别名未指向写入索引”。

这是我的配置:

1-Logstash 输出

output {
elasticsearch {
hosts => ["http://myelasticsearch"]
user => "someuser"
password => "somepassword-"
#index => "demo"
index => "demo-%{+YYYY.MM.dd.HH-mm}"
       ssl => false
       ssl_certificate_verification => false
       ilm_enabled => false
}
stdout { codec => "dots"}
}
Run Code Online (Sandbox Code Playgroud)

2- ISM 政策

    {
    "policy": {
        "policy_id": "hot warm delete workflow",
        "description": "hot warm delete workflow",
        "last_updated_time": 1595417446751,
        "schema_version": 1,
        "error_notification": null,
        "default_state": "hot",
        "states": [
            {
                "name": "hot",
                "actions": [
                    {
                        "rollover": { …
Run Code Online (Sandbox Code Playgroud)

elasticsearch logstash kibana elastic-stack

5
推荐指数
1
解决办法
2268
查看次数

logstash grok过滤器,用于具有任意属性 - 值对的日志

(这与我的其他问题logstash grok过滤器的自定义日志有关)

我有一个日志文件,其行看起来像:

14:46:16.603 [http-nio-8080-exec-4] INFO  METERING - msg=93e6dd5e-c009-46b3-b9eb-f753ee3b889a CREATE_JOB job=a820018e-7ad7-481a-97b0-bd705c3280ad data=71b1652e-16c8-4b33-9a57-f5fcb3d5de92
14:46:17.378 [http-nio-8080-exec-3] INFO  METERING - msg=c1ddb068-e6a2-450a-9f8b-7cbc1dbc222a SET_STATUS job=a820018e-7ad7-481a-97b0-bd705c3280ad status=ACTIVE final=false
Run Code Online (Sandbox Code Playgroud)

我构建了一个与第一行匹配的模式:

%{TIME:timestamp} %{NOTSPACE:http} %{WORD:loglevel}%{SPACE}%{WORD:logtype} - msg=%{NOTSPACE:msg}%{SPACE}%{WORD:action}%{SPACE}job=%{NOTSPACE:job}%{SPACE}data=%{NOTSPACE:data}
Run Code Online (Sandbox Code Playgroud)

但很明显的是只适用于具有线data=在端部,相对于status=final=在第二行,或其他线路的其他属性-值对结束了吗?如何设置一个模式,表示在某一点之后会有一foo=bar对我想识别并在输出中作为属性/值对输出的任意对?

logstash logstash-grok elastic-stack

4
推荐指数
1
解决办法
4254
查看次数

如何在自定义grok模式中引用正则表达式组?

我想在日志行中添加特定URI参数的字段

这是示例日志行:

2017-03-12 21:34:36 W3SVC1 webserver 1.1.1.1 GET /webpage.html param1=11111&param2=22222&param3=&param4=4444444 80 - 2.2.2.2 HTTP/1.1 Java/1.8.0_121 - - balh.com 200 0 0 311 244 247 - -
Run Code Online (Sandbox Code Playgroud)

我想为param1,param2,param3和param4添加字段。

我正在使用此grok过滤器:

  grok {
    match => [ "message", "(?<param1>param1=(.*?)&)"]
  }
Run Code Online (Sandbox Code Playgroud)

因此,此正则表达式使用捕获组来获取“ param1 =”和“&”之间的文本。但是grok忽略了捕获组并得到“ param1 = 11111&”,我只想捕获“ 111111”

我该怎么说使用捕获组1或告诉grok使用我的正则表达式捕获组?

编辑这几乎可以工作:

  grok {
    match => [ "message", "(?<param1>param1=(?<param1>.*?)&)"]
  }
Run Code Online (Sandbox Code Playgroud)

所以我我在这里使用的是两个命名组,但名称相同。问题是每个组的“ param1”字段中都有两个条目。一个用于“ param1 = 11111&”,另一个用于“ 11111”。我如何才能得到第二组?

regex logstash logstash-grok elastic-stack

4
推荐指数
1
解决办法
4167
查看次数

日志级别作为Docker GELF日志记录驱动程序的字段

我想从docker容器中获取stdout日志并将它们发送到ELK堆栈.到目前为止,我知道Docker中有一个GELF日志记录驱动程序.

不过,我想不通我怎么能分析ERROR,WARNINGDEBUG从消息的消息,并把它们在一个新的领域像log_level在日志消息码头工人将它们发送到ELK之前.

日志消息应该是这样的:

{
  "client": "127.0.0.1",
  "user": "frank",
  "timestamp": "2000-10-10 13:55:36 -0700",
  "method": "GET",
  "uri": "/apache_pb.gif",
  "protocol": "HTTP/1.0",
  "status": 200,
  "size": 2326,
  "message": "[ERROR] Error connecting to MongoDB",
  "_logLevel" : "ERROR"
}
Run Code Online (Sandbox Code Playgroud)

"_logLevel" : "ERROR"在发送给ELK之前添加了哪个docker.

谢谢.

logging logstash docker elastic-stack gelf

4
推荐指数
1
解决办法
1126
查看次数

ELK:设置logstash ELK堆栈的多个http输入

题:

  • 如何设置logstash ELK堆栈的多个http输入

我已经拥有的东西:

input {
  http {
        host => "0.0.0.0"
        port => "5000"
    }
}

output {
  elasticsearch {
      hosts => "elasticsearch:9200"
  }
}
Run Code Online (Sandbox Code Playgroud)

我需要的:

  • 多个http输入,因为我有多个组件 - 类似(但第二个输入不监听请求):
input {
  http {
        host => "0.0.0.0"
        port => "5000"
  }
  http {
      host => "0.0.0.0"
      port => "7070"
  }
}
Run Code Online (Sandbox Code Playgroud)
  • 我必须在Kibona中区分这些组件

elasticsearch logstash kibana logstash-configuration elastic-stack

4
推荐指数
1
解决办法
1467
查看次数

推荐使用docker-compose的ELK的RAM比率

我有一台具有8GB RAM的生产服务器。我希望在服务器上托管elastic,logstash和kibana。使用docker compose

每个容器的Java大小建议的内存大小是多少?我该如何配置。

我的docker-compose样子如下

---
version: '3'
services

  kibana:
    build:
      context: kibana/
    container_name: kibana
    volumes:
      - ./kibana/config/:/usr/share/kibana/config:ro
    networks: ['elk']
    depends_on:
      - elasticsearch
    restart: always

  elasticsearch:
    build:
      context: elasticsearch/
    container_name: elasticsearch
    networks: ['elk']
    volumes:
      - ./elastic-data:/usr/share/elasticsearch/data
      - ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro
    restart: always
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    environment:
      - cluster.name=es-docker
      - node.name=node1
      - bootstrap.memory_lock=true

  logstash:
      build:
        context: logstash/
      container_name: logstash
      volumes:
        - ./logstash/pipeline/logstash.conf:/usr/share/logstash/pipeline/logstash.conf:ro
      networks: ['elk']
      ports:
        - "5044:5044"
      depends_on:
        - elasticsearch
      restart: always

networks: …
Run Code Online (Sandbox Code Playgroud)

production-environment elasticsearch docker-compose elastic-stack

4
推荐指数
1
解决办法
2759
查看次数

应用洞察力与弹性(ELK)

还是我真的不好搜索,或者App Insights和ELK堆栈之间没有详细的比较?

所有监视都将用于简单的Web API,会有大量的端点,但是用户流量不应太高。

所以我的问题是:在ELK和App Insights之间进行选择时,是否有任何一般性的观点/差异,个人从来没有机会设置任何这些观点/差异,但是在设置测试环境之前应该先了解一下,期望什么/寻找。

elasticsearch azure-application-insights elastic-stack

4
推荐指数
1
解决办法
1716
查看次数