当前位置:文档之家› syslog协议

syslog协议

RFC3164 - The BSD Syslog Protocol

文档状态

本文档提供了互联网委员会的信息。它不指定任何一种网络规范。对本文档的发布是不受限制的。

摘要

本文描述了syslog协议的实测行为。本协议在互联网上已经使用了很多年,是用来传送事件通知信息的。最初,这个协议在University of California Berkeley Software Distribution (BSD) TCP/IP系统实现中开发,它的实现和管理价值在于,它可以让不同系统相互通信,同时可以嵌入其他网络产品中。

目录

1. 概述

从一开始,生命依赖于信息的传递。对于有自我意识的有机物单位来说,这些信息可以传达很多信息。可能表示危险,食物或其他生命的必需品,以及其他东西。在很多情况下,这些信息被传递到其他个体中,不需要任何应答。和人类交流和创建的过程一样,这些简单的道理同样适用于社会联系。例如,严重的气象预报可能由很多频道同时播出,一场飓风的将保通过电视和电台以及船上的旗语同时传递。在大多数情况下,不对这些警告信息进行任何应答是需要的,或者是期望的。遵循同样的原则,操作系统,进程和应用程序都会发送自己状态的信息,或表示某种事件发生的信息。这些事件信息对于机器操作者通常是很重要的。当操作系统,进程和应用程序变得越来越复杂后,系统开始致力于将这些信息进行分来和日志记录,同时可以让操作人员更快速的从简单的状态信息中区分出问题的通知。Syslog进程是这种系统中被很多操作系统广泛接受的。这个进程的灵活性可以让操作人员配置发送从哪台机器的进程中发出。从一个方面来说,syslog进程接受到的信息可以保存在不同的文件中,同时在设备的控制台进行显示。从另一个方面来说,syslog进程可以通过配置将信息转发到网络中的另一台syslog进程中。Syslog进程对少量事件可以进行网络提醒,因为它知道很多系统操作员没有时间访问系统来查看注册在这里的信息。运行在远程设备上的Syslog进程,可以配置成为将信息加入文件中,或继续转发到其他机器中。

用最简单的话将,syslog协议提供了一种让机器通过IP网络将信息发送通知信息到事件接收器(syslog服务器)的功能。因为每一个进程,应用程序和操作系统是分开开发的,syslog 的信息的内容大多都是不同的。正因为这个原因,组成信息的内容没有任何假设。这个协议只是简单的传递这些信息。在任何情况下,有一个设备发出消息。那台机器上的Syslog进程可能将信息发送给收集器。不需要任何应答。

Syslog协议和进程的基本原则是它的简单性。在发送者和接收者之间不需要协调。实际上,syslog信息的发送者可以在接收者没有配置好或根本不存在的情况下进行发送。相反,很多设备会在没有任何配置和定义的情况下收到消息。这种简单性让syslog更容易接受和部署。

1.1. 事件和生成的消息

操作系统,进程和应用程序的编写者完全清楚他们将生成的事件。在某些情况下,生成消息用来说明状态。可以是一段时间一次,也可以由其他方式触发,例如在程序退出时。在其他情况下,消息是由遇到的条件产生的。在这些情况下,不管是状态消息或者包含一些类型的警告都可能被产生。操作系统、进程和应用程序的编写者可能会在详单中确定消息的数量。这些详单中通常包括发出消息的设备,同时包含消息的严重级别。这样,操作员可以有选择的筛选消息,可以更快的定位更加重要的和有处理时间限制的消息,同时可以将状态或消息信息放在文件中,将来阅读他们。其他显示和保存信息的方式也可以存在。

必须在设备中配置一些规则,这些规则可以告诉设备显示还是转发事件消息。这些规则是十分灵活的。管理员可能希望所有的信息都保存在本地,同时所有高优先级的消息都会转发到另一台设备中。他们可能发现,将某些设备的信息发送到一些或所有用户的设备中,同时显示在系统控制台上是很合适的。然而,管理员决定将事件信息发送到syslog收集器中,在收集器中包含了组成设备的信息以及发送的严重级别,同时定义了远程接收器。例如,系统管理员可能想让所有由邮件设备发出额消息被转发到一个特定的事件信息收集器中。管理员还可以让所有内核生成的事件信息被发送到另一台syslog接收器中,同时,将内核产生的critical 严重级别的消息发送到第三天设备中。同时,将显示在系统控制台中的信息email给部分用户,同时将他们保存在设备本地磁盘的文件中。反之,可以将本地进程产生的消息显示在控制台中,但不保存也不转发。所有事件的规则都在设备中生成。因为管理员知道收集器会收集到哪种类型的事件,他们会在syslog服务器中配置相应的规则。

消息的内容因创建者而异。建议将消息按照一定格式编写,这样人们就可以阅读他们。在消息中加入时间戳和发出消息的设备以及进程的标识符是一个很好的建议。但他们都不是必须的。

假设任何进程和设备都有可能产生事件消息。可能包含没有任何本地存储空间的设备,例如,打印机,路由器,集线器,交换机以及无盘工作站。在这种情况下,事件消息必须被发送到收集器中,同时必须别记录这样操作员就可以查看了。

1.2. 消息接收者的操作

定义当消息接收到之后如何处理超过了本文的范围。和1.1节的描述一样,他们通常展示被部分用户,保存在磁盘中,再次转发或是上述操作的组合。决定接收到消息如何处理的配置和本地生成消息如何处理的配置是同样的。

作为一个非常普遍的规则,通常是很多设备将消息发到相关的少数收集器中。这种扇入操作允许管理员在相关的少数仓库中汇总信息。

2. 传输层协议

Syslog使用用户数据报(UDP)作为底层传输层协议。Syslog的UDP端口为514。如果消息是由syslog进程发出,建议源端口也是514,不是514也是合法的。如果发送者使用比514大的端口号,那么建议接下来的其他消息也由这个端口发出。

3. 架构定义

本文中将使用如下定义:

l 生成消息的设备被称作“device”。

l 可以接收消息的设备又将消息转发给了其他设备,称作“relay”。

l 接收消息但不进行转发的设备称作“collector”。通常称作syslog服务器。

l 发出消息或转发消息的设备被称作“sender”。

l 任何接收消息的设备,包括转发或收集都称作“receiver”。

设备的架构可以分为以下几点:

1. 发送者发出消息时不知道接收者是collector还是relay。

2. 发送者可以配置成将同一个消息发送给多个接收者。

3. relay可以发送所有从上一个relay或collector收到的消息。某些情况下他们不转发所有信息,他们同时作为collector和relay。在下图中,一些设备被定义成relay。

4. relay可以生成自己的消息,同时将他们发送给下一个relay或collector。这种情况下,他们作为device。这些device同时被定义为下图中的relay。

图1中描述的架构在第一个知道最后一个的时候是合法的。这些例子的其他组都是可接受的。在下图中,所有的relay都可以透传一些或所有他们接收到的消息。

+------+ +---------+

|Device|---->----|Collector|

+------+ +---------+

+------+ +-----+ +---------+

|Device|---->----|Relay|---->----|Collector|

+------+ +-----+ +---------+

+------+ +-----+ +-----+ +---------+ |Device|-->--|Relay|-->--..-->--|Relay|-->--|Collector| +------+ +-----+ +-----+ +---------+

+------+ +-----+ +---------+

|Device|---->----|Relay|---->----|Collector|

| |-\ +-----+ +---------+

+------+ \

\ +-----+ +---------+

\-->--|Relay|---->----|Collector|

+-----+ +---------+

+------+ +---------+

|Device|---->----|Collector|

| |-\ +---------+

+------+ \

\ +-----+ +---------+

\-->--|Relay|---->----|Collector|

+-----+ +---------+

+------+ +-----+ +---------+

|Device|---->----|Relay|---->-------|Collector|

| |-\ +-----+ /--| |

+------+ \ / +---------+

\ +-----+ /

\-->--|Relay|-->--/

+-----+

Diagram 1. Some Possible syslog Architectures

4. 包结构和内容

所有目的端口为514的UDP报文都是syslog消息。原来的syslog消息和转发的syslog消息可以不同。其实,建议按照本文中描述的格式发送syslog消息报文,但不是必须的。如果relay 可以识别消息,在转发时不能进行任何修改。然而,如果relay收到消息后不能正确解析消息,那么它可以在重传之间按照自己的格式进行修改。4.1节中将会描述syslog消息推荐的格式。4.2节将描述源消息,4.3结描述relay的消息的需求。

4.1. Syslog消息部分

Syslog的完整格式由三个可识别的部分组成。第一部分是PRI,第二部分是HEADER,第三部分是MSG。报文的总长度必须是1024字节之内。Syslog消息的最小长度没有定义,但发送一个长度为空的消息是没有意义的。

4.1.1. PRI

