标签: fluentd

Grok 模式解析 ESC 键

我正在编写一种gr​​ok 模式来解析cinder-apifluenced中的日志,其中一行是:

2015-09-17 17:44:49.663 ^[[00;32mDEBUG oslo_concurrency.lockutils [^[[00;36m-^[[00;32m] ^[[01;35m^[[00;32mAcquired semaphore "singleton_lock"^[[00m ^[[00;33mfrom (pid=30534) lock /usr/local/lib/python2.7/dist-packages/oslo_concurrency/lockutils.py:198^[[00m
Run Code Online (Sandbox Code Playgroud)

^[[00;32m其他此类事件是ASCII 颜色代码,在终端中打印时打印如下:

我需要解析该行,并且当没有使用(测试的)模式的 颜色代码时我能够做到这一点%{TIMESTAMP_ISO8601:timestamp}%{SPACE}%{LOGLEVEL:loglevel}%{SPACE}{NOTSPACE:api}%{SPACE}\[(?:%{DATA:request})\]%{SPACE}%{GREEDYDATA:message}

如何修改 grok 模式以便能够解析彩色日志行?

我发现以下内容是否可以帮助任何人找到解决方案:

  • ^[实际上是ESC键,八进制代码为\033,十六进制代码为\x1B,十进制 ASCII 代码为27 ,也用^[表示。
  • 有一个名为color-stripper的fluidd 插件具有相同的功能,但对我不起作用,也不适合我的用例。

regex ansi-escape grok fluentd logstash-grok

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

Fluentd可以将日志发送到Logstash吗?

我整天都在尝试这样做。我想通过fluentd日志记录引擎将日志从Docker发送到FluentD,然后从fluentd将那些日志发送到logstash进行处理。

我一直从logstash收到此错误:

{:timestamp=>"2016-03-09T23:29:19.388000+0000",
 :message=>"An error occurred. Closing connection",
 :client=>"172.18.0.1:57259", :exception=>#<TypeError: can't convert String into Integer>,
 :backtrace=>["org/jruby/RubyTime.java:1073:in `at'", 
"/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-event-2.2.2-java/lib/logstash/timestamp.rb:27:in `at'", 
"/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-codec-fluent-2.0.2-java/lib/logstash/codecs/fluent.rb:41:in `decode'", 
"org/msgpack/jruby/MessagePackLibrary.java:195:in `each'", 
"/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-codec-fluent-2.0.2-java/lib/logstash/codecs/fluent.rb:40:in `decode'", 
"/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-input-tcp-3.0.2/lib/logstash/inputs/tcp.rb:153:in `handle_socket'", 
"/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-input-tcp-3.0.2/lib/logstash/inputs/tcp.rb:143:in `server_connection_thread'"], :level=>:error}
Run Code Online (Sandbox Code Playgroud)

相当基本的logstash配置:

input {
  tcp {
    port => 4000
    codec => "fluent"
  }
}

output {
  stdout {
  }
}
Run Code Online (Sandbox Code Playgroud)

相当基本的流利配置:

<source>
  @type forward
</source>


<match docker.json>
  @type forward
  send_timeout 60s 
  recover_wait 10s 
  heartbeat_type none
  phi_threshold 16
  hard_timeout 60s 

  <server>
    name logstash
    host 172.18.0.2
    port 4000
    weight 60
  </server>
</match>

<match …
Run Code Online (Sandbox Code Playgroud)

logstash fluentd

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

如何为我的流利事件添加标签

我写的

<source>
  @type tail
  format nginx
  path /home/work/opt/nginx/var/log/access.log
  tag nginx.access
</source>
Run Code Online (Sandbox Code Playgroud)

在我的 fluent.conf 文件中并与 stdout 匹配,但是当我对我的网站进行 post 调用时,nginx 将访问记录到其日志中,但 fluentd_ui 建议

 [warn]: no patterns matched tag="nginx.access"
Run Code Online (Sandbox Code Playgroud)

如何为我的 http 请求添加标签?

fluentd

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

使用 td-agent 时,日期未附加到 elasticsearch 索引名称

我需要将日志存储到 Es 索引,当我使用 logstash 日期被附加到索引名称为 logstash.2018-08-06 时,但是当我尝试在流动的 conf 中提供自定义名称时,它没有被添加

</store>
  <store>
  @type elasticsearch
  host X.X.X.X
  port 9200
  logstash_format false
  index_name updatetest.%Y%m%d --> In index name its not replacing with date
  </store>
Run Code Online (Sandbox Code Playgroud)

这是索引名称,由上面的 conf updatetest.%Y%m%d 创建 --> 它应该像 updatetest.20180806

提前感谢您的帮助

fluent elasticsearch fluentd td-agent

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

Fluentd - 在 JSON 数据中添加新属性

使用 Fluentd,我以 JSON 格式将日志发送到 Splunk 和 ES,如下所示:

{
    "object1": {
            "obj1_key1": "value_xyz"
     }
     "object2": {
            "obj2_key1": "value_abc"
     }
}
Run Code Online (Sandbox Code Playgroud)

在将日志发送到服务器之前,我想在 Object1 和 Object2 中添加一些字段作为元数据,例如。

{
    "object1": {
            "obj1_key1": "value_xyz"
            "metadata": "constant_value"
     }
     "object2": {
            "obj2_key1": "value_abc"
            "metadata": "constant_value"
     }
}
Run Code Online (Sandbox Code Playgroud)

我知道使用 fluidd“record_transformer”插件我们可以添加新字段,但问题是如何在对象或嵌套对象内添加字段?

fluentd

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

FluentD 无法在 Elasticsearch 中写入日志

使用:

  • 流利的 1.11.2
  • 流利插件-elasticsearch 4.1.3
  • 弹性搜索 7.5.1
  • 弹簧引导2.3.3

在 Openshift 中运行(Kubernetes v1.17.1+20ba474)。

Fluentd 和 Elasticsearch 都在不同的 pod 中运行。

Fluentd配置文件:

<source>
  @type forward
  port 24224
  bind 0.0.0.0
</source>
<filter *.**>
      @type parser
      key_name log
      reserve_data true
      <parse>
        @type none
      </parse>
</filter>
<match *.**>
  @type copy
<store>
    @type elasticsearch
    host elasticdb
    port 9200
    logstash_format true
    logstash_prefix applogs
    logstash_dateformat %Y%m%d
    include_tag_key true
    type_name app_log
    tag_key @log_name
    flush_interval 1s
    user elastic
    password changeme
  </store>
  <store>
    @type stdout
  </store>
</match>
Run Code Online (Sandbox Code Playgroud)

从本地 springboot 服务,我向 fluidd 发送一些虚拟数据: …

spring elasticsearch openshift fluentd

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

Fluentd SSL/TLS 保护 TCP 输出插件到通用接收器 (Logstash)?

我一直在寻找 tcp 的 fluentd 输出插件,它也是 ssl 安全的,不会强制我的接收器来自特定类型。就我而言,我的接收器是 logstash。

以下是一些接近的插件(接近但没有雪茄):

转发输出- 不支持 ssl 连接。

安全转发输出- 仅将数据发送到另一个流畅的接收器。

有些是 https 插件,有些是特定的服务插件(需要某种令牌/用户/密码)。

我可以使用任何其他插件吗?也许有一些解决方法?

ssl rubygems tcp logstash fluentd

0
推荐指数
1
解决办法
2694
查看次数

docker 构建时权限被拒绝

我知道有很多标题相似的问题,但没有一个与我的问题相似。我的问题很简单,我正在尝试使用命令在我的 dockerfile 中安装一些软件包install_packages。这会导致权限被拒绝错误,指出/bin/sh: 1: install_packages: Permission denied

我尝试过添加USER 0USER root但没有一个起作用。下面是我的 Dockerfile。我究竟做错了什么?。在 github 中也看到了类似的问题,但那里提供的解决方案对我不起作用。类似问题:https://github.com/bitnami/bitnami-docker-wordpress/issues/230

Dockerfile:(第六条命令出错)

FROM docker.io/bitnami/minideb:buster
LABEL maintainer "Bitnami <containers@bitnami.com>"
USER root

ENV HOME="/" \
    OS_ARCH="amd64" \
    OS_FLAVOUR="debian-10" \
    OS_NAME="linux"

COPY prebuildfs /
# Install required system packages and dependencies
RUN install_packages ca-certificates curl ghostscript gzip imagemagick libc6 libgcc1 libgmp-dev libjemalloc-dev libncurses5-dev libncurses6 libreadline-dev libreadline7 libssl1.1 libstdc++6 libtinfo6 libxml2-dev libxslt1-dev procps tar zlib1g zlib1g-dev
RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "ruby" "2.6.6-0" --checksum …
Run Code Online (Sandbox Code Playgroud)

bitnami fluentd docker

0
推荐指数
1
解决办法
4471
查看次数

在Ruby中,内部类如何访问外部类中定义的变量/方法?

例子:

require "fluent/plugin/output"

module Fluent::Plugin
    class Outer < Fluent::Plugin::Output
        @outer_var = "Hello from outer variable"

        class Inner
            def initialize()
                puts "@outer_var", @outer_var # nil
                log.info "Hello from inner initialize" # undefined local variable or method log
                outer_method() # undefined method `outer_method' for #<Outer::Inner:0x00007fd2100452b0> (NoMethodError)
            end
        end # Inner

        def initialize()
            Inner.new()
            log.info "Hello from outer initialize" # works
        end

        def outer_method
            puts "Hello from outer method"
        end

    end # Outer
end # Fluent::Plugin
Run Code Online (Sandbox Code Playgroud)

如何使内部类可以访问外部变量和方法?这里的示例显示了如何定义内部/外部类,但没有显示如何访问外部类。我知道 Ruby 中不存在内部/外部类的概念,根据这个答案。在仍然是模块一部分的情况下使用 …

ruby oop inner-classes fluentd

0
推荐指数
1
解决办法
692
查看次数