我正在使用 logstash 进行集中式日志记录。我在托运人节点上使用 logstash-forwarder,在收集器节点上使用 ELK 堆栈。我想知道日志存储在 elasticsearch 中的位置,我没有看到在存储日志的位置创建了任何数据文件。有人知道吗?对这个?
elasticsearch logstash kibana logstash-forwarder elastic-stack
我期待建立一个ELK堆栈,并有三个服务器这样做.虽然我找到了大量关于如何实际安装,配置elasticsearch,logstash和kibana的文档和教程,但我发现有关如何在服务器上设置软件以最大限度地提高性能的信息.例如,在所有三个实例上设置elasticsearch,logstash和kibana会不会更好,或者可能在两个实例上安装elasticsearch并在第三个实例上安装logstash和kibana?
与该问题相关,如果我的群集中有多个elasticsearch服务器,我是否需要负载均衡器来向他们传播请求,或者我可以将数据发送到一个服务器,它会相应地分发它吗?
我可以在我的默认映射中看到 geoip.location 被映射到 geo_point 类型:
GET myserver:9200/_template
{
"logstash": {
"order": 0,
"version": 50001,
"template": "logstash-*",
"settings": {
"index": {
"refresh_interval": "5s"
}
},
"mappings": {
"_default_": {
"dynamic_templates": [
{
"message_field": {
"path_match": "message",
"mapping": {
"norms": false,
"type": "text"
},
"match_mapping_type": "string"
}
},
{
"string_fields": {
"mapping": {
"norms": false,
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
},
"match_mapping_type": "string",
"match": "*"
}
}
],
"_all": {
"norms": false,
"enabled": true
},
"properties": { …Run Code Online (Sandbox Code Playgroud) geolocation elasticsearch logstash logstash-grok elastic-stack
您好,我试图在微服务架构中使用ELK堆栈,该架构具有分布在许多服务器上的大量服务。
现在,我已经配置了Kibana和ElasticSearch。现在我的疑问是我必须在哪里安装Logstash。我的意思是说有三个不同的服务器A,B和C,所有服务器都有3个服务。现在总共有9个服务,我想使用ELK Stack捕获其日志。
但是我的问题是我必须在每个不同的服务器上安装Logstash并将已解析的日志发送到Elastic还是我可以在单个服务器上安装Logstash并指定远程输入。
我还需要使用Filebeat吗?
我一直在网上学习关于ELK堆栈的新项目.
虽然大多数科技博客都是关于如何设置ELK的.
虽然我需要更多信息.
如果不是正确的答案,任何线索也将受到赞赏.
我正在使用Springboot Microservcies并使用ELK Stack监控Im.我按照本指南使用docker容器运行ELK .
ELK启动并运行,我正在开始我的Logstash,
docker run -d -it --name logstash -p 5000:5000 logstash -e
'input { tcp { port => 5000 codec => "json" } }
output { elasticsearch { hosts => ["192.168.99.100"] index => "micro-%{serviceName}"} }'
Run Code Online (Sandbox Code Playgroud)
我的Pom细节,
logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread, %X{X-B3-TraceId:-},%X{X-B3-SpanId:-}] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="STASH"
class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>192.168.99.100:5000</destination>
<encoder
class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<mdc /> <!-- MDC variables on the Thread will be written as JSON fields …Run Code Online (Sandbox Code Playgroud) 我对Kibana和ELK(Elasticsearch,Logstash和Kibana)堆栈比较陌生,并且设置非常好,但是遇到了我认为很奇怪的问题,需要一些帮助来了解正在发生的事情。
我正在使用ELK堆栈处理一些Apache日志,但是我有自己的自定义类型设置。因此,我需要明确指定字段类型,而不是让Logstash(或者是Kibana?)猜测数据映射是什么。
通过阅读Logstash文档,似乎很明显,我可以template在output.elasticsearch此处显示的配置块中设置值:
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "logstash-apache"
document_id => "%{[@metadata][fingerprint]}"
manage_template => false
template => "/path/to/logstash/logstash-apache.json"
template_name => "logstash-apache"
template_overwrite => true
}
stdout {
codec => rubydebug
}
}
Run Code Online (Sandbox Code Playgroud)
100%确认我设置了正确的路径。但是由于某种原因,如果我使用它,启动Logstash并使其完成任务,那么我指定的映射logstash-apache.json就不会显示出来。Kibana中的索引logstash-apache也是如此,所以应该正确吗?
所以我现在要做的是像这样将映射模板直接预加载到Elasticsearch中:
curl -ss -XPUT "http://localhost:9200/_template/logstash-apache/" -H 'Content-Type: application/json' -d @"/path/to/logstash/logstash-apache.json";
Run Code Online (Sandbox Code Playgroud)
而且显然效果很好,并且数据得到了正确的映射…但是,执行此类操作相当麻烦。仅将所有内容都来自logstash-apache.conf我设置的文件会更清洁。
那我在做什么错?如何通过该自定义映射模板使用该模板,logstash-apache.conf而不必跳过curl命令的额外循环?
我在下面的匹配查询中搜索elasticsearch,它没有给我确切的匹配,而是给了我更多的无关紧要的匹配。
我正在使用elasticsearch 6.2.3
请在下面找到我的查询
get items/_search
{
"query" : {
"match" : {
"code" : "7000-8900"
}
}
}
Run Code Online (Sandbox Code Playgroud)
请找到响应从match查询中获取
7000-8900
7000-8002-WK
7000-8002-W
Run Code Online (Sandbox Code Playgroud) 我在Elastic中有一个像下面这样的JSON对象。
{
"_source" : {
"version" : 1,
"object_id" : "f1dcae27-7a6f-4fea-b540-901c09b60a15",
"object_name" : "testFileName_for_TestSweepAndPrune",
"object_type" : "",
"object_status" : "OBJ_DELETED",
"u_attributes" : ""
}
Run Code Online (Sandbox Code Playgroud)
}
我这样的字词查询不起作用。
{
"query": {
"term": {
"object_status": "OBJ_DELETED"
}
},
"size": 10000
Run Code Online (Sandbox Code Playgroud)
}
Wile匹配查询在相同条件下也可以正常工作。
{
"query": {
"match": {
"object_status": "OBJ_DELETED"
}
},
"size": 10000
Run Code Online (Sandbox Code Playgroud)
}
想知道这里会发生什么?在这种情况下,如何使术语查询在这里起作用?
您能否为我提供一个提示,如何在Kibana Dev Tools控制台中注释掉行?我对注释语法感兴趣。
elastic-stack ×10
kibana ×5
logstash ×5
comments ×1
console ×1
geolocation ×1
java ×1
kibana-6 ×1
logback ×1
spring-boot ×1