标签: logstash-configuration

Logstash文件输入:sincedb_path

重新启动Logstash后,有时会发现Logstash会复制日志事件.想知道,什么是应用正确的方式start_position,sincedb_path,sincedb_write_interval的配置选项.

  • 当下面的示例中有多个文件位于同一位置时会发生什么 /home/tom/testData/*.log
  • 文件轮换发生时会发生什么,例如XXX.log重命名文件并创建XXX-<date>.logXXX.log文件.在这种情况下,名称不会更改,但inode会更改.

如果有人能对此有所了解,我将非常感激.

input {
           file {
             path => "/home/tom/testData/*.log"
             type => "log"
             start_position => "beginning"
             sincedb_path => "/persistent/loc"        
             sincedb_write_interval => 10
               }
       }
Run Code Online (Sandbox Code Playgroud)

logstash logstash-file logstash-configuration

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

Logstash没有使用Shield写入Elasticsearch

我一直试图使用shield写入logstash写入elasticseach而没有成功.

在将shield插件安装到elasticsearch之前,我的设置工作正常.我从elastic.co遵循了这个指南,并为logstash user role使用创建了一个新用户:

esusers useradd logstashadmin -r logstash
Run Code Online (Sandbox Code Playgroud)

我也更新了logstash output configuration,并且增加了protocol,userpassword作为指南建议.

重新启动logstash和elasticsearch之后,我仍然没有收到来自logstash的elasticsearch上的任何内容.我错过了什么吗?

这是我的设置:

$ esusers roles logstashadmin                         
logstashadmin  : logstash

$ cat shield/roles.yml
...
# The required role for logstash users
logstash:
  cluster: indices:admin/template/get, indices:admin/template/put
  indices:
    'logstash-*': indices:data/write/bulk, indices:data/write/delete, indices:data/write/update, indices:data/read/search, indices:data/read/scroll, create_index
...


$ cat logstash/output.conf

output {
  elasticsearch {
    protocol => "http"
    cluster => "logstash"
    user => "logstashadmin"
    password => "logstashadmin123"
  }
} …
Run Code Online (Sandbox Code Playgroud)

elasticsearch logstash elasticsearch-plugin logstash-configuration elasticsearch-shield

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

在logstash中的列表中解析json

我有一个json的形式

[
    {
        "foo":"bar"
    }
]
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用logstash中的json过滤器来过滤它.但它似乎没有用.我发现我无法使用logstash中的json过滤器解析列表json.有人可以告诉我有关此方法的任何解决方法吗?

UPDATE

我的日志

IP - - 0.000 0.000 [24/May/2015:06:51:13 +0000] *"POST /c.gif HTTP/1.1"* 200 4 * user_id=UserID&package_name=SomePackageName&model=Titanium+S202&country_code=in&android_id=AndroidID&eT=1432450271859&eTz=GMT%2B05%3A30&events=%5B%7B%22eV%22%3A%22com.olx.southasia%22%2C%22eC%22%3A%22appUpdate%22%2C%22eA%22%3A%22app_activated%22%2C%22eTz%22%3A%22GMT%2B05%3A30%22%2C%22eT%22%3A%221432386324909%22%2C%22eL%22%3A%22packageName%22%7D%5D * "-" "-" "-"
Run Code Online (Sandbox Code Playgroud)

以上日志的URL解码版本是

IP - - 0.000 0.000 [24/May/2015:06:51:13  0000] *"POST /c.gif HTTP/1.1"* 200 4 * user_id=UserID&package_name=SomePackageName&model=Titanium S202&country_code=in&android_id=AndroidID&eT=1432450271859&eTz=GMT+05:30&events=[{"eV":"com.olx.southasia","eC":"appUpdate","eA":"app_activated","eTz":"GMT+05:30","eT":"1432386324909","eL":"packageName"}] * "-" "-" "-"
Run Code Online (Sandbox Code Playgroud)

请在下面的配置文件中找到以上日志..

过滤器{

urldecode{
    field => "message"
}
 grok {
  match => ["message",'%{IP:clientip}%{GREEDYDATA} \[%{GREEDYDATA:timestamp}\] \*"%{WORD:method}%{GREEDYDATA}']
}

kv {
    field_split => "&? "
}
json{
    source=> "events"
}
geoip {
    source => "clientip"
}
Run Code Online (Sandbox Code Playgroud)

} …

logstash logstash-configuration

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

在Logstash配置中为Elasticsearch每天创建一个新索引

我打算进行ELK堆栈设置,其中每日JSON输入存储在创建的日志文件中,每个日期对应一个.我的logstash将通过这些日志监听输入,并将其存储在与日志文件条目日期对应的索引处的Elasticsearch中.

logstash-output.conf的事情如下:

output {
  elasticsearch { 
    host => localhost
    cluster => "elasticsearch_prod"
    index => "test"
  }
}
Run Code Online (Sandbox Code Playgroud)

因此,就目前而言,logstash的所有输入都存储在elasticsearch的索引test处.我想要的是,在2015.11.19上发生的logstash条目,存储在名为logfile的日志文件中logstash-2015.11.19.log,必须相应地存储在索引中test-2015.11.19.

我应该如何编辑我的logstash配置文件来启用它?

elasticsearch logstash logstash-configuration

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

Kafka输入到logstash插件

我试图从3个服务器的kafka集群读入logstash,以便将其写入syslog服务器.我已写入syslog,但即使在logstash文档站点上,我也无法找到如何从kafka读入logstash.

Logtash版本:5.2.2 Kafka版本:0.10.2 scala版本:2_11

我去看了api版本,LOGSTASH_CORE_PLUGIN_API ="2.1.12"

这是我尝试使用的配置

input {
#    file
#    {
#        path => "/opt/logstash/NOTICE.TXT"
#
#        #DEBUG below
#        #path => "../fsdfdstt.log"
#        start_position => "beginning"
#        sincedb_path => "/dev/null"
#    }
        kafka
        {
                zk_connect => "localhost:2181"
                topic_id => "kafkatest2"
        }
}
output
{
        syslog
        {
                host => ["targetserver"]
                port => port#
        }
}
Run Code Online (Sandbox Code Playgroud)

但这是我得到的错误......

[2017-03-15T10:24:17,000][ERROR][logstash.inputs.kafka    ] Unknown setting 'zk_connect' for kafka
[2017-03-15T10:24:17,008][ERROR][logstash.inputs.kafka    ] Unknown setting 'topic_id' for kafka
[2017-03-15T10:24:17,015][ERROR][logstash.agent           ] Cannot load an invalid configuration {:reason=>"Something …
Run Code Online (Sandbox Code Playgroud)

elasticsearch apache-kafka logstash logstash-configuration

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

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
查看次数

删除包含特定字符串的日志消息

所以我有以下格式的日志消息:

[INFO]  <blah.blah>       2016-06-27 21:41:38,263 some text
[INFO]  <blah.blah>       2016-06-28 18:41:38,262 some other text
Run Code Online (Sandbox Code Playgroud)

现在我想删除所有不包含特定字符串"xyz"的日志,并保留所有其余内容.我也想索引时间戳.

grokdebug帮助不大.

这是我的尝试:

input {
    file {
         path => "/Users/username/Desktop/validateLogconf/logs/*"
      start_position => "beginning"

   }
}

filter {

  grok {
      match => {
      "message" => '%{SYSLOG5424SD:loglevel}  <%{JAVACLASS:job}>       %{GREEDYDATA:content}'
      }
  }

  date {
    match => [ "Date", "YYYY-mm-dd HH:mm:ss" ]
    locale => en
  }

}

output {
  stdout {
codec => plain {
                        charset => "ISO-8859-1"
                }

}
    elasticsearch {
        hosts => "http://localhost:9201"
        index => "hello"

  } …
Run Code Online (Sandbox Code Playgroud)

elasticsearch logstash logstash-configuration

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

Logstash 在 elasticsearch 中更新文档

尝试通过 logstash 更新 elasticsearch 中的特定字段。是否可以通过 logstash 仅更新一组字段?

请找到下面的代码,

    input {
  file {
        path => "/**/**/logstash/bin/*.log"
        start_position => "beginning"
        sincedb_path => "/dev/null"
        type => "multi"
  }
}

filter {
        csv {
                separator => "|"
                columns => ["GEOREFID","COUNTRYNAME", "G_COUNTRY", "G_UPDATE", "G_DELETE",  "D_COUNTRY", "D_UPDATE", "D_DELETE"]

}
elasticsearch {
         hosts => ["localhost:9200"]
         index => "logstash-data-monitor"
         query => "GEOREFID:%{GEOREFID}"
         fields => [["JSON_COUNTRY","G_COUNTRY"],
                    ["XML_COUNTRY","D_COUNTRY"]]
           }

if [G_COUNTRY] {
mutate {
    update => { "D_COUNTRY" => "%{D_COUNTRY}"
 }
  }
}
}
output {
elasticsearch {
        hosts => …
Run Code Online (Sandbox Code Playgroud)

elasticsearch logstash logstash-configuration

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

如何将Logstash输出验证到安全的Elasticsearch URL(版本5.6.5)

我正在使用Logstash和Elasticsearch版本5.6.5。到目前为止,已将Elasticsearch输出与HTTP协议一起使用,并且未进行身份验证。现在,使用基本身份验证(用户/密码)和CA认证的HTTPS URL保护Elasticsearch。我对Elasticsearch服务器没有任何控制权。我只是用它从Logstash输出到。

现在,当我尝试使用基本身份验证配置elasticsearch的HTTPS URL时,它无法创建管道。

输出配置

output { 
 elasticsearch {
   hosts => ["https://myeslasticsearch.server.io"]
   user => "esusername"
   password => "espassword"
   ssl => true
 }
}
Run Code Online (Sandbox Code Playgroud)

失误

 1. Error registering plugin {:plugin=>"#<LogStash::OutputDelegator:0x50aa9200
 2. Pipeline aborted due to error {:exception=>#<URI::InvalidComponentError: bad component(expected user component):
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?我注意到有一个名为的字段cacert,它需要一些PEM文件。但是我不确定该放在哪里,因为Elasticsearch服务器使用的是CA认证的SSL,而不是自签名的SSL。

附加问题:我没有安装任何xpack。是否需要从Logstash向HTTPS输出到Elasticsearch的“ xpack”购买?

authentication https elasticsearch logstash logstash-configuration

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

为什么弹性索引存储大小增加而更新索引不插入?

我通过 Logstash 从 Oracle 写入索引。

输出是:

   elasticsearch {
                index => "****"
                document_type => "****"
                document_id => "%{my_computed_id}"
                hosts => "localhost:9200"
 }
Run Code Online (Sandbox Code Playgroud)

但是当我检查索引管理时,文档计数相同,但存储大小增加。

我想更新我的文档,为什么存储大小会增加?

提前致谢

elasticsearch logstash logstash-configuration

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