Logstash如何组合分隔符分隔的单词

时间:2015-06-26 13:10:51

标签: logstash

我有一些像约翰 - 拉吉"我想通过使用grok模式将这两者合并为logstash中的单个字段。

所以我想要输出如下所示。但是我无法使用\%{WORD}和%{NOTSPACE}

将输出作为单个字段输出
<application android:allowBackup="true" android:label="@string/app_name"
        android:icon="@mipmap/ic_launcher" android:theme="@style/AppTheme">

        <service android:name=".MyService" android:label="Tool" android:enabled="true"/>

        <receiver android:name=".receiver.BootCompleteReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>
    </application>

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

如何创建grok以输出?

3 个答案:

答案 0 :(得分:2)

%{WORD}是字母数字和下划线,所以它不会与你的连字符匹配。

%{NOTSPACE}在调试器中匹配。

答案 1 :(得分:0)

如果您有引用文字,则可以使用%{QS}模式。

答案 2 :(得分:0)

我一直在寻找如何组合几种模式来建立一种价值。 找到here

  

有时logstash没有您需要的模式。为此,你有   一些选择。

     

首先,您可以使用Oniguruma语法进行命名捕获,   让您匹配一段文本并将其保存为字段:

     

(?<_ field_name_>此处的模式)

因此,在您的情况下,以下内容将构成value = "John-Raj"(在debugger中进行测试)

(?<value>%{WORD}%{NOTSPACE})