PRI必须是三个,四个或五个字符,并且第一个和最后一个字符是尖括号。PRI部分以“<”开始,接着是数字,最后是“>”。数字的编码必须是7位ASCII格式。这里的ASCII码是“USA Standard Code for Information Interchange”。在这里,“<”字符被定义成(ABNF)格式“%d60”,同时,“>”字符定义成ABNF “%d62”。尖括号中间的数字是优先级,表示前文描述的设备和严重级别。优先级由1,2或3个数字组成,使用%d48表示0到%d57表示9。

消息的设备和优先级都编码成十进制数字。一些操作系统守护进程和进程已经有设备编号了。没有可用显示编号的进程和守护进程使用本地设备或用户级别的设备。这些设备的编号如下表所示。

Numerical Facility

Code

0 kernel messages

1 user-level messages

2 mail system

3 system daemons

4 security/authorization messages (note 1)

5 messages generated internally by syslogd

6 line printer subsystem

7 network news subsystem

8 UUCP subsystem

9 clock daemon (note 2)

10 security/authorization messages (note 1)

11 FTP daemon

12 NTP subsystem

13 log audit (note 1)

14 log alert (note 1)

15 clock daemon (note 2)

16 local use 0 (local0)

17 local use 1 (local1)

18 local use 2 (local2)

19 local use 3 (local3)

20 local use 4 (local4)

21 local use 5 (local5)

22 local use 6 (local6)

23 local use 7 (local7)

Table 1. syslog Message Facilities

Note 1 - Various operating systems have been found to utilize Facilities 4, 10, 13 and 14 for security/authorization,

audit, and alert messages which seem to be similar.

Note 2 - Various operating systems have been found to utilize both Facilities 9 and 15 for clock (cron/at) messages.

每个消息优先级有一个十进制的严重级别编号。如表所示:

Numerical Severity

Code

0 Emergency: system is unusable

1 Alert: action must be taken immediately

2 Critical: critical conditions

3 Error: error conditions

4 Warning: warning conditions

5 Notice: normal but significant condition

6 Informational: informational messages

7 Debug: debug-level messages

Table 2. syslog Message Severities

优先级是设备编号乘以8,然后加上严重级别。例如,内核消息(设备编号为0),和紧急严重级别(级别0)的优先级是0。这样,本地用户消息(设备编号20)和通知级别(级别5),得到的优先级是165。在syslog消息的PRI部分中,这些值被包含在尖括号中,例如<0>和<165>。只有一种情况,当0跟着<时,表示优先级为0。其他情况,不能以0开头。

4.1.2. Syslog报文的HEADER部分

HEADER部分包含时间戳以及设备的主机名或IP地址。Syslog的HEADER部分必须使用可见(可打印)的字符。字符集必须使用PRI中的ASCII字符集。在这些字符集中,唯一允许的字符集是ABNF VCHAR值(%d33-126),以及空格(%d32)。

HEADER中包含连个字符安,称作TIMESTAMP和HOSTNAME。TIMESTAMP紧跟着PRI中的“>”。TIMESTAMP和HOSTNAME之间用一个空格分隔。HOSTNAME包含主机名。如果没有主机名,将会包含主机的IP地址。如果设备有多个IP地址,将会使用发送数据的IP地址。两者可以选一个发送。在这种情况下,device可能被配置成使用一个源IP发送所有的消息,不管消息实际从哪个接口发出。这种方式为所有的消息的HOSTNAME字段提供了一致性。

TIMESTAMP是本地事件,格式是“Mmm dd hh:mm:ss”:

Mmm是月份的英文缩写,以一个大写的M开始,两个小写的m结束。取值如下:

Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec。

dd是一个月中的天数。如果小于10,必须表示成空格然后是数字。例如8月的第七天表示成为“Aug 7”,其中g和7之间有两个空格。

hh:mm:ss是本地时间。小时表示成为24小时的格式,合法值是00到23。分钟和秒是00到59。

在TIMESTAMP之后需要有一个空格。

HOSTNAME字段包含发送者的主机名或IP地址。最好的名称是主机名。如果使用主机名,HOSTNAME字段必须包含STD 13中描述的主机名。其中不能包含任何空格主机名不能包含在HOSTNAME字段中。如果使用IPv4地址,必须是点分十进制。如果是IPv6格式,使用RFC 2373中的格式。HOSTNAME字段之后也必须有一个空格。

4.1.3. Syslog报文的MSG部分

MSG部分是syslog报文的剩余部分。通常它包含生成这个消息进程的其他信息,以及消息

的文本内容。这部分没有结束分隔符。Syslog报文的MSG部分必须包含可见的(可打印)的字符。通常使用和PRI以及HEADER部分一样的ASCII字符集。在这个字符集中,允许的字符是ABNF VCHAR(%d33-126)以及空格(SP value %d32)。然而,在MSG中使用的字符集既没有指定,也不是期待的。可以使用其他的字符集,只要这些字符集中的包含上文描述的可见字符和空白字符即可。包含不可见字符集的消息不能被展示,也不能被接收者理解,不会给操作员或管理员任何信息。

