流利的将字段转换为整数

时间:2016-09-16 07:11:48

标签: regex elasticsearch type-conversion fluentd

我需要你的帮助。 我在尾部模式下配置fluentd以将我的日志发送到elasticsearch群集。 我使用regex来解析每个日志行,但对于某些字段,我需要在metricValue中转换integer。我尝试过一些东西但是没有用。

这是我精通的conf文件:

    <source>
    @type tail
    path /tmp/application.log
    pos_file /tmp/access.log.pos
    format multi_format
    tag first.log

    <pattern>
      format /(?<app>.*)\((?<instance>.*)\) CID\((?<correlationId>.*)\) (?<level>.*) \[(?<timestamp>.*)\] \[(?<Thread>.*)\] (?<class>.*) - \[Provider:(?<providerName>.*),Curef:(?<cuRef>.*),Operation:(?<operation>.*),Reference:(?<reference>.*),Idx:(?<idx>.*)\]/
    </pattern>
    <pattern>
      format /(?<app>.*)\((?<instance>.*)\) CID\((?<correlationId>.*)\) (?<level>.*) \[(?<timestamp>.*)\] \[(?<Thread>.*)\] (?<class>.*) - (?<body>.*)/
    </pattern>
  </source>
  <match *.log>
    @type copy
    <store>
      @type stdout
    </store>
    <store>
      @type elasticsearch
      host localhost
      port 9200
      logstash_format true
      logstash_prefix fluentd-log
      flush_interval 10s
    </store>
  </match>

我在fluend文档中找到了语法但是没有工作(我不知道在哪里放这些行)

types <field_name_1>:<type_name_1>,<field_name_2>:<type_name_2>,...

我希望在将字段metricValue发送到elasticsearch之前将其转换为整数。

感谢您的任何想法。

C.C。

1 个答案:

答案 0 :(得分:1)

您必须将这些字段(types <field_name_1>:<type_name_1>,<field_name_2>:<type_name_2>,...)放入您案例中的source部分。 如果您使用parser插件,则必须将其插入filter部分(此处为example