标签: logstash-file

Logstash关闭文件描述符?

背景:

我们rsyslog创建了日志文件目录,例如:/var/log/rsyslog/SERVER-NAME/LOG-DATE/LOG-FILE-NAME 因此,多个服务器将不同日期的日志分发到中心位置.

现在阅读这些日志并将它们存储在elasticsearch中进行分析我的logstash配置文件是这样的:

file{
   path => /var/log/rsyslog/**/*.log
}
Run Code Online (Sandbox Code Playgroud)

问题 :

现在,随着目录中日志文件数量的增加,logstash会为新文件打开文件描述符(FD),并且不会为已读取的日志文件释放FD.由于日志文件是按日期生成的,因此一旦读取它,之后就没有用了,因为在该日期之后它不会被更新.

我已将文件开口限制增加到65K in /etc/security/limits.conf

我们可以在一段时间后让logstash关闭句柄,这样打开的文件句柄数量不会增加太多?

elasticsearch logstash logstash-grok logstash-file

13
推荐指数
1
解决办法
1575
查看次数

Logstash的Java过滤器

你知道如何使用Logstash的Ruby过滤器,这使我能够在Ruby中编写代码,它通常包含在配置文件中,如下所示

filter {
      ruby {
           code => "...."
      }
}
Run Code Online (Sandbox Code Playgroud)

现在我有两个Jar文件,我想包含在我的过滤器中,以便我可以根据我在这些Jar文件中的操作处理我的输入.但是,我不能(显然)在ruby代码中包含Jar文件.我一直在寻找解决方案.

ruby java logstash logstash-file logstash-configuration

10
推荐指数
1
解决办法
1332
查看次数

消费后删除日志:logstash

我有logstash在主机上查看目录.每当它看到与我在logstash配置中指定的路径匹配的日志时,它就会开始将数据导入到我的elasticsearch集群中.logstash是否有办法在完成消耗之后删除日志?

我想写脚本来删除logstash已经完成的日志,但我怎么知道他做了哪些日志?

也许你们之前做过这个或知道如何实现这个?

logging logstash logstash-file

9
推荐指数
1
解决办法
6678
查看次数

如何减少Logstash内存使用率

我正在使用在独立系统(无云或群集)中运行的Logstash-5.6.5(在Windows中)。计划观看一些日志文件并将其发布到本地运行elasticsearch。但是,当检查Logstash的内存使用情况时,如果没有配置监视任何文件的配置,则显示大约600MB内存使用情况。当我进一步添加输入文件管道配置时,它进一步增加了内存(为观看3个日志文件,它总共增加了70MB,但我计划增加多达20个日志)。

1.这是预期的行为吗?
2.有什么方法可以通过logstash减少大量内存使用?

performance memory-management logstash logstash-file logstash-configuration

8
推荐指数
1
解决办法
4604
查看次数

配置logstash以从Amazon S3存储桶读取日志