MSG部分有两个字段,分别是TAG和CONTENT。TAG字段的值是产生消息的程序或进程名称。CONTENT部分包含消息的湘西信息。通常是开放格式的消息,包含事件的一些详细信息。TAG是32个字符之内的ABNF数字字母字符集。任何非数字字母的字符会被当作TAG 字段的结束标记,并且这个字符会当作CONTENT字段的开始。CONTENT字段的第一个字符表示TAG字段的结束,通常是方括号“[”,冒号“:”或者空格。在5.3节中有详细描述。

4.2. 设备原生的syslog报文

从设备发出syslog报文时,对内容没有任何需求。需要重申的是,任何UDP 514端口的IP 报文,都要当作合法的syslog报文。建议syslog报文有4.1节描述的所有部分-PRI,HEADER 以及MSG,这样可以让接收者更容易读懂,并且减少了relay修改消息的需要。

要生成推荐格式的syslog消息,请遵循下述指导:

l 如果最初的消息的HEADER部分含TIMESTAMP,这个字段的内容应该是device时区的本地时间。

l 如果最初的消息有HOSTNAME字段,需要包含它自己知道的主机名。如果没有主机名,需要包含自己的IP地址。

l 如果最初的消息有TAG字段,这个字段应该是生成消息的程序或进程的名称。

4.3. 转发的syslog报文

转发一个报文时,需要校验PRI是否合法。如果第一个字符不是小于号,这个relay必须认为这个报文没有包含合法的PRI。如果第三个,第四个或第五个字符不是友尖括号,relay必须认为原生报文中不包含PRI字段。如果relay找到了合法的PRI,那么它必须校验HEADER 报文中的TIMESTAMP字段。按照上述规则,对于收到的消息,有三种处理方式。表3描述了这些可能性的一般特征以及如何处理这些消息。

Case Section

Valid PRI and TIMESTAMP 4.3.1

Valid PRI but no TIMESTAMP or invalid TIMESTAMP 4.3.2

No PRI or unidentifiable PRI 4.3.3

Table 3. Cases of Received syslog Messages

4.3.1. 合法的PRI和TIMESTAMP

如果relay发现了合法的PRI和合法的TIMESTAMP,那么会校验它自己内部的配置。Relay必须配置成根据syslog报文的优先级进行转发。如果relay根据配置发现需要转发报文,那么必须在不对报文进行任何修改的情况下进行转发。为了强调这一点,建议原生的syslog消息遵循4.1节中描述的格式。

需要注意的是,消息接收者不需要校验TIMESTAMP的字段。这种假设在一个设备没有正确设置时间的时候仍然可以发送合法的syslog消息。另外,relay不需要校验HOSTNAME字段的主机名和IP地址是否和发送消息的主机一直。原因可以在4.1.2节中找到。

4.3.2. 合法的PRI但没有TIMESTAMP或TIMESTAMP不合法

如果relay在syslog报文中没有发现合法的TIMESTAMP,它必须在PRI之后添加一个TIMESTAMP以及空格。同时应该在TIMESTAMP之后加上HOSTNAME和空格。这些字段在4.1.2节中有描述。收到报文的剩下部分必须当作MSG部分的CONTENT字段以及填充字符。因为relay不知道设备中发出报文的进程,所以不需要包含TAG字段。

TIMESTAMP字段必须是relay的本地时间。

HOSTNAME字段是relay知道的设备名称。如果不知道,就使用设备的IP地址。

如果relay在PRI部分之后添加了TIMESTAMP或者是TIMESTAMP和HOSTNAME,必须检查报文的长度是否小于或等于1024字节。如果报文超过1024字节,必须截断到1024字节。这样可能丢失原有报文中的重要信息。所以建议在原生的syslog报文中就加上PRI和HEADER 部分,这些字段在4.1节中描述。

4.3.3. 没有PRI或没有可识别的PRI

如果relay收到了没有PRI或不可识别PRI的报文,必须插入优先级为13的PRI以及4.3.2节中定义的TIMESTAMP。Relay中应该同时插入4.3.2节中描述的HOSTNAME。收到的整个报文的内容都被当作MSG部分的CONTENT字段以及填充字符。

例如,一个不可识别的PRI可能是“<00>”。可能是消息的头4个字符。继续这个例子,如果relay收到一个syslog消息,前4个字符是<00>,那么将会使用这种配置。如果它将优先级为13的syslog消息传递到了另一个relay或collector,必须按照上述要求修改报文。做这件事的详细信息,包括插入HOSTNAME,在下面进行描述。

Originally received message

<00>...

Relayed message

<13>TIMESTAMP HOSTNAME <00>...

如果relay在PRI之后添加了TIMESTAMP或TIMESTAMP和HOSTNAME,必须校验报文的长度是否超过1024个字节。如果报文超过1024个字节,必须进行截断。这样会导致丢失报文后面的重要信息。所以建议生成syslog报文时就加上PRI和HEADER部分。

5. 转换

在第4部分中描述了syslog协议的格式和内容的要求,经过了长期的修改,需要进行一些转换。这些条目不是强制的,但最好作为实现的补充,给与接收者一些额外的补充。

5.1. 日期和时间

有些网络管理员喜欢压缩保存很长一段时间的syslog消息。一些原生的syslog消息包含了明确的时间戳,它的年字段是2个或4个字符的,紧接着这个字段的是TIMESTAMP的空格结束符。排序和格式化这个字段会遇到这个一致性的问题。如果实现者想在发送的消息中增加更详细的日期和时间戳,应该包含在CONTENT字段中。实现者可能希望使用ISO 8601的日期和时间格式,如果您想包含更精确的日期和时间信息。

已经提出了其他的长期压缩方法,其中的一部分有成功的案例。一种方式是网络管理员修改collector保存的信息。可以通过运行一个简单脚本的方式为每一条记录添加年和其他信息。另外,管理员可以定义脚本替换时间的格式。另一种方法是将消息保存到文件中的时候包括当前的年份。关联的方式是,这个记录相邻的所有其他记录都保存相同的年份。以上两种方法都需要为每个记录关联当前时区。

5.2. 域名和地址

要容易的识别产生消息的device,一个好的方法是在CONTENT字段中包含完整的域名(FQDN)和IP地址。通常,只有HOSTNAME字段中包含了域名。

5.3. 产生消息的进程信息

一个很好的方法是当设备产生消息时,包含一些关于进程的信息,如果这个概念存在的话。一个健壮的操作系统,通常都有进程名称和进程ID。通常,进程名称在TAG字段中展示。通常,附加信息被存放在CONTENT字段的开始。格式是TAG[pid]。左边的方括号用来结束TAG字段,这种情况下,第一个字符在CONTENT字段中。如果进程ID不重要,就忽略。这种情况下,在TAG字段后面通常是一个冒号和空格,例如“TAG: ”。这种情况下,冒号就是CONTENT字段的开始。

5.4. 示例

例如,在两个连接的机器之间发现了一个合法的消息。在下面的例子中,每一个消息都是犬牙交错的,文档中使用行分隔符使得消息更可读。

Example 1

<34>Oct 11 22:14:15 mymachine su: 'su root' failed for lonvick

on /dev/pts/8

这个例子展示了在尝试得到额外信息时出现了一个认证错误。同时展示了用户尝试的命令。这是从mymachine这台机器中发出的一个简单消息。如果relay收到这个消息,将在发送前不会做任何修改,只要它包含合适的PRI部分,HEADER 部分中包含TIMESTAMP字段。这个例子中TAG值是进程名称“su”。冒号结束了TAG字段,它是CONTENT字段的开始。在这种情况下,进程id认为是短暂的,并且任何查看这个syslog消息的用户不会从进程id中的得到任何有用的信息。正因为没有包含进程id,所以CONTENT字段的前两个字符是冒号和空格。

Example 2

Use the BFG!

这也是一个合法的消息,很不寻常,也没有用处。这个消息没有任何可辨识的PRI部分。没有包含时间戳和任何关于消息源的信息。当这个消息保存在纸上或磁盘中时,以后再看这个消息时将不会从中了解任何东西。

这个例子显然是从device中发出的原生消息。Relay必须在转发之前对消息进程修改,修改的方法在4.3节中描述。最终relay转发的消息如下:

<13>Feb 5 17:32:18 10.0.0.99 Use the BFG!

在relay的消息中,整个报文被当作MSG部分的CONTENT字段。首先,添加一个合法的PRI,优先级是13。然后,加入一个时间戳,之后是HEADER部分的HOSTNAME字段。最后,relay

不会再对消息进行任何深入的修改。注意,每月的天数小于10。因为,TIMESTAMP的格式中,单独的5之前有一个空格,所以在TIMESTAMP中月份后面有两个空格。同时,relay不知道发出消息的主机的任何信息,所以在HOSTNAME字段中添加了设备的IP地址。

Example 3

<165>Aug 24 05:34:00 CST 1987 mymachine myproc[10]: %% It's

time to make the do-nuts. %% Ingredients: Mix=OK, Jelly=OK #

Devices: Mixer=OK, Jelly_Injector=OK, Frier=OK # Transport:

Conveyer1=OK, Conveyer2=OK # %%

这个消息有一个合法的PRI,优先级表示它定义了一个本地的设备,级别是提示。HEADER 部分有一个合适的TIMESTAMP字段。Relay在发送这个消息之前不会进行修改。然而,HOSTNAME和TAG字段和第4部分的定义不一致。HOSTNAME字段是CST,MSG部分的开始是1987。包含在这个例子中CONTENT字段不是遥感勘测额数据,也不是管理或获得数据。根据第6部分列出的安全考虑,消息的种类不能在协议中传送。

Example 4

<0>1990 Oct 22 10:52:01 TZ-6 https://www.doczj.com/doc/426579208.html, 10.1.2.3

sched[0]: That's All Folks!

这个例子中有许多额外的信息。人和自动化的解析器可以识别其中的日期和时间,一个完全的域名和IP地址。这个信息中包含的事件的实质是很少的。根据这个事件的严重级别,进程不能收集和发送更详细的信息。收集和发送出这些信息已经很不错了。

这个例子很显然是从一个设备中产生的。因为HEADER部分的第一个字段不是4.1.2节中定义的TIMESTAMP,它会被relay修改。Relay会添加TIMESTAMP并且应该随后添加HOSTNAME,

同时将PRI部分的之后的整个部分从原有报文中取出,封装在新报文中。HOSTNAME字段使用的主机名,relay不知道域名。TAG值不会添加在转发的报文中。在原有报文中包含域名和IP地址是一个很好的尝试,但和4.1.2节中描述的格式不符。

<0>Oct 22 10:52:12 scapegoat 1990 Oct 22 10:52:01 TZ-6

https://www.doczj.com/doc/426579208.html, 10.1.2.3 sched[0]: That's All Folks!

6. 安全考虑

名声可以看作是一个消息,不需要任何应答。人们避免坏名声,被好的名声吸引。收到名声或气味不需要应答,事实上它应该更加谨慎,完全忽略一些名声。另一方面,对从厨房里飘出来美味的食物进行应答是有礼貌的。类似的,很多五种使用气味吸引异性。一种蛾子使用气味找到同伴。然而,蜘蛛可以仿造这种雌性蛾子的气味。这种气味会吸引雄性蛾子。当他们达到气味的源头时,会被吃掉。这是有敌意的发送错误消息。

在本地使用中,syslog进程将每一个事件通知保存在系统中的文件中。这依赖于系统对消息完整性的保护。随后,将syslog进程配置成为向远程collector发送消息作为事件通知的一部分,这样显示了网络同样的信任情况。由于syslog的简单性,会产生很严重的后。,同时,在需要可信传输的过程中,需要考虑一些适用性。根据以上类比,计算机事件消息是突然的,错误的,甚至是有敌意的。最后,到现在为止,没有报道着一台设备吃了另一台设备。

6.1. 报文变量

如上文描述,消息的长度不能超过1024个字节。攻击者发送长于1024字节的报文。在一些老版本的syslog中,收到超过1024个字节的报文会出现错误。Syslog消息接收者在收到超过1024字节的报文后不能出现故障。在收到超过1024个字节报文后可以有很多行为。一些是将整个报文记录到日志中,其他的是将一部分记录到日志中,还有人直接丢弃报文。当设备收到超过1024个字节的报文后,不能重传。

类似的,接收者必须严格的校验消息内容。Syslog collector不能在收到小于或大于一个合法的优先级值后出现问题。如果要转发,必须将报文当作没有格式的CONTENT字段。

同时,消息中必须包含第4节中描述的可打印文本。收到其他字符时,不能出错。

6.2. 消息真实性

Syslog发送机制在发送者和接收者之间没有强制关联。接收者不知道消息是不是确实是从发送者那里发出的还是从另一台机器中恶意伪造的。注意,接收者不需要校验HEADER部分的HOSTNAME是否和报文源IP地址中的IP地址一直。

6.2.1. 认证错误

这种行为的一个后果就是一台配置错误的机器向collector发送syslog消息,而这个消息被认为是另一台机器发出的。管理员会因为消息没有反应精确的状态而感到疑惑。管理员不能立即发现有两个或两个以上的机器被当作了同样的机器。

同时值得注意的是,有时填充HEADER部分的HOSTNAME字段可能只在本地有意义,并且只是短暂的。如果设备使用DHCP协议获得IP地址,那么这个标识符和实际的发送源的关联关系不一定是真的。在CONTENT部分中包含完整的域名可以让管理员更容易的知道每一个消息的源头,如果每台机器都有唯一的IP地址,也可以关联IP地址。

6.2.2. 伪造消息

还要注意恶意的伪造情况。一个攻击者可能向collector发送syslog消息。这种情况下,攻击者可能隐藏在许多真实消息之间攻击。例如,攻击者可以在伪造消息中指明一些主机的一些错误信息。系统管理员会花费精力去处理这些所谓的错误。在这段时间里,攻击者可能攻击另一台机器或这台机器上的另一个进程。同时,攻击者可能生成错误的syslog消息,包含不真实的状态和事件。例如,攻击者可以终止机器中的关键进程,但生成一个通知级别的消息。攻击者接下来可以生成进程被重启的虚假消息。系统管理员会收到错误的信息,不能确定进程是否真的被重启了。

6.3. 有序传送

作为一般规则,辨别网络异常需要依赖于事件序列的重建。在理想世界中,syslog collector 收到其他设备发送的消息都有正确的顺序。不幸的是,syslog进程和协议不能确保按顺序传送。本节讨论这种情况带来的可能问题。

6.3.1. 单一源和单一目的地

Syslog记录通常以接收到的顺序记录。这通常不是消息发生的顺序。因为他们在IP网络中传送,可能发生顺序的变化。这可能导致一些误解,例如先收到进程终止的消息,然后再收到进程启动的消息。如果消息源在消息中加入时间戳或序号,可以解决这个问题。这种情况下,发送设备需要使用官方的时间。需要注意的是,不是所有设备都可以收到时间更新,不是所有设备在消息中添加时间戳。

6.3.2. 多个源一个目的地

在syslog中,没有统一的事件编号概念。单一设备可以自由的在CONTENT中加入序列号,但多个设备不能这样。在这种情况下,多个设备可能都发送编号为1的消息。再一次的,这种问题可以通过在报文中包含使用官方源的时间戳解决。即使这样,单一设备和单一接收器的顺序都有可能出错。这种情况是在有多个设备被配置成为向单一collector发送消息时出现。一个设备发出的消息可能被延迟,这样collector先收到第二台设备的消息,但实际上,是第一台设备先发出消息的。如果没有时间戳或序列号,消息只能以收到的时间进行排序,这样得到的结果就不是正确的。

6.3.3. 多个源和多个目的

网络管理员可以的过多配置可能导致事件的顺序出错。可能可以配置一组设备,向一个collector发送info级别的消息,于此同时向另一个collector发送更高级别的消息。同时,消息可以记录在一个collector的不同文件中。如果消息中没有包含源头的时间戳,那么如果消息的顺序不正确,就不能为消息进行排序。管理员不能确定一个文件中的一条记录是否早于另一个文件中的另一条记录。在所有的目标文件中加入时间戳可以在一定程度上缓解这个问题。如果有相关的时间戳,每一个消息就有接收到的时间记录。

6.3.4. 转发

没有任何表示或记录,消息会被记录,并随后被转发。攻击者可以记录一组消息,了解机器的活动情况。然后,攻击者可以从网络中删除这台机器,但向collector转发syslog消息。计算在HEADER部分有TIMESTAMP字段,攻击者也可以记录报文,并且在重传之前轻易的修改它,用以反映现在的时间。管理员在收到报文后不会发现任何问题。

6.4. 可信传输

Syslog进程和协议中都不确保可信传输,因为传输层是UDP,所以一些报文会丢失。他们可能在网络阻塞时被丢弃,也可能因为受损被丢弃。丢失一个或多个消息不能被检测出来。如果消息是简单的状态更新,那么没有接收到也不会有什么影响,或者会造成系统操作员疑惑。另一方面,如果消息很重要,管理员就不能知道潜在的问题。消息可能被攻击者解析并丢弃,用来隐藏未授权的活动。

6.5. 消息完整性

除了丢弃之外,syslog消息可能在传输过程中被损坏,攻击者可能恶意的修改。在包含syslog 消息的报文可能被破坏的情况下,在链路层到IP层以及UDP协议中都有检测破坏的方法。路由器可以丢弃受损的IP报文。UDP接收模块可以丢弃受损的UDP报文,他们都是静默的丢弃。在上述情况下,原来的消息内容不能传送到collector。同时,如果攻击者位于发送者和接收者之间,可能在消息传送的过程中解析并修改消息,用以隐藏未授权的活动。

6.6. 消息观察

没有关于时间消息格式的严格要求,大多数syslog消息都是人类可读的格式,这样管理员可以阅读他们并知道含义。Syslog协议和syslog程序都没有提供报文传送的加密特性。大多数情况下使用明文对于操作员来说是合适的,如果管理员使用嗅探器。操作员可以读取消息,并且将他们和其他报文关联,定位和纠正错误。不幸的是,攻击者也可以查看syslog消息中的内容。攻击者可以使用从消息中获取的知识来攻击一个计算机或进行其他破坏。

6.7. 消息排序和区分

当进程创建消息时,会根据消息的优先级判断事件的严重性,这个值和报文发送的重要性无关。例如,假设一个应用程序生成两个事件消息。第一个是一般级别的消息,但第二个是一个严重级别的消息,表明进程出现了一个错误。第二个消息有一个关于事件的高的严重级别。如果操作员配置将两个事件都发送到syslog收集器中,它们将轮流使用UDP进行发送。在一般情况下,它们之间的发送顺序没有区别。

再次,在一般的情况下,接收者将会接收它收到额消息。如果设备发出了一般状态消息,但其中一个是重要的事件信息,在syslog没有办法让高优先级的消息在其他消息之前发送。

在case-by-case的情况下,设备操作者可以找到一些使用服务标识符关联不同级别的方法。例如,操作员可以选择定义一些syslog消息和特殊优先级之间的关系,将一个特殊值放在IPv4的优先级字段中,IPv6的Traffic Class字节中或区分服务字段中。在上述例子中,操作员可以将状态信息和一般的传输优先级关联,为表示错误的消息赋予更高的优先级,等待时间更少的队列中。这样优先级更高的关键消息可以在一般状态消息之前发送。即使有这种相对的优先级,这些队列操作也会收到传输时线路阻塞的影响。如果有很多相关的消息发送或接收,接收端的缓冲区也会占满。这种行为不但在syslog中出现,而且在所有的连续传输消息的操

作中都会出现。

这种行为有安全考虑。首先在线路中传送重要的事件消息,当出现更重要的消息时,会让不重要一些的消息降级。如果队列在其当的时间清空,只会在传送重要消息的时候多几秒的延迟。另一方面,如果队列没有清空,重要的消息不能被发送。对于接收端来说,如果syslog 接收器的缓冲区已近因为同时收到很多报文而耗尽,那么重要的消息会和其他消息一起被丢弃。虽然这是设备和他容量的问题,这个协议的安全考虑是对于在消息之间没有相对优先级。

6.8. 错误配置

因为没有关于消息或配置的控制消息,确保消息发送到了正确的接收者完全是管理员的责任。前面已经说明了配置错误的接收者导致的后果。在很多情况下,接收者接收到没有配置的syslog消息后会丢弃它。在其他情况下,syslog接收者知道未期待的接收会引发错误。如果消息没有发送到关注它的接收者,那么就不能被看到和处理。

6.9. 循环转发

在图1中已经说明,可以在转发syslog消息到collector之前进行转发。在一个特殊的情况下,管理员发现一个错误配置导致两个relay互相转发某个优先级的消息。当这两个机器中的其中一个发生或收到一个消息时,它们都会将消息转发给对方,对方同样,会传回消息。这种循环导致两个设备之间的网络利用率降低。管理员必须小心配置,以免出现死循环。

6.10. 加载考虑

网络管理员必须花时间估计syslog接收者的数量。攻击者可能通过向collector发送错误消息,让错误消息占满硬盘进行拒绝服务攻击。将记录放在循环文件中可以解决这个问题,但这样的话管理员就不能看到以前的消息了。这种情况下,接收者或collector的网络接口必须有可以接收所有发送给它消息的能力。

管理员和网络计划员必须谨慎额查看设备,relay和collector之间的网络路径。已发出的syslog

消息不能将任何网络连接宕机。

F5 如何配置syslog的级别

How do I configure syslog? Description: Product Version 3-DNS 1.0.3 through 4.6 BIG-IP 2.1.2 through 4.6 Updated: 02/10/04 How do I configure syslog? Resolution: BIG-IP and 3-DNS use the standard UNIX log utility called syslog, which reads messages from TCP, UDP, and UNIX sockets. The UNIX socket is located in the /var/run/log= file, and messages from the kernel are located in the /dev/klog file. You can configure BIG-IP or 3-DNS to direct messages to files, a console, or to another syslog compliant server. Facilities The syslog utility can log to the following facilities: Name Facility Description auth User authentication system for non-sensitive information. authpriv User authentication system security sensitive information. cron The cron facility. daemon System server processes. ftp The ftp facility. kern The Kernel. lpr The printing subsystem. mail The mail subsystem. mark Timestamps produced at regular intervals. news News server processes. ntp The NTP time daemon. syslog syslog facility internal messages. user User processes. lucp The UUCP facility.

syslog日志服务器配置步骤

syslog 日志服务器配置步骤 一.作用 Linux 系统的日志主要分为两种类型 1. 进程所属日志: 由用户进程或其他系统服务进程自行生成的日志,比如服务器上的 access_log 与 error_log 日志文件。 2. syslog 消息: 系统 syslog 记录的日志,任何希望记录日志的系统进程或者用户进程 都可以给调用 syslog 来记录日志。 Syslog 程序就是用来记录这类日志的。 syslog 是 Linux 的日志子系统,日志文件详细地记录了系统每天发生的各种各样的事件。 用户可以通 过日志文件检查错误产生的原因, 或者在受到攻击和黑客入侵时追踪攻击者的踪 迹。日志的两个比较重要的作用是:审核和监测。 配置 syslog 中央服务器能够使所有服务器的系统信息都集中到某台特定的机器上,便于对 集群中机器的管理与检查 Linux 系统所有的日志文件都在 /var/log 下,且必须有 root 权限才能察看。 日志文件其实 是纯文本 的文件,每一行表示一个消息 , 而且都由四个域的固定格式组成 : 1. 时间标签 (timestamp ) ,表示消息发出的日期和时间。 2. 主机名 ( hostname ) ,表示生成消息的计算 可 能没有必要了。但是如果在网络环境中使用 送到一台服务器上集中处理。 3. 生成消息的子系统的名字。 可以是” kernel 表示发出消息的程序的名字。在方括号里的是进程的 4. 消息 ( message ) ,剩下的部分就是消息的内容。 syslog 配置文件 syslog 是 Linux 系统默认的日志守护进程。默认的 syslog 配置文件是 /etc/syslog.conf 文 件。syslog 守护进程是可配置的,它允许人们为每一种类型的系统信息精确地指定一个存放 地点。现在, 我们先看看 syslog.conf 文件的配置行格式(这个文件里的每一个配置行都是 同样的格式),然后再看一个完整的 syslog 配置文件。 syslog 配置行的格式如下所示: mail.*/var/log/mail 这一行由两个部分组成。第一个部分是一个或多个 设备后面跟一些空格字符, 然后是一个“操作动作” 1 设备 设备本身分为两个字段,之间用一个小数 点( 段是一个优先级。 设备其实是对消息类型的一种分类, 发送到不同的地方。在同一个 的 syslog 配置文件示例里看到同时有多个设备的配置行。 下面列出了绝大多数 Linux 操作系 统变体都可以识别的设备。 auth -由 pam_pwdb 报告的认证活动。 authpriv -包括特权信息如用户名在内的认证活动 机的名字。如果只有一台计算机,主机名就 syslog ,那么就可能要把不同主机的消息发 ”, 表示消息来自内核; 或者是进程的名字, PID 。 设备” ;上例中的设备是“ mail ”。 ;上例中的操作动作是: /var/log/mail .)分隔。前一字段是一项服务,后一字 这种分类便于人们把不 同类型的消息 syslog 配置行上允许出现一个以上的设备,但必须用分号( ;) 把它们分隔开。上面给出的例子里只有一个设备“ mail ”。大家可以在后面给出的那个完整

Syslog的格式说明

Syslog的格式说明 设备必须通过一些规则来配置,以便显示或者传递事件信息。不管管理员决定怎样配置对事件信息的处理,把这些信息发送到syslog接受者的过程一般都由下面部分构成:决定哪个帮助信息要被发送,要被发送的级别,定义远程的接受者。 被传输的syslog信息的格式主要有3个容易识别出来的部分,分别是PRI、HEADER、MSG。数据包的长度小于1024个字节。PRI部分必须有3、4、5个字符,以“<”开头,然后是一个数字,并以“>”结尾。在方括号内的数字被称为优先级(Priority),由facility和severity两个值构成。信息中的facilities和severities通过十进制值进行数字的编码。一些操作系统的后台监控程序和进程被分配一个facility值,那些没有分配一个facility值的进程和daemons将会使用“local use”的facilities值或者“用户级别”的facilities值。下面的表格表示被指定的Facilities值和对应的数字代码。 Numerical Code Facility 0 kernel messages 1 user-level messages 2 mail system 3 system daemons 4 security/authorization messages 5 messages generated internally by syslogd 6 line printer subsystem 7 network news subsystem 8 UUCP subsystem 9 clock daemon 10 security/authorization messages 11 FTP daemon 12 NTP subsystem 13 log audit 14 log alert 15 clock daemon 16 local use 0 (local0) 17 local use 1 (local1) 18 local use 2 (local2) 19 local use 3 (local3) 20 local use 4 (local4) 21 local use 5 (local5) 22 local use 6 (local6) 23 local use 7 (local7) 表1 Syslog Message Facilities 每个信息优先级也有一个表示十进制Severity登记的参数, 下面的表格描述出他们和对应数值。 Numerical Code Severity 0 Emergency 应急EMERY,任何紧急情况,包括系统PANIC。 1 Alert 警报ALERT,任何需要立即注意的发生情况 2 Critical致命错误CRIT,设备发生了关键性问题情况,包括进程CRASH,OVERFLOW

国内常见网络与安全、主机系统的syslog配置方法

1 UNIX主机 1.1 Solaris 通过Unix系统的Syslog服务转发系统日志到采集服务器,具体配置方法如下:1.提供Unix系统的IP地址 2.提供Unix系统的主机名称 3.在Unix系统/etc/syslog.conf文件最后追加以下2行 *.err &nbs p; @IP https://www.doczj.com/doc/426579208.html, @IP @IP为采集机地址 4.用下面的命令重启syslog服务 ? 对于Solaris8,9 /etc/init.d/syslog stop /etc/init.d/syslog start ? 对于Solaris10 Svcadm restart system-log 1.2 HP-UX 通过Unix系统的Syslog服务转发系统日志到采集服务器,具体配置方法如下:1.提供Unix系统的IP地址 2.提供Unix系统的主机名称 3.在Unix系统/etc/syslog.conf文件最后追加以下2行 *.err @IP https://www.doczj.com/doc/426579208.html, @IP @IP为采集机地址 下面的命令停止syslog服务 ps –ef|grep syslogd kill PID 5.下面的命令启动syslog服务 /usr/sbin/syslogd -D 1.3 AIX 通过Unix系统的Syslog服务转发系统日志到采集服务器,具体配置方法如下:1.提供Unix系统的IP地址 2.提供Unix系统的主机名称 3.在Unix系统/etc/syslog.conf文件最后追加以下2行 *.err @IP (中间以Tab健分割) https://www.doczj.com/doc/426579208.html, @IP (中间以Tab健分割) 注:@IP为采集机地址 5.用下面的命令停止syslog服务 stopsrc -s syslogd 6.用下面的命令启动syslog服务

华为交换机的 syslog功能

华为交换机的 syslog功能 1.1 日志功能 1. SYSLOG介绍 日志系统是以太网交换机中不可或缺的一部分,它是系统软件模块的信息枢纽。日志系统管理大多数的信息输出,并且能够进行细致的分类,从而能够有效地进行信息筛选。通过与debugging程序的结合,日志系统为网络管理员和开发人员监控网络运行情况和诊断网络故障提供了强有力的支持。 以太网交换机的日志系统具有以下一些特性: ? 支持控制台( Console )、监视终端( monitor )——Telnet终端、日志缓冲区( logbuf )、日志主机( loghost )、告警缓冲区(trapbuf)、SNMP六个方向的日志输出。 ? 日志信息按重要性划分为八种等级,可按等级进行信息过滤。 ? 信息按来源模块进行划分,可按模块进行信息过滤。 ? 信息在输出时可以进行中英文选择。 2. SYSLOG配置 SYSLOG配置的配置任务如下: ? 开启或关闭日志功能 ? 设置日志信息的输出方向 ? 定义日志信息的过滤规则 ? 配置日志主机 在以上的配置中,配置日志主机不是在交换机上进行的配置。必须先开启日志功能,其余的配置才能生效。 (1) 开启或关闭日志功能 可以使用下面的命令来开启或关闭日志功能。 请在系统视图下进行下列操作。 表1-1 开启或关闭日志功能 操作 命令 开启日志系统 info-center enable

关闭日志系统 undo info-center enable ? 说明: syslog缺省情况下处于开启状态。syslog开启时,由于信息分类、输出的原因,在处理信息较多时,对系统性能有一定的影响。 (2) 配置日志信息的输出方向 目前,以太网交换机的日志系统,可以在六个方向输出各种日志信息。每个输出方向通过配置命令指定所需要的通道。所有信息经过指定通道过滤,之后发送到相应的输出方向。用户可根据需要,配置输出方向所使用的通道以及配置通道的过滤信息,完成各类信息的过滤以及重定向。 可以使用下面的命令来配置日志信息的输出方向 请在系统视图下进行下列配置。 表1-2 输出日志信息 操作命令 向Console方向输出信息 info-center console channel{ channel-number | channel-name } 向Telnet终端或哑终端输出信息 info-center monitor channel { channel-number | channel-name } 向日志缓冲区输出信息 info-center logbuffer [ channel { channel-number | channel-name } ] [ max-size buffersize ] 取消向日志缓冲区输出信息 undo info-center logbuffer [ channel | max-size ] 向日志主机输出信息 info-center loghost host-ip-addr [ channel { channel-number | channel-name } ] [ facility local-number ] [ language { chinese | english } ] 取消向日志主机输出信息 undo logging host host-ip-addr 向告警缓冲区输出信息 info-center trapbuffer [ max-size buffersize ] [ channel { channel-number | channel-name } ] 取消向告警缓冲区输出信息 undo info-center trapbuffer [ channel | max-size ] 向SNMP输出信息 info-center snmp channel { channel-number | channel-name } 目前,系统对每个输出方向缺省分配一个信息通道,请参见下表。 表1-3 输出日志信息的信息通道名和通道号 输出方向信息通道号缺省的信息通道名

Syslog 配置介绍

Syslog 简介 Syslog是一个通过IP网络允许一台机器发送事件通知信息给事件收集者(Syslog服务器或者Syslog Daemon)的协议。换言之,就是一台机器或者设备能够被配置,使之产生Syslog 信息并且发送到一台特定的Syslog服务器/Daemon。 Syslog信息建立在UDP之上,一般Syslog信息在UDP514端口上被收集,Syslog信息的长度不大于1024字节。由于基于UDP协议,所以当如果因为网络拥塞等情况导致信息包丢失,那么信息将不再重发,而是简单的丢失掉。 Syslog协议是在Unix系统上被创建出来的。使用Syslog,一个远程Unix主机能够很好的跟踪另一台Unix主机。任何应用程序都能够产生Syslog信息。 格式 Syslog包的格式: 一个Syslog信息主要有三部分组成。分别是PRI,HEADER,MSG。 日志信息格式如下: <优先级>时间戳主机名模块名/级别/信息摘要:内容 timestamp sysname module/level/digest:content 以上格式中的尖括号(< >)、空格、斜杠(/)、冒号(:)是有效的、必须的。 输出到日志主机的日志格式的例子如下: <189>Jun 7 05:22:03 2003 Quidway IFNET/6/UPDOWN:Line protocol on interface Ethernet0/0/0, changed state to UP 以下对每一个字段做详细说明。 1.优先级 是优先级的意思,它由两部分组成,共一个字节,前3位是严重度(Severity),后5位是表示Facility。优先级的计算按如下公式:facility*8+severity-1。 a) 严重度 b) Facility

