首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以使用syslog从日志中获取UUID吗?

可以使用syslog从日志中获取UUID吗?
EN

Stack Overflow用户
提问于 2016-03-02 20:14:48
回答 1查看 451关注 0票数 0

我将我的日志集中到一个syslog中,我希望从下一个日志中获得UUID,以便将它保存到数据库中。这个是可能的吗?

日志消息如下所示:

3月28日14:14:26 172.17.42.1 1 2016-03-28T08:14:26.912-03:00 0e40cd94516b服务-哥斯拉-中央审计-0c9886fc-ab7f-42A1-8081-5ae6409a066没有在标头找到correlationId。产生了一个。 3月28日14:14:26 172.17.42.1 1 2016-03-28T08:14:26.927-03:00 0e40cd94516b服务-哥斯拉-中央审计-0c9886fc-ab7f-42A1-8081-5ae6409a066 Entrada -控制器- initParameter {"terminalId":3354,“频道”:5,版本:“AU-014”} 3月28日14:14:26 172.17.42.1 1 2016-03-28T08:14:26.927-03:00 0e40cd94516b服务-哥斯拉-中央审计-0c9886fc-ab7f-42A1-8081-5ae6409a066 Entrada -服务-参数{"terminalId":3354,“信道”:5,版本:“AU-014”,“AU-014”,"correlationId":"0c9886fc-ab7f-42a1-8081-5ae6409a0e66"}

EN

回答 1

Stack Overflow用户

发布于 2016-03-30 10:54:44

要获得UUID (0c9886fc-ab7f-42a1-8081-5ae6409a0e66),您可以使用csv解析器将消息拆分为每个空格的列。详情请参见syslog-ng管理员指南-解析带有逗号分隔值的消息。

基本上,您必须创建一个使用空白作为分隔符的csv解析器,并为这些列添加名称(最后一个具有名称的列将包含消息的其余部分)。类似于:

代码语言:javascript
复制
parser p_uuid {
csv-parser(columns("COLUMN1", "COLUMN2", "COLUMN3", "COLUMN4", "COLUMN5", "COLUMN6", "COLUMN7", "COLUMN8" )
     flags(greedy)
     delimiters(" ")
     );

};

然后在日志路径中使用此解析器。尝试将其与文件目标一起使用,在其中使用模板中的列名,以查看何时解析正确。可以将解析的列作为模板中的宏使用,例如:

代码语言:javascript
复制
log { source(s_local);
parser(p_uuid); destination(d_file);};
};

destination d_file {
file ("/var/log/parsed-logs" template("${ISODATE} ${HOST} Col1=${COLUMN1} Col2=${COLUMN2} Col3=${COLUMN3} Col4=${COLUMN4} Col5=${COLUMN5} Col6=${COLUMN6} Col6=${COLUMN6} Col7=${COLUMN7} Col8=${COLUMN8}\n") );

};

如果需要,还可以使用多个解析器解析消息的不同部分(例如,如果需要消息的JSON部分,可以首先使用带有[]分隔符的csv-解析器,这将产生两列,然后在第二列上运行json解析器)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35757204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档