据我了解,流行的系统日志格式是:
RFC 3124 (BSD 系统日志):
格式:< 优先级 >时间戳主机名应用程序:消息
例子:<133>2 月 25 日 14:09:07 web 服务器 syslogd: 重新启动
RFC 5424 (IETF 系统日志):
格式:< 优先级 >版本 ISOTIMESTAMP 主机名 应用程序 PID MESSAGEID 结构化数据 MSG
例子:<34>1 2003-10-11T22:14:15.003Z mymachine.example.com su - ID47 - /dev/pts/8 上的 lonvick 的 BOM'su root' 失败
但是让我们看看其他公司的日志格式:
思科:
例子:*1 月 18 日 03:02:42:%LINEPROTO-5-UPDOWN:接口 GigabitEthernet0/0 上的线路协议状态已更改为关闭
Fortinet(在这里您可以看到键值对中的 syslog。这甚至是 syslog 吗?)
例子:<190>日期 = 2015-03-30 时间 = 14:42:11 logid = 0508020503 类型 = utm 子类型 = emailfilter 事件类型 = smtp 级别 = 信息 vd =“root” sessionid = 83879670 srcip = 12.130.136.122 srcport = 48137 dstip = xxxx dstport = 25 proto = 6 服务 = SMTP 配置文件 =“EF_Example” 操作 = log-only 来自 =[电子邮件保护]“ 至 = ”[电子邮件保护]“发件人=”[电子邮件保护]"收件人="[电子邮件保护]“ sentbyte=15369 rcvdbyte=46 direction=outgoing msg="一般电子邮件日志" subject="趋势科技认证新培训" size="15360" attachment=no
- 那是不是说系统日志格式可以根据自己的需要修改呢?那么如果不同的公司采用不同的系统日志格式,SIEM软件该如何解析这些日志呢?
- 如果不同的公司遵循不同的日志记录实践,那么 RFC 有什么意义呢?
- 我的最后一个问题是,这些甚至是系统日志格式吗?
答案1
简短的回答是:因为 RFC 不会改变 15-25 年内编写的现有代码库。
自 20 世纪 80 年代初期以来,各种 Syslog 格式都得到了开发和使用(据我所知,该概念起源于 sendmail,第一个 syslog 守护进程是4.3 BSD1986 年)。随着 Unix 战争和 BSD 的终结,每个人都可以自由构建他们需要的东西,几乎没有动力去标准化任何东西。最低标准应该是“BSD syslogd 可以处理的所有内容”,即使在那时,许多实现也有意识地偏离了这一标准,例如添加 key=value 或 TCP 支持。
RFC 3164是 2001 年的一个信息性 RFC。它不是规范性的(在“这是 Syslog 而其他的都不是”的意义上),而是采取“看看那里有什么并描述一个小的共同点”的方法。
RFC 5424作为提议的标准,它具有这种规范性方法。但它是 2009 年的,即使在那时,它也只是“另一个可选标准”,因为当时(现在仍然)几乎不可能更改所有现有的和有用的代码。