Syslog是一件好事。这是一种基于网络的标准日志记录协议,适用于多种不同类型的设备和应用程序,使它们可以将免费的文本格式的日志福彩三d字谜发送到中央服务器。

基本上,网络上的每台设备(无论是存储盒还是服务器,交换机还是防火墙)都可能具有syslog代理,可用于将福彩三d字谜发送到公共中央位置。

何时使用syslog?

熟悉的人 SNMP协议 协议 可能有点困惑。如果我们已经有SNMP陷阱,为什么需要系统日志?当然,它们都提供相似的功能。

它们都用于将警报和福彩三d字谜发送到中央服务器,而无需进行轮询。一旦事件发生,就可以发送福彩三d字谜而无需等待服务器轮询状态。

最大的不同是SNMP陷阱具有MIB文件中包含的特殊预定义格式。如果交换机上的接口发生故障,则MIB文件将定义“ ifDown”陷阱福彩三d字谜,其中包括有用的信息,例如特定接口。如果您提前知道福彩三d字谜将包含哪些信息,那就太好了。但是有时候你没有。

邮件通知

照片:Pexels

在两种非常重要的情况下,拥有带有预定义福彩三d字谜类型的MIB文件是不切实际的。第一个是最初发明syslog的系统:应用程序警报。

假设您编写了一个内部应用程序来执行某些业务功能。这样的应用程序通常会有大量的日志福彩三d字谜,并且该软件的每个新发行版都可能有许多新福彩三d字谜。为每条福彩三d字谜创建一个新的MIB文件,然后针对每个软件版本将其加载到中央日志记录服务器中,这是不切实际的。 MIB文件将始终落后一两个版本,并且中央服务器将无法解析任何新的福彩三d字谜类型。

第二个重要情况是安全设备的日志福彩三d字谜,例如 IDS(入侵检测系统)。这些系统不断更新以新的签名。这些签名检测到的信息可能差异很大,因此几乎不可能标准化事件福彩三d字谜。许多商业IDS系统都订阅了每天下载新签名的服务。

因此,SNMP陷阱用于定义明确的事件,例如接口重置,尤其是在网络设备上,而syslog事件最适合本质上更通用且更难预测的事件。

syslog福彩三d字谜的自由形式是syslog的最大优势,但这也是syslog的最大问题。很难解析包括数十个事件的日志 来自不同供应商的不同系统 并同时理解它们。哪些福彩三d字谜代表什么功能?哪些代表紧急事件而不是单纯的信息性福彩三d字谜?

为了解决这些问题,syslog协议(在 RFC 5424 )为这些自由格式的福彩三d字谜提供特殊的字段,称为“设施”和“严重性”。

(请注意,RFC 5424是syslog的标准,但并非所有syslog实现都符合RFC5424。syslog协议已经存在很长时间了,并且仍在使用一些标准前的实现。)

严重性和设施代码是什么?

严重性值易于理解。它包含一个介于0到7之间的数字,表示福彩三d字谜的重要性。

数值代码 严重程度 含义
0 紧急情况 系统无法使用
1 警报 必须立即采取行动
2 危急 临界条件
3 错误 错误条件
4 警告 警告条件
5 注意 正常但状况显着
6 信息性 信息性福彩三d字谜
7 除错 调试级福彩三d字谜

实际上,通常不会看到紧急福彩三d字谜,因为如果系统严重损坏,则可能无法发送福彩三d字谜。而且您可能不希望在日志中看到调试福彩三d字谜,因为调试福彩三d字谜太多了,并且对于操作目的而言,它们几乎不重要。因此,典型的生产系统通常会将日志记录级别设置为5或6。发送系统可能会保留不太严重的邮件的本地副本,但不会将其发送到中央服务器。

设施代码需要更多说明。 syslog服务器软件的早期实现通常只是将进入的福彩三d字谜转储到一个或多个日志文件中。服务器系统使用设施代码将相关福彩三d字谜分类到同一文件中。现代的syslog实现只是将所有福彩三d字谜都转储到一个公共数据库中,并将设施代码简单地用作许多可能的搜索键之一。

设施代码也是数值,在下表中列出。请注意,它们中的许多都是非常特定于系统的,在许多情况下,这些系统已不再使用。这些是RFC 5424中定义的功能代码,与BSD Unix使用的功能代码有些不同。差异主要是出于历史的好奇心,实际上对于大多数目的而言并不是那么重要。