H3C_syslog配置

netscreen syslog配置 netscreen的flash memory只保存4096条日志,但在网络访问量大的时候根本没用,最多一两天就被后面 的日志给冲掉,而且当防火墙重新启动不能保存日志。 web操作步骤: 1 用admin用户登陆web界面 2 选择Configuration->;Report Settings->;Syslog 3 点击'Enable Syslog' 4 假如你要把所有的传输日志全部记录,最好还要选择'Include Traffic Log' 5 输入日志服务器的地址和端口(udp端口514) 这个是一个叫Kevin Branch的友好提示: 所有的Netscreen policies (permit/deny/tunnel)最好全部有log的默认选项,这样可以全部如实录并传 送到日志服务(假如netscreen设置允许会话没有被指定拒绝) “Log Pa ckets Terminated to Self" 选项与访问netscreen的会话无关,但最好还是记录所有的会话给 netscreen自己保存,否则哪怕仅仅是管理防火墙,也会显示来自Internet的 消息。 命令行操作步骤: 1 set syslog configip_addresssecurity_facility 2 local_facility 3 set syslog enable 4 set syslog traffic 5 set log module system level level destination syslog 提示:当用set syslog config命令需要你定义一个安全facility(不知道怎 么翻译,我理解为安全级别),你 可以用set syslog命令提示选项来看 security_facility 和 local_facility。必须输入被设置的每个消息的安全层,选项如下:级别是从高到低 emergency (紧急事件) alert (警报) critical (危机) error (错误) warning (预告警) notification (通知) information (信息) =======================================================