我一直在尝试配置logstash来读取在我的亚马逊S3存储桶中生成的日志,但是没有成功.以下是详细信息:

  1. 我在ec2实例上安装了logstash
  2. 我的日志是s3存储桶中的所有gz文件
  3. conf文件如下所示:
  input {
    s3 {
      access_key_id => "MY_ACCESS_KEY_ID"
      bucket => "MY_BUCKET"
      region => "MY_REGION"
      secret_access_key => "MY_SECRET_ACESS_KEY"
      prefix => "/"
      type => "s3"
      add_field => { source => gzfiles }
    }
  }

  filter {
    if [type] == "s3" {
      csv {
        columns => [ "date", "time", "x-edge-location", "sc-bytes", "c-ip", "cs-method", "Host", "cs-uri-stem", "sc-status", "Referer", "User-Agent", "cs-uri-query", "Cookie", "x-edge-result-type", "x-edge-request-id" ]  
      }
    }

    if([message] =~ /^#/) {
      drop{}
    } 
  }

  output {
    elasticsearch {
      host => "ELASTICSEARCH_URL" protocol …

amazon-s3 amazon-web-services logstash logstash-file logstash-configuration

7
推荐指数
0
解决办法
4951
查看次数

如何在Log-stash HTTP输出中映射嵌套的JSON

我正在使用Logstash将JSON消息输出到API。我正在使用“映射”属性来映射我的消息。请参阅以下我的托运人配置。

output {
    stdout { }
     http {
        url => "http://localhost:8087/messages"
        http_method => "post"
        format => "json"
        mapping => ["MessageId","654656","TimeStamp","2001-12-31T12:00:00","CorrelationId","986565","MessageType","%{log_MessageType}" ,"MessageTitle","%{log_MessageTitle}","Message","%{log_Message}"]
    }
}
Run Code Online (Sandbox Code Playgroud)

此配置工作正常,并产生以下输出:

{
  "MessageId": "654656",
  "TimeStamp": "2001-12-31T12:00:00",
  "CorrelationId": "986565",
  "MessageType": "INFO",
  "MessageTitle": "TestTittle",
  "Message": "Sample Message"
}
Run Code Online (Sandbox Code Playgroud)

输入日志条目:

TID: [0] [ESB] [2016-05-30 23:02:02,602]  INFO {org.wso2.carbon.registry.core.jdbc.EmbeddedRegistryService} -  Configured Registry in 572ms {org.wso2.carbon.registry.core.jdbc.EmbeddedRegistryService}
Run Code Online (Sandbox Code Playgroud)

模式:

TID:%{SPACE}\[%{INT:log_SourceSystemId}\]%{SPACE}\[%{DATA:log_ProcessName}\]%{SPACE}\[%{TIMESTAMP_ISO8601:log_TimeStamp}\]%{SPACE}%{LOGLEVEL:log_MessageType}%{SPACE}{%{JAVACLASS:log_MessageTitle}}%{SPACE}-%{SPACE}%{GREEDYDATA:log_Message}
Run Code Online (Sandbox Code Playgroud)

问题陈述:

我想通过HTTP映射跟踪输出。我想在消息中使用嵌套的JSON类型,如何在映射标记中添加它。

预期产量:

{
  "MessageId": "654656",
  "TimeStamp": "2001-12-31T12:00:00",
  "CorrelationId": "986565",
  "MessageType": "INFO",
  "MessageTitle": "TestTittle",
  "Message": "Sample Message",
  "MessageDetail": {
    "FieldA": "65656",
    "FieldB": "192.168.1.1",
    "FieldC": "sample …
Run Code Online (Sandbox Code Playgroud)

json logstash logstash-grok logstash-file logstash-configuration

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

Logstash:处理大型消息

我正在尝试使用文件输入,json过滤器和elasticsearch输出使用Logstash解析大型消息.99%的时间这个工作正常,但当我的一条日志消息太大时,我得到JSON解析错误,因为初始消息被分解为两个部分无效的JSON流.此类消息的大小约为40,000+个字符.我看看是否有关于缓冲区大小的信息,或者我应该尝试留下的一些最大长度,但没有任何运气.我发现的唯一答案与udp输入有关,并且能够更改缓冲区大小.

Logstash是否为每个事件消息设置了限制大小? https://github.com/elastic/logstash/issues/1505

这也可能类似于这个问题,但是从来没有任何回复或建议:Logstash Json过滤器对于大型嵌套JSON意外行为

作为一种解决方法,我想将我的消息分成多个消息,但我无法做到这一点,因为我需要所有信息都在Elasticsearch中的相同记录中.我不相信有办法从logstash调用Update API.此外,大多数数据都在一个数组中,所以虽然我可以使用脚本更新Elasticsearch记录的数组(Elasticsearch upserting并附加到数组),但我无法从Logstash中做到这一点.

数据记录看起来像这样:

{ "variable1":"value1", 
 ......, 
 "variable30": "value30", 
 "attachements": [ {5500 charcters of JSON}, 
                   {5500 charcters of JSON}, 
                   {5500 charcters of JSON}.. 
                   ...
                   {8th dictionary of JSON}]
 }
Run Code Online (Sandbox Code Playgroud)

有没有人知道让Logstash处理这些大型JSON消息的方法,或者我可以将它们拆分并让它们最终存在于同一个Elasticsearch记录中的方式(使用Logstash)?

任何帮助表示赞赏,我很乐意添加所需的任何信息!

json elasticsearch logstash logstash-file

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

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 5.1.1"错误的URI(不是URI?)"

错误:

c:\ Program Files\Logstash\bin> logstash.bat -e'input {stdin {}} output {stdout {}}'发生意外错误!:错误=>错误的URI(不是URI?):文件:// c:/ Program Files/Logstash/confi g/log4j2.properties,:backtrace => ["C:/ Program Files/Logstash/vendor/jruby/lib/ruby​​/1.9/uri/common.rb:176:在split'","C:/ Program Files/Logstash/vendor/jruby/lib/ruby​​/1.9/uri/common.rb:210:在解析'","C:/ Program Files/Logstash/vendor/jruby/lib/ruby​​/1.9/uri/common.rb:747:在解析'","C:/ Program Files/Logstash/vendor/jruby/lib/ruby​​/1.9/uri/common.rb:994:inURI'","c:/ Program Files/Logstash/log stash-core/lib/logstash/logging/logger.rb:76:in initialize '","org/jruby/ext/thread/Mutex.java:149:insynchronize'","c:/ Program Files/Logstash/logstash-core/lib/logstash/logging/logger.rb:74:in in itialize' ","c:/ Program Files/Logstash/logstash -core/lib/logstash/runner.rb:193:不执行'","c:/ P rogram Files/Logstash/vendor/bundle/jruby/1.9/gems/clamp-0.6.5/lib/clamp/command.rb:67:在运行'","c:/ Program Files/Logstash/logstash -core/lib/logstash/runner.rb:178:inrun' ","c:/ Program Files/Logst ash/vendor/bundle/jruby/1.9/gems/clamp-0.6.5/lib/clamp/command.rb:132:in run'","c:\ Program Files\\ Logstash\lib\bootstrap\environment.rb:71:in(root)'"]

logstash logstash-file logstash-configuration

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