数值代码 设备名称 用法
0 内核福彩三d字谜 Unix内核
1 用户级福彩三d字谜 用户应用程序警报
2 邮件系统 Unix邮件
3 系统守护程序 Unix系统进程
4 安全/授权福彩三d字谜 Unix认证/授权福彩三d字谜
5 syslogd内部生成的福彩三d字谜 Syslog流程本身
6 行式打印机子系统 Unix行式打印机
7 网络新闻子系统 Unix“新闻”系统
8 UUCP子系统 Unix到Unix复制协议
9 时钟守护程序
10 安全/授权福彩三d字谜
11 FTP守护进程
12 NTP子系统
13 日志审核
14 日志警报
15 时钟守护程序
16(local0) 本地使用0
17(local1) 本地使用1
18(local2) 本地使用2
19(local3) 本地使用3
20(本地4) 本地使用4
21(本地5) 本地使用5
22(本地6) 本地使用6
23(本地7) 本地使用7

请注意,其中许多设施代码是特定于古老的旧版Unix系统的。例如,没有人真正使用过UUCP。这是在服务器之间自动复制文件的异步方式,只能通过模拟拨号来交换数据。

设施代码和严重性代码显示在每个系统日志福彩三d字谜的开头,并用尖括号括起来。例如, ”<166>”表示严重性为6的“ local0”功能福彩三d字谜。

如今,大多数网络设备将使用“本地”代码之一作为其系统日志福彩三d字谜。默认, 思科ASA防火墙 将使用设备代码20(local4),而大多数Cisco交换机和路由器将使用代码23(local7)。这些代码的存在纯粹是为了方便syslog服务器将传入福彩三d字谜分类为有用的类别。大多数人不需要更改它们,因为如前所述,在现代syslog实现中,设施代码只是用于搜索福彩三d字谜数据库的许多可能的键值之一。

syslog如何传输?

发送系统日志福彩三d字谜有两种常用方法。尽管RFC 5424要求所有系统日志实现必须支持基于TCP的加密TLS网络传输,但是大多数系统日志福彩三d字谜仍使用较旧的UDP方法传递。

在UDP版本中,将福彩三d字谜简单地放入UDP数据包的数据部分,然后通过UDP端口514发送到服务器。每个福彩三d字谜通常都适合单个数据包。 UDP是无状态且无会话的,因此无需确认。数据包只是发送到网络中。这个问题很明显,任何网络问题都可能阻止数据包的传递,在这种情况下,您可能不知道网络已关闭,因为它无法告诉您。这也意味着有时重要的数据包在传输过程中可能会丢失或损坏。

系统日志传输

照片:Unsplash

关于UDP syslog传输,要记住的另一重要事项是它未加密。因此,数据包可以被拦截和读取,甚至可以相对容易地伪造。因此,永远不要建议通过公共互联网发送UDP syslog数据包,除非它们也通过隧道传输到 加密的VPN 某种。

幸运的是,还有一个基于会话的加密的syslog传输版本,该版本使用TLS进行安全保护。这使用TCP端口6514和与HTTPS相同类型的证书进行身份验证。

因为TCP是基于会话的,所以远程设备将打开与服务器的TCP会话,并在传递所有排队的福彩三d字谜时通常将其保持活动状态。对于像防火墙这样的设备,它发送大量的syslog福彩三d字谜,这可能意味着长时间的持续连接。

该方法具有几个关键优势。首先,由于会话是加密的,因此无法在飞行中读取它们。其次,由于每台设备都有唯一的证书,因此服务器可以验证该设备的真实身份,从而防止伪造邮件的伪造。第三,由于会话是基于TCP的,因此可以保证每条福彩三d字谜的传递,并且不会丢失,并且如果福彩三d字谜在传输过程中丢失或损坏,则可以重新传输它们。

但这也有一些缺点。如果中央服务器正在接受来自大量设备的福彩三d字谜,则由于同时进行的TCP连接数量众多,中央服务器可能会遭受资源问题的困扰。配置也更加复杂。


现在,我们已经介绍了什么是syslog。在下一篇文章中,我将向您展示如何在Cisco设备上同时启用UDP和TLS系统日志版本。