syslog-系统日志应用

syslog 系统日志应用 1) 概述 syslog是Linux系统默认的日志守护进程。默认的syslog配置文件是/etc/syslog.conf文件。程序,守护进程和内核提供了访问系统的日志信息。因此,任何希望生成日志信息的程序都可以向 syslog 接口呼叫生成该信息。 几乎所有的网络设备都可以通过syslog协议,将日志信息以用户数据报协议(UDP)方式传送到远端服务器,远端接收日志服务器必须通过syslogd 监听UDP 端口514,并根据 syslog.conf配置文件中的配置处理本机,接收访问系统的日志信息,把指定的事件写入特定文件中,供后台数据库管理和响应之用。意味着可以让任何事件都登录到一台或多台服务器上,以备后台数据库用off-line(离线) 方法分析远端设备的事件。 通常,syslog 接受来自系统的各种功能的信息,每个信息都包括重要级。/etc/syslog.conf 文件通知 syslogd 如何根据设备和信息重要级别来报告信息。 2) etc/syslog.conf /etc/syslog.conf 文件使用下面的格式: facility.level action facility.level为选择条件本身分为两个字段,之间用一个小数点(.)分隔。action和facility.level之间使用TAB隔开。前一字段是一项服务,后一字段是一个优先级。选择条件其实是对消息类型的一种分类,这种分类便于人们把不同类型的消息发送到不同的地方。在同一个syslog配置行上允许出现一个以上的选择条件,但必须用分号(;)把它们分隔开。action字段所表示的活动具有许多灵活性,特别是,可以使用名称管道的作用是可以使 syslogd 生成后处理信息。 要素分析: facility 指定 syslog 功能,主要包括以下这些: kern 内核信息,首先通过 klogd 传递; user 用户进程; mail 邮件; daemon 后台进程; authpriv 授权信息; syslog 系统日志; lpr 打印信息; news 新闻组信息; uucp 由uucp生成的信息

