标签: logstash-configuration

Logstash应该是#之一

我目前正在尝试使用以下配置文件运行Lostash:

input { 
    stdin { } 
} 
output { 
    rabbitmq { 
        exchange => "test_exchange" 
        exchange_type => "fanout" 
        host => "172.17.x.x" 
    } 
}
Run Code Online (Sandbox Code Playgroud)

但是我得到一个错误:

logstash agent --configtest -f -config.conf
Run Code Online (Sandbox Code Playgroud)

给我:

错误:输出{Rabbitmq {exchange => test_exchange exchange_type => fanout host => 172.17之后,第1行第105行(字节105)的第1行中的#}之一

当我在主机字段中输入类似IP的地址时,logstash似乎出现了问题。我的配置有什么问题?

logstash logstash-configuration

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

使用Logstash从远程计算机读取带有文件输入插件的日志文件

目前,我的日志和logstash运行在同一台计算机上,因此我使用此配置(使用拉模型)读取放置在本地计算机上的日志

input {     
    file {
        path => "/home/Desktop/Logstash-Input/**/*_log"
        start_position => "beginning"
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我们在另一台计算机上运行了logstash,并希望读取日志远程机器。

有没有一种方法可以在配置文件的文件输入中设置IP?

编辑: 我设法用logstash-forwarder来做到这一点,pushtash-forwarder是一个推模型(log shipper / logstash-forwarder会将日志发送到logstash索引服务器),但我仍在寻找没有shipper的pull模型,logstash索引服务器将进入直接与远程主机联系。

logstash logstash-forwarder logstash-configuration

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

来自Elasticsearch错误的Logstash输入

我正在使用Logstash 1.5.4和Elasticsearch 1.7.1

以下是我的Logstash配置文件:

input {
        elasticsearch {
                host => localhost
        }
}


output {
        elasticsearch {
                host => localhost
        }
        stdout {
                codec => rubydebug
        }
}
Run Code Online (Sandbox Code Playgroud)

当我没有为Elasticsearch输入包含'host'选项时,这可以正常工作.但是,一旦我添加它,它会给我以下错误并关闭Logstash:

?[31mUnknown setting 'host' for elasticsearch {:level=>:error}?[0m
Error: Something is wrong with your configuration.
You may be interested in the '--configtest' flag which you can
use to validate logstash's configuration before you choose
to restart a running system.
Run Code Online (Sandbox Code Playgroud)

现在我知道使用Host是可选的,但我需要它.如果我以后想要来自其他localhost的主机的Elasticsearch输入怎么办?

elasticsearch logstash logstash-configuration

3
推荐指数
1
解决办法
5142
查看次数

从CSV文件输入数据到logstash

我有一个csv文件,包含以下标题:

"PacketId","MACAddress","Date","PacketLength","SourceIP","SourcePort","DestIP","DestPort"
Run Code Online (Sandbox Code Playgroud)

我想使用LogStash将数据索引到ElasticSearch,并且无法为其编写过滤器.

filter {
    grok {
        match => message => "%{IP:SourceIP}"
    }
    }
Run Code Online (Sandbox Code Playgroud)

上面的过滤器提供了一个很好的SourceIP字段提取,但是我如何编写grok模式来为所有字段提取它.

csv elasticsearch logstash-grok logstash-configuration

3
推荐指数
1
解决办法
6007
查看次数

add_field和replace之间的Logstash差异

配置Logstash时,add_field和之间有什么区别replace

从语义上讲,他们可能希望做不同的事情,但是当前手册没有任何内容说明这两种功能如何根据相关领域的存在而有所不同。

范例1:

filter {
  mutate {
    add_field => { "foo_%{somefield}" => "Hello world, from %{host}" }
  }
}
Run Code Online (Sandbox Code Playgroud)

该手册没有说明如果该字段已经存在,预期的行为是什么。行为是否相同replace

范例2:

filter {
  mutate {
    replace => { "message" => "%{source_host}: My new message" }
  }
}
Run Code Online (Sandbox Code Playgroud)

手册再次没有说明如果该字段不存在,则预期的行为是什么。一样add_field吗?

logstash logstash-configuration

3
推荐指数
1
解决办法
1420
查看次数

使用根对象的Logstash合并字段

我有logstash输入,看起来像这样

{
    "@timestamp": "2016-12-20T18:55:11.699Z",
    "id": 1234,
    "detail": {
        "foo": 1
        "bar": "two"
    }
}
Run Code Online (Sandbox Code Playgroud)

我想将"detail"的内容与根对象合并,以便最终事件如下所示:

{
    "@timestamp": "2016-12-20T18:55:11.699Z",
    "id": 1234,
    "foo": 1
    "bar": "two"
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在不编写自己的过滤器插件的情况下完成此操作?

logstash logstash-configuration

3
推荐指数
1
解决办法
2195
查看次数

Logstash 条件输出到 elasticsearch(每个 filebeat 主机名的索引)

我有几个安装了 filebeat 的 Web 服务器,并且我希望每个主机有多个索引。

我当前的配置如下

input {
  beats {
    ports => 1337
  }
}

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}"}
  }
  geoip {
    source => "clientip"
  }
}

output {
  elasticsearch {
  if [beat][hostname] == "luna"
  {
         hosts => "10.0.1.1:9200"
         manage_template => true
         index => "lunaindex-%{+YYYY.MM.dd}"
         document_type => "apache"
  }
  }
}
Run Code Online (Sandbox Code Playgroud)

然而上面的conf结果是

给定的配置无效。原因:第 22 行第 6 列(字节 346)需要 #、=> 之一

这是 if 语句发生的地方。有什么帮助吗?

我希望将以上内容采用嵌套格式

if [beat][hostname] == "lina"
{
index = lina
}
else …
Run Code Online (Sandbox Code Playgroud)

elasticsearch logstash logstash-grok logstash-configuration

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

使用 Logstash 解析 XML 文件

我正在尝试解析 Logstash 中的 XML 文件。我想使用 XPath 来解析 XML 中的文档。所以当我运行我的配置文件时,数据加载到elasticsearch但它不是我想要加载数据的方式。加载进来的数据elasticsearch是xml文档中的每一行

我的 XML 文件的结构

在此处输入图片说明

我想要达到的目标:

在弹性搜索中创建存储以下内容的字段

ID =1
Name = "Finch"
Run Code Online (Sandbox Code Playgroud)

我的配置文件:

input{
    file{
        path => "C:\Users\186181152\Downloads\stations.xml"
        start_position => "beginning"
        sincedb_path => "/dev/null"
        exclude => "*.gz"
        type => "xml"
    }
}
filter{
    xml{
        source => "message"
        store_xml => false
        target => "stations"
        xpath => [
            "/stations/station/id/text()", "station_id",
            "/stations/station/name/text()", "station_name"
        ]
    }
}

output{
    elasticsearch{
        codec => json
        hosts => "localhost"
        index => "xmlns"
    }
    stdout{
        codec => rubydebug …
Run Code Online (Sandbox Code Playgroud)

elasticsearch logstash logstash-configuration

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

Logstash 由于多个实例而无法启动,即使没有正在运行的实例

当我启动logstash 时,我不断收到此错误[2019-02-26T16:50:41,329][FATAL][logstash.runner ] Logstash could not be started because there is already another instance using the configured data directory. If you wish to run multiple instances, you must change the "path.data" setting. 。我正在使用 cli 启动logstash。我执行的命令是:

screen -d -S logstash -m bash -c "cd;export JAVA_HOME=/nastools/jdk1.8.0_77/; export LS_JAVA_OPTS=-Djava.net.preferIPv4Stack=true; ~/monitoring/6.2.3/bin/logstash-6.2.3/bin/logstash -f ~/monitoring/6.2.3/config/logstash_forwarder/forwarder.conf"

我没有运行任何 Logstash 实例。我尝试运行这个: ps xt | grep "logstash"它没有返回任何进程。我也尝试了以下方法:killall logstash但无济于事,它给了我同样的错误。我也尝试重新启动我的机器,但仍然出现同样的错误。

有人经历过类似的事情吗?Kibana 和 Elastic Search 启动得很好。

在此先感谢您的帮助!

elasticsearch logstash kibana logstash-configuration

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

_grokparsefailure 使用多个 grok 过滤器在所有已解析日志中标记

我正在尝试使用 Elastic Stack 解析 Minecraft 日志,但遇到了一个非常奇怪的问题(对我来说可能很奇怪!)

我的日志的所有行都被正确解析,但我_grokparsefailure在每个行中都有标签。

我的logstash管道配置是这样的:

input {
  file {
    path => [ "/path/to/my/log" ]
    #start_position => "beginning"
    tags => ["minecraft"]
  }
}

filter {
  if "minecraft" in [tags] {

#    mutate {
#      gsub => [
#        "message", "\\n", ""
#      ]
#    }



    #############################
    #           Num 1           #
    #############################
    grok {
      match => [ "message", "\[%{TIME:timestamp}] \[(?<originator>[^\/]+)?/%{LOGLEVEL:level}]: %{GREEDYDATA:message}" ]
      overwrite => [ "message" ]
      break_on_match => false
    }


    #############################
    #           Num 2           #
    ############################# …
Run Code Online (Sandbox Code Playgroud)

logstash logstash-grok logstash-configuration elastic-stack

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