我在不同的服务器(许多机器)中有网络应用程序的日志。如何在安装了 Elastic search 和 Kibana 的系统中收集这些日志。当我搜索时,我只找到了显示设置的教程,其中logs、logstash、beats和都在一起。elasticsearchkibana
有没有办法将日志数据从 Application Insights 导出到 Elasticsearch?
Application Insights 正在监视我的弹性集群。
我希望能够将这些日志导出到 Elasticsearch。我在想,如果我随后将 sql-db 与 Logstash 连接起来,那么使用流分析设置连续导出到 sql 可能会起作用。
但这似乎不必要地复杂。
任何想法和想法都值得赞赏。提前。
编辑以澄清:我想将 Application Insights 数据导出到单独的 Azure/弹性集群。
elasticsearch logstash azure-monitoring azure-application-insights elastic-stack
我有三个索引,所有三个索引共享一个特定的键值对。当我使用请求正文使用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) 我正在使用 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) (这与我的其他问题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对我想识别并在输出中作为属性/值对输出的任意对?
我想在日志行中添加特定URI参数的字段
这是示例日志行:
2017-03-12 21:34:36 W3SVC1 webserver 1.1.1.1 GET /webpage.html param1=11111¶m2=22222¶m3=¶m4=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”。我如何才能得到第二组?
我想从docker容器中获取stdout日志并将它们发送到ELK堆栈.到目前为止,我知道Docker中有一个GELF日志记录驱动程序.
不过,我想不通我怎么能分析ERROR,WARNING或DEBUG从消息的消息,并把它们在一个新的领域像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.
谢谢.
题:
我已经拥有的东西:
Run Code Online (Sandbox Code Playgroud)input { http { host => "0.0.0.0" port => "5000" } } output { elasticsearch { hosts => "elasticsearch:9200" } }
我需要的:
Run Code Online (Sandbox Code Playgroud)input { http { host => "0.0.0.0" port => "5000" } http { host => "0.0.0.0" port => "7070" } }
elasticsearch logstash kibana logstash-configuration elastic-stack
我有一台具有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
还是我真的不好搜索,或者App Insights和ELK堆栈之间没有详细的比较?
所有监视都将用于简单的Web API,会有大量的端点,但是用户流量不应太高。
所以我的问题是:在ELK和App Insights之间进行选择时,是否有任何一般性的观点/差异,个人从来没有机会设置任何这些观点/差异,但是在设置测试环境之前应该先了解一下,期望什么/寻找。