Syslog配置及使用简介

Syslog配置及使用简介 目录 Syslog配置及使用简介 (1) 1.Syslog简介 (2) 2.Syslog协议 (2) 2.1. syslog体系结构 (2) 2.2. syslog包格式 (2) 3.Syslog配置 (3) 3.1 概览 (4) 3.2选择符 (4) 3.3 动作 (4) 4.C语言中的syslog (5) 4.1 openlog (5) 4.2 syslog (5) 4.3 closelog (6) 4.4 setlogmask (6) 4.5例子 (6) 5.参考文献 (7)

1.Syslog简介 Syslog常被称作系统日志,在80年代作为sendmail的一部分而发布,由于其可用性,现在已成为用来在internet中传递日志信息的事实上的标准。这些传递日志的程序或数据库同时也被称作syslog。Syslog是主从式的协议,syslog发送端发送一些小的文字信息到syslog 接收端,接收端根据配置文件把收到的信息进行存储或者处理,或者再次进行转发。 Syslog通常被用作系统信息管理,由于其已在大多数系统上实现,所以它可以把不同类型主机上的信息集中整合到一起。但是它仍然有许多缺陷,表现在下面几个方面:Syslog 的传输是通过UDP或者TCP传输,安全性并不可靠。一般可以通过ssl加密壳来完成加密;syslog的实时性不好,只能通过更改配置加以改进。所以syslog主要用在安全性要求不高,实时性不强的地方。 2.Syslog协议 syslog使用UDP协议作为它的传输层协议,其默认使用UDP端口514。 2.1. syslog体系结构 syslog模糊了发送方、接收方,设备、中继以及收集器的区别,一台设备可以同时是某种日志信息的中继、也可以是另外某种信息的收集器,同时可以作为发送者发送日志: ●发送方发送日志信息至某个主机,并不知道这台主机会如何处理这些日志。 ●发送方可以通过配置,把同一条日志同时发送给多个接收者。 ●中继可以发送所有或者部分信息给后序接收者,这种情况下它不完全是中继,也是 一个收集信息者。 ●中继可以产生自己的日志信息发送给后序接收者,这种情况下它也是一个产生信息 的设备。 2.2. syslog包格式 Syslog包分为3个部分,PRI, HEADER,以及MSG,总长度不能超过1024个字节。 2.2.1 PRI PRI是priority的缩写,它代表了facility以及severity,即代表消息来源以及消息的严重程度。它必须是1、2或者3个十进制字符,用‘<’,‘>’括起后组成的串,它是由facility 以及severity构成,组成的方法是把facility的值乘以8,再加上severity的值。如facility取值local4(20), severiry为warning(4),那么pri的值为<164>。 Facility的取值如下表所示: Numerical Code Facility 0 kernel messages 1 user-level messages 2 mail system 3 system daemons 4 security/authorization messages 5 messages generated internally by syslogd 6 line printer subsystem 7 network news subsystem

