rsyslog-如何使用JSON模板发送多行消息

时间:2018-07-03 01:43:58

标签: rsyslog

我正在使用rsyslog imfile模块运送laravel日志。 我使用startmsg.regex处理多行消息。这些效果很好。

input(type="imfile"
      File="laravel.log"
      Tag="laravel_app"
      startmsg.regex="[[:digit:]]{4}-[[:digit:]]{1,2}-[[:digit:]]{1,2} [[:digit:]]{1,2}:[[:digit:]]{1,2}:[[:digit:]]{1,2}"
)

然后我将日志发送到 Logstash (然后在 Elasticsearch 和Kibana中使用它们) 我使用 Rsyslog模板

运送日志
template(name="json-template"
type="list") {
constant(value="{")
constant(value="\"@timestamp\":\"") property(name="timereported" dateFormat="rfc3339")
constant(value="\",\"@version\":\"1")
constant(value="\",\"message\":\"") property(name="msg" format="json")
constant(value="\",\"sysloghost\":\"") property(name="hostname")
constant(value="\",\"severity\":\"") property(name="syslogseverity-text")
constant(value="\",\"facility\":\"") property(name="syslogfacility-text")
constant(value="\",\"programname\":\"") property(name="programname")
constant(value="\",\"procid\":\"") property(name="procid")
constant(value="\"}\n")
}

我的日志如下所示,其中的换行符标记为\ n

  

[2018-06-07 11:02:33]测试。错误:类'App \ Http \ Controllers \ Deal'   找不到{“ exception”:“ [对象]   (Symfony \ Component \ Debug \ Exception \ FatalThrowableError(code:0):类   找不到“ App \ Http \ Controllers \ Deal”   /app/Http/Controllers/TestingSyslogController.php:13)\n[stacktrace]\n#0   [内部功能]:   App \ Http \ Controllers \ TestingSyslogController-> index()\ n#1   /vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54):   call_user_func_array(Array,Array)\ n#2   /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45):   照亮\ Routing \ Controller-> callAction('index',Array)\ n#3   /vendor/laravel/framework/src/Illuminate/Routing/Route.php(212):   Illuminate \ Routing \ ControllerDispatcher-> dispatch(Object(Illuminate \ Routing \ Route),   对象(App \ Http \ Controllers \ TestingSyslogController),'index')\ n#4   /vendor/laravel/framework/src/Illuminate/Routing/Route.php(169):   照亮\ Routing \ Route-> runController()\ n#5

因此整个消息都在一行{message}

如何使用rsyslog模板将“ \ n”处的消息拆分为不同的对象,使其看起来像这样…… {message line 1},{message line 2},{message line x}

0 个答案:

没有答案