CDN加速

SysLog日志

更新时间:2020-07-01 19:06:05

SysLog日志

SysLog概念请参考 SysLog

采集点(lmsagent)支持在本地配置TCP端口,接收Syslog Agent转发的日志。采集点(lmsagent)开启TCP端口,接收rsyslog或者其他Syslog Agent通过TCP协议转发过来的Syslog数据,采集点(lmsagent)接收到的数据并转发到日志服务中。采集点(lmsagent)、Syslog、日志服务(lms)三者之间的关系如下图所示。

数据解读|电商狂欢日 安全考验时数据解读|电商狂欢日 安全考验时

SysLog和利用文本文件相比,使用Syslog时日志数据直接收集到采集点(Agent),Syslog不落盘、保密性好,免去了文件落盘和解析的代价。
日志服务采集点(Agent)通过 TCP 端口接收到的数据是流式的,如果要从流式的数据中解析出一条条的日志,日志格式必须满足以下条件:

  1. 每条日志之间使用换行符(\n)分隔,一条日志内部不可以出现换行符。
  2. 日志内部除了消息正文可以包含空格,其他字段不可以包含空格。

Syslog日志格式如下。

$version $syslogtag $timegenerated:::date-unixtimestamp $fromhost-ip [$user-defined-field-1 $user-defined-field-2 $user-defined-field-n] $msg:::drop-last-lf\n"

字段说明

日志字段 含义
version 该日志格式的版本号,日志服务使用该版本号解析user-defined-field 字段。
syslogtag 数据标签,用于查找日志仓库,不可以包含空格和换行符。
timegenerated:::date-unixtimestamp 该条日志的时间戳。
fromhost-ip 该条日志的对应的机器IP,如果日志中的该字段是 127.0.0.1,最终发往服务端的日志数据中该字段会被替换成TCP socket的对端地址。
user-defined-field 用户自定义字段,中括号表示是可选字段,可以有 0 个或多个,不可以包含空格和换行符。
msg:::drop-last-lf 日志消息正文,不可以包含换行符,末尾的 \n 表示换行符。

以下示例日志即为满足格式要求的日志。

2.1 lms 1455776661 10.101.166.127 ERROR com.wangsucloud.syslog.App.main(App.java:17) connection refused, retry