Evtsys--轻松将Windows日志转换为SYSLOG

Evtsys--轻松将Windows日志转换为SYSLOG 们知道,无论是Unix、Linux、FreeBSD、Ubuntu,还是路由器、交换机,都会产生大量的日志,而这些,一般会以syslog的形式存在。调试过防火墙、入侵检测、安全审计等产品的朋友应该对SYSLOG熟悉,如果您还不了解SYSLOG,请登录百度或Google查询。 很多时候,我们需要对日志进行集中化管理,如各种操作系统、网络设备、安全设备,甚至应用系统、业务系统等,但是不知道你注意看上文了没:Windows的应用、安全、系统日志怎么办? Windows操作系统本身是可以产生很多日志的,如每次插拔U盘、服务的重启等,都会产生日志,这些信息会记录在操作系统中,如果我们想集中管理,怎么办?Windows操作系统本身并不支持把日志发送到SYSLOG服务器去 还好,我们有Evtsys。什么是Evtsys呢?如果你想下载Evtsys,请登录https://www.doczj.com/doc/426579208.html,/p/eventlog-to-syslog/ 查看并获取最新更新。值得称道的是,程序仅仅有几十KB大小! 下载Evtsys后,将其复制到系统目录,XP下是Windows\system32目录。然后在CMD下执行: evtsys.exe -i -h 192.168.1.101 -p 514 这个是标准格式,亦可精简为: evtsys -i -h 192.168.1.101 参数说明: i是安装成Window服务; h是syslog服务器地址; p是syslog服务器的接收端口。 默认下,端口可以省略,默认是514. 启动Evtsys服务,命令是: net start evtsys 查看Windows的“服务”,发现在原本Event Log服务下面增加了一个“Eventlog to Syslog”,并且已经启动。

syslog协议

RFC3164 - The BSD Syslog Protocol 文档状态 本文档提供了互联网委员会的信息。它不指定任何一种网络规范。对本文档的发布是不受限制的。 摘要 本文描述了syslog协议的实测行为。本协议在互联网上已经使用了很多年,是用来传送事件通知信息的。最初,这个协议在University of California Berkeley Software Distribution (BSD) TCP/IP系统实现中开发,它的实现和管理价值在于,它可以让不同系统相互通信,同时可以嵌入其他网络产品中。 目录 1. 概述 从一开始,生命依赖于信息的传递。对于有自我意识的有机物单位来说,这些信息可以传达很多信息。可能表示危险,食物或其他生命的必需品,以及其他东西。在很多情况下,这些信息被传递到其他个体中,不需要任何应答。和人类交流和创建的过程一样,这些简单的道理同样适用于社会联系。例如,严重的气象预报可能由很多频道同时播出,一场飓风的将保通过电视和电台以及船上的旗语同时传递。在大多数情况下,不对这些警告信息进行任何应答是需要的,或者是期望的。遵循同样的原则,操作系统,进程和应用程序都会发送自己状态的信息,或表示某种事件发生的信息。这些事件信息对于机器操作者通常是很重要的。当操作系统,进程和应用程序变得越来越复杂后,系统开始致力于将这些信息进行分来和日志记录,同时可以让操作人员更快速的从简单的状态信息中区分出问题的通知。Syslog进程是这种系统中被很多操作系统广泛接受的。这个进程的灵活性可以让操作人员配置发送从哪台机器的进程中发出。从一个方面来说,syslog进程接受到的信息可以保存在不同的文件中,同时在设备的控制台进行显示。从另一个方面来说,syslog进程可以通过配置将信息转发到网络中的另一台syslog进程中。Syslog进程对少量事件可以进行网络提醒,因为它知道很多系统操作员没有时间访问系统来查看注册在这里的信息。运行在远程设备上的Syslog进程,可以配置成为将信息加入文件中,或继续转发到其他机器中。 用最简单的话将,syslog协议提供了一种让机器通过IP网络将信息发送通知信息到事件接收器(syslog服务器)的功能。因为每一个进程,应用程序和操作系统是分开开发的,syslog 的信息的内容大多都是不同的。正因为这个原因,组成信息的内容没有任何假设。这个协议只是简单的传递这些信息。在任何情况下,有一个设备发出消息。那台机器上的Syslog进程可能将信息发送给收集器。不需要任何应答。 Syslog协议和进程的基本原则是它的简单性。在发送者和接收者之间不需要协调。实际上,syslog信息的发送者可以在接收者没有配置好或根本不存在的情况下进行发送。相反,很多设备会在没有任何配置和定义的情况下收到消息。这种简单性让syslog更容易接受和部署。

syslog 配置

目录 目录 (1) syslog 配置 (2) 第一章类UNIX系统syslog配置 (2) 一、syslog.conf文件配置说明 (2) 二、Syslog 服务启停: (3) 三、测试产生日志 (4) 第二章Windows 平台syslog配置 (4) 一、安装配置 (4) 二、参数说明: (4) 第三章网络设备syslog配置 (4) 一、配置步骤 (4) 二、检验结果 (5)

syslog 配置 第一章类UNIX系统syslog配置 一、syslog.conf文件配置说明 /etc/syslog.con f文件中的一项配置记录由“选项”(selector)和“动作”(action)两个部分组成,两者间用tab制表符进行分隔。而“选项”又由一个或多个形如“类型.级别”格式的保留字段组合而成,各保留字段间用分号分隔。 保留字段中的“类型”代表信息产生的源头,可以是: kern 由kernel产生的信息; user 由用户进程产生的信息。对那些由程序或不在此列出的工具产生的信息,其缺省类型都是“user”; mail 邮件系统产生的信息; daemon 系统守护进程的信息,如in.ftpd、telnetd; auth 由login, su, gett y等进行身份认证时产生的信息; s yslog 由s yslogd自己内部产生的信息; lpr 行打印spooling系统的信息; news USENET 网络新闻系统的信息; uucp UUCP系统信息; cron cron和at工具信息; local0-7 保留为local使用; mark syslogd内部产生的时间戳信息; * 除mark之外的所有其它类型(此符号不可用以代表所有级别)。 保留字段中的“级别”代表信息的重要性,可以是: emerg 紧急,处于Panic状态。通常应广播到所有用户; alert 告警,当前状态必须立即进行纠正。例如,系统数据库崩溃; crit 关键状态的警告。例如,硬件故障;

常见网络设备SNMP及SYSLOG配置指南V1.3

错误!未找到引用源。

文档说明本文档目的是为了推进互相交流学习使用

目录 1 文档说明 (5) 1.1 字体约定 (5) 2 交换机部分 (6) 2.1 Cisco交换机 (6) 2.1.1 SNMP配置 (6) 2.1.2 TRAP配置 (6) 2.1.3 Syslog配置 (7) 2.2 华为交换机 (8) 2.2.1 SNMP配置 (8) 2.2.2 TRAP配置 (8) 2.2.3 Syslog配置 (9) 2.3 ZTE交换机 (9) 2.3.1 SNMP配置 (10) 2.3.2 TRAP配置 (10) 2.3.3 Syslog配置 (11) 3 路由器部分 (12) 3.1 Cisco路由器 (12) 3.1.1 SNMP配置 (12) 3.1.2 TRAP配置 (13) 3.1.3 Syslog配置 (13) 3.2 华为路由器 (14) 3.2.1 SNMP配置 (14) 3.2.2 TRAP配置 (15) 3.2.3 Syslog配置 (15) 3.3 阿尔卡特路由器 (16) 3.3.1 SNMP配置 (16) 3.3.2 TRAP配置 (16)

3.3.3 SYSLOG配置 (16) 3.4 Juniper路由器 (16) 3.4.1 SNMP配置 (17) 3.4.2 TRAP 配置 (17) 3.4.3 Syslog配置 (18) 4 防火墙部分 (19) 4.1 Netscreen防火墙 (19) 4.1.1 SNMP配置 (19) 4.1.2 TRAP配置 (20) 4.1.3 Syslog配置 (21) 4.2 Cisco PIX防火墙 (21) 4.2.1 SNMP配置 (22) 4.2.2 TRAP配置 (22) 4.2.3 Syslog配置 (22) 5 四层交换机 (24) 5.1 F5负载均衡 (24) 5.1.1 SNMP配置 (24) 5.1.2 TRAP配置 (25)

设置 Syslog 日志服务器用来获取交换机日志

设置 Syslog 日志服务器用来获取交换机日志(Syslog 日志服务器用来获取交换机日志CISCO和H3C交换机的设置) 注:配置日志服务器前先检查是否已安装了SYSLOG服务 执行 ps -e |grep syslogd 查看进程是否存在 没有安装 # apt-get install syslogd 安装,或下载用安装包 H3C交换机的设置举例 1. 组网需求 将系统的日志信息发送到 linux 日志主机; 日志主机的IP 地址为 1.2.0.1/16; 信息级别高于等于 informational 的日志信息将会发送到日志主机上; 日志信息的输出语言为英文,允许输出信息的模块为ARP 和 CMD。 2. 组网图 3. 配置步骤 (1) 设备上的配置。 # 开启信息中心。 system-view [Sysname] info-center enable # 指定向日志主机输出日志信息的通道为 loghost 通道。 [Sysname] info-center loghost 1.2.0.1 channel loghost

# 关闭所有模块日志主机的 log、trap、debug 的状态。 [Sysname] info-center source default channel loghost debug state off log state off trap state off 注意: 由于系统对各通道允许输出的系统信息的缺省情况不一样,所以配置前必须将所有模块的需求通道(本例为loghost )上log、trap、debug 状态设为关闭,再根据当前的需求配置输出相应的系统信息。可以用display channel 命令查看通道的状态。 # 将 IP 地址为 1.2.0.1/16 的主机作为日志主机,设置信息级别为informational,输出语言为英文,允许输出信息的模块为所有模块。 [Sysname] info-center loghost 1.2.0.1 facility local7 language english [Sysname] info-center source default channel loghost log level informational 2) 日志主机上的配置。 第一步:以超级用户(root)的身份执行以下命令。 # mkdir /var/log/H3C # touch /var/log/H3C/information 第二步:以超级用户(root)的身份编辑文件/etc/syslog.conf,加入以下选择/动作 组合(selector/action pairs)。 # H3C configuration messages https://www.doczj.com/doc/426579208.html, /var/log/H3C/information 说明: 在编辑/etc/syslog.conf 时应注意以下问题: 注释只允许独立成行,并以字符#开头。 选择/动作组合之间必须以一个制表符(键)分隔,而不能输入空格 (键)。 在文件名之后不得有多余的空格。 /etc/syslog.conf 中指定的设备名及接受的日志信息级别与设备上配置的 info-center loghost 和info-center source 命令的相应参数要保持一致,否则 日志信息可能无法正确输出到日志主机上。

Cent OS 配置日志服务器和配置详解

配置日志服务器 实验环境: ●Linux 系统(Redhat5.X、Cent OS 6、Fedora 6) ●Unix 系统(FreeBSD 5.0以后) ●Windows 系统(Window XP/server) ●IMP系统(172.18.4.75) 主要介绍Linux、Unix、Windows系统下如何搭建中央日志服务器系统和客户端日志发送配置。 Linux---Cent OS 6.3-Release 版本 ---适用于(Redhat5.X、Cent OS 6、Fedora 6) Unix采用Freebsd 8.1版本 ---适用于(FreeBSD 5.0以后) Windows 采用windows 7/server版本 ---适用于windows XP/server系列 Syslog(系统日志)日志系统是最主流的系统日志记录。由于与Linux 平台之间的渊源,Syslog是在实际应用环境中最容易获得的日志系统。同时,还有很多的基于Syslog的扩展产品存在,这其中也包括大量基于UNIX平台构建内核的网络硬件设备,这些设备往往都内置了Syslog功能支持,例如Cisco 路由器就是如此。

一、Linux系统日志服务器服务端/客户端设置 版本:Cent OS 6.3-Release IP :172.18.4.65 ●配置rsyslog主配置文件 rsyslog是Linux系统默认的日志守护进程。默认的syslog配置文件是/et c/rsyslog.conf文件。 Rsyslog的规则定义格式如下: ●Facility Facility(设备)是指定日志的类型,可以是一个或者多个设备均可。多个设备间分开符‘;’。下表是大部分linux系统支持的设备类型和相应的序列号

Syslog获取log方法

Syslog获取log方法 注意:本方案建议施工方在CPE(用户端)和AP端(基站端)均按以下步骤操作,同时,希望用户能够在测试期间一直开启,以便于定位网桥出现的故障。syslog获取log的基本配置如下图所示. AP STA 无线链路 1、登录设备网页; 利用网桥内置页面来配置网桥的操作步骤如下: (1)和网桥直接相连的电脑设置。网络连接->本地连接,鼠标选中本地连接,单击右键,鼠标左键单击属性,弹出如图1所示窗口:

图 1 电脑的本地连接的属性 2、选中Internet协议(TCP/IP),鼠标左键双击,弹出如图2的窗口: 图 2 电脑的IP设置 3、如图2所示,IP地址设为和网桥同一网段的IP,且IP不能和网桥相同,如:网桥的IP 为192.168.1.36,那么主机可设为192.168.1.180; 4、在浏览器输入网桥的IP,然后敲回车键,跳到图3所示页面; 5、在如图3的页面用户名和密码中输入网桥对应的用户名和密码,点击登录,此时,就登

录到网桥的网页了。 图 3 登录界面 2、网页上开启syslog客户端 (1)在网页上的任意页面,鼠标单击网页左侧的工具应用,用户将看到如图4所示页面,图4红框中的Syslog请启用,然后服务器IP设置为用网线连接到网桥的电脑的IP地址(确保电脑和网桥IP是同一网段),如图中电脑IP设为192.168.1.180,那么服务器IP请设为:192.168.1.180,服务器端口:514。 图 4 syslog开启 (3)点击页面下方的保存,页面上方会跳出应用和放弃的按钮,如图5所示,点击应用即可。

图 5 应用 3、开启Syslog服务器 (1)把tftp.exe放于用网线和网桥直接相连的电脑的桌面上,双击tftp.exe,打开tftp跳出以下窗口; 图 6 tftp (2)选中图6中红框中的Syslog服务器,点击图7红框中的设置。

Syslog日志服务器设计

自动化专业综合设计 说明书 课题名称:Syslog日志服务器设计 学生学号: 专业班级: 学生姓名: 学生成绩: 指导教师: 课题工作时间:至 xxxx教务处制

一、课程设计的任务的基本要求: 该课程设计主要的任务是编写一种可以被记录到不同的文件,还可以通过网络实现运行syslog协议的机器之间的信息传递的叫做syslog协议的这么一个课题。Syslog已被许多日志函数采纳,它用在许多保护措施中——任何行为都可以通过syslog 记录事件。通过System Call,记录用户自行开发的应用程序的运行状况。日志系统的重点之一便是要研究及开发一些系统程序,该课题的设计过程要求先做好课题设计的大纲包括该课题应包括那些模块,要实现哪些功能,代码要用什么语言来写以及要用什么编译工具来编译运行该课题和运行的结果是什么样的,要用流程图把各个模块的连接关系一一的列出来,设计者应该有敢于创新和勇于负责的精神,从投入施工的角度来严肃对待自己的设计,使自己的设计能最大限度满足生产实际需要,既经济,又可靠。 二、课题设计框图: syslog syslog syslog 消息队列 File文件 Server函数 save 指导教师签字:教研室主任签字: 年月日年月日

二、进度安排: 第一周: (1) 指导教师讲解设计要求、规程、部分相关国家标准及有关技术规范、参考资料等事项。 (2)采用计算机辅助软件绘制工艺流程图结合设计题目熟悉代码流程。 第二周: (3)在熟悉代码流程的基础上,针对典型流程图进行代码分析。 第三周: (4) 按代码功能模块的顺序画出代码流程图。 (5) 讲画好的代码框图与小组的其他成员讨论研究其缜密性和可行性,找出该流程的弊端和矛盾之处,最终确定更好的代码顺序方案。 第四周: (6) 按照流程图编写代码,并且在编写代码的过程中要每写一个模块就要编译一次避免不必要的错误。 (7) 最后撰写详细的设计文档并让指导老师审核。 三、应收集资料及主要参考文献: [1]中软国际·LINUX系统程序设计 [2]谭浩强 C程序设计(第三版) [3]严蔚敏,吴伟民数据结构(C语言篇) [4]张宇河,董宁·计算机控制系统·北京:北京理工大学出版社,2002 [5]谢希仁计算机网络(第五版) [6]刘兵,吴煜煌 LINUX实用教程 四、课程设计摘要(中文): Syslog是一种工业标准的协议,可用来记录设备的日志。在UNIX系统,路由器、交换机等网络设备中,系统日志(System Log)记录系统中任何时间发生的大小事件。管理者可以通过查看系统记录,随时掌握系统状况。UNIX的系统日志是通过syslogd这个进程记录系统有关事件记录,也可以记录应用程序运作事件。通过适当的配置,我们还可以实现运行syslog协议的机器间通信,通

相关主题
文本预览
相关文档 最新文档