Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

在单机箱系统上记录系统

单机箱系统日志记录配置概述

Junos 系统日志记录实用程序类似于 UNIX syslogd实用程序。本节介绍如何为运行 Junos OS 的单机箱系统配置系统日志记录。

通用标准环境中的 Junos FIPS 软件和瞻博网络路由器的系统日志记录配置与 Junos OS 相同。有关详细信息,请参阅 通用标准和默认 FIPS 的安全Junos指南

有关为由 TX Matrix 路由器和 T640 路由器组成的路由矩阵配置系统日志记录的信息,请参阅配置 Tx Matrix 路由器的系统日志

每个系统日志消息都属于一个将相关消息组合在一起的设备。每条消息都有预先指定的严重性级别,用于指示触发事件对路由器功能的影响的严重程度。您始终指定要包含在日志中的消息的功能和严重性。有关详细信息,请参阅指定要包含在日志中的消息的设备和严重性

通过在[edit system syslog]层次结构级别包含适当的语句,可以将消息定向到一个或多个目的地:

默认情况下,消息以基于 UNIX 系统日志格式的标准格式记录;有关消息格式的详细信息,请参阅系统日志资源管理器。您可以通过以下方式改变日志消息的内容和格式:

  • 您可以将消息以结构化数据格式而非标准 Junos 格式记录到文件中。结构化数据格式可提供更多的信息而不增加长度,并使自动化应用程序从消息中提取信息变得更容易。有关详细信息,请参阅记录结构化数据格式的消息

  • 消息的设施和严重性级别统称为其 优先级。默认情况下,消息的标准 Junos 格式不包含优先级信息(默认情况下,结构化数据格式包含优先级代码。)要在定向到文件或远程目标的标准格式消息中包括优先级信息,请包含explicit-priority语句。有关详细信息,请参阅在系统日志消息中包括优先级信息

  • 默认情况下,消息的标准 Junos 格式指定记录的月份、日期、小时、分钟和秒。您可以修改标准格式系统日志消息上的时间戳,以包括年份、毫秒或两者。(结构化数据格式默认情况下指定年份和毫秒)。)有关详细信息,请参阅在时间戳中包含年份或毫秒

  • 将消息定向到远程计算机时,您可以指定在消息中报告为其源的 IP 地址。您还可以配置功能,使其更容易分离由 Junos OS 或特定路由器上生成的消息生成的消息。

  • 预定义设施组将相关消息组合在一起,但您也可以使用正则表达式来更精确地指定将设备记录到文件、用户终端或远程目标的消息。有关详细信息,请参阅使用字符串和正则表达式精炼记录集消息

单机箱系统记录配置概述

Junos OS上的系统记录实用程序QFX 系列 UNIX syslogd 实用程序类似。本主题介绍如何为运行 Junos OS 的单机箱系统配置系统日志记录。

每个系统日志消息都属于一个将相关消息组合在一起的设备。每条消息都有预先指定的严重性级别,用于指示触发事件对路由器功能的影响的严重程度。您始终指定要包含在日志中的消息的功能和严重性。有关详细信息,请参阅指定要包含在日志中的消息的设备和严重性

通过在[edit system syslog]层次结构级别包含适当的语句,可以将消息定向到一个或多个目的地:

默认情况下,消息记录为标准格式,该格式基于 UNIX 系统日志格式;有关消息格式化的详细信息,请参阅 Junos OS 系统日志消息参考。您可以通过以下方式改变日志消息的内容和格式:

  • 您可以将消息以结构化数据格式而非标准 Junos OS 格式记录到文件中。结构化数据格式可提供更多的信息而不增加长度,并使自动化应用程序从消息中提取信息变得更容易。有关详细信息,请参阅记录结构化数据格式的消息

  • 消息的设施和严重性级别统称为其 优先级。默认情况下,消息的标准 Junos OS 格式不包含优先级信息(默认情况下,结构化数据格式包含优先级代码)。要在定向到文件或远程目标的标准格式消息中包括优先级信息,请包含explicit-priority语句。有关详细信息,请参阅在系统日志消息中包括优先级信息

  • 默认情况下,消息的标准 Junos OS 格式指定记录的月份、日期、小时、分钟和秒。您可以修改标准格式系统日志消息上的时间戳,以包括年份、毫秒或两者。(结构化数据格式默认情况下指定年份和毫秒)。)有关详细信息,请参阅在时间戳中包含年份或毫秒

  • 将消息定向到远程计算机时,您可以指定在消息中报告为其源的 IP 地址。您还可以配置功能,使 Junos OS 或特定交换机上生成的消息生成的消息分离更简单。有关详细信息,请参阅将系统日志消息定向到远程机器

  • 预定义设施组将相关消息组合在一起,但您也可以使用正则表达式来更精确地指定将设备记录到文件、用户终端或远程目标的消息。有关详细信息,请参阅使用字符串和正则表达式精炼记录集消息

注:

在提交检查期间,有关配置的traceoptions警告(例如,跟踪文件大小或跟踪文件的不匹配)不会显示在控制台上。但是,当提交新配置时,这些警告会记录在系统日志消息中。

Junos OS 系统日志配置语句

要将交换机配置为记录系统消息,请将syslog语句包含在[edit system]层次结构级别:

Junos OS 最低系统日志记录配置

要记录或查看系统日志消息,必须将syslog语句包含在[edit system]层次结构级别。为消息指定至少一个目标,详见中表 1所述。有关配置语句的详细信息,请参阅单机箱系统日志记录配置概述

表 1: 系统日志记录的最低配置语句

目标

最低配置语句

文件

[edit system syslog]
file filename {
    facility severity;
}

一个、多个或所有用户的终端会话

[edit system syslog]
user (username | *) {
    facility severity;
}

路由器或交换机控制台

[edit system syslog]
console {
    facility severity;
}

路由器或交换机上的远程机器或其他路由引擎

[edit system syslog]
host (hostname | other-routing-engine) {
    facility severity;
}

示例:配置系统日志消息

QFabric 系统监控其组件设备上发生的事件,并将有关这些事件的系统日志消息分发至配置的所有外部系统日志消息服务器(主机)。组件设备可能包括节点设备、互连设备、控制器设备和虚拟机箱。消息仅存储在 QFabric 系统数据库中进行查看。要查看消息,请发出show log命令。

此示例介绍如何在 QFabric 系统上配置系统日志消息。

要求

此示例使用以下硬件和软件组件:

  • Junos OS 版本12。2

  • QFabric 系统

  • 可配置为系统日志消息主机的外部服务器

概述

生成系统日志消息事件的组件设备可能包括节点设备、互连设备、控制器设备和控制平面交换机。以下配置示例在 QFabric 系统中包含以下组件:

  • 控制器组上运行的控制器软件

  • 控制平面交换机

  • 互连设备

  • 多节点设备

配置

操作

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除任何换行符,更改与网络配置匹配的必要详细信息,然后将命令复制并粘贴到[edit]层次结构级别的 CLI 中。

分步过程

以下示例要求您在配置层次结构中导航各个级别。有关如何操作的说明,请参阅 Junos OS CLI指南 中的 在配置模式下使用 CLI编辑器

要从 QFabric Director 设备配置系统消息:

  1. 指定主机、任何设备和error严重级别。

    注:

    您可以配置多个系统日志消息服务器(主机)。QFabric 系统会将消息发送至配置的每个服务器。

  2. 必指定捕获日志消息的文件名。

    注:

    在 QFabric 系统上,名messages为的 syslog 文件使用的any any设备和严重性级别和文件大小(100 mb)隐式配置。因此,您不能在配置messages中指定文件名,并且该文件名的自动命令完成不起作用。

  3. 必配置系统日志消息存档文件的最大大小。此示例指定的存档大小为 1 GB。

成果

从配置模式,输入show system命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。

如果您完成了设备配置,请从commit配置模式进入。

以结构化数据格式记录消息

您可以将消息以结构化数据格式而非标准 Junos OS 格式记录到文件中。结构化数据格式可提供更多的信息,而无需增加大量长度,并使自动化应用程序从消息中提取信息变得更简单。

结构化数据格式符合互联网标准 RFC 5424,即系统日志协议(https://tools.ietf.org/html/rfc5424)。无论日志消息的来源或传输协议如何,RFC 都将建立标准消息格式。

要以结构化数据格式将消息输出到文件,请将structured-data语句包含在[edit system syslog file filename]层次结构级别:

可选brief语句禁止在消息末尾默认显示的英语语言文本来描述错误或事件。

结构化格式用于记录到由 Junos 进程或软件库生成的文件中的所有消息。

注:

如果与explicit-priority语句一起包含一个或两time-formatstructured-data and 语句,则将其忽略。这些语句适用于标准 Junos OS 系统日志格式,不适用于结构化数据格式。

指定日志文件的大小、数量和存档属性

为了防止日志文件变得过大,默认情况下 Junos OS 系统日志记录实用程序会将消息写入定义大小的文件序列中。顺序的文件称为存档文件,以区分它们与当前要编写消息的活动文件。 默认最大大小取决于平台类型:

  • EX 系列交换机 128 千字节 (KB)

  • 1兆字节(MB)的 M Series、MX 系列和 T Series 路由器

  • 对于 TX Matrix 或 TX Matrix Plus 路由器为 10 MB

  • 1 MB,用于 QFX 系列

当被调用logfile的活动日志文件达到最大值时,日志记录实用程序将关闭文件,进行压缩,并为压缩logfile.0.gz存档文件命名。然后,日志记录实用程序打开并写入一个名logfile为的新活动文件。此过程也称为文件轮换。当logfile new 达到配置的最大尺寸时logfile.0.gz ,将logfile.1.gz重命名,新logfile的已关闭、压缩和重logfile.0.gz命名。默认情况下,日志记录实用程序以这种方式创建多达10个存档文件。达到最大存档文件数时,如果活动文件的大小达到配置的最大大小,则最后存档文件的内容将被当前活动文件覆盖。默认情况下,日志记录实用程序也会限制可向拥有 Junos OS rootmaintenance权限的用户和用户读取日志文件的用户。

Junos OS 提供的配置语句log-rotate-frequency可配置检查日志文件大小的时间间隔,从而配置系统日志文件循环频率。可将频率设置为1分钟到59分钟之间的值。默认频率为15分钟。

要配置日志旋转频率,请将log-rotate-frequency语句包含在[edit system syslog]层次结构级别。

您可以包括archive语句以更改每个文件的最大大小、创建多少个存档文件以及谁可以读取日志文件。

要配置适用于所有日志文件的值,请将archive语句包含在[edit system syslog]层次结构级别:

要配置应用于特定日志文件的值,请将archive语句包含在[edit system syslog file filename]层次结构级别:

archive-sites site-name指定要用于存储文件的存档网站列表。site-name该值是任何目标的有效 FTP URL。如果配置了一个以上的站点名称,将创建系统日志文件的存档站点列表。存档文件时,路由器或交换机尝试将文件传输至列表中的第一个 URL,仅当传输未成功时才转至下一个站点。日志文件存储在存档站点上,并带有指定的日志文件名。有关如何指定有效 FTP Url 的信息,请参阅JUNOS OS CLI 命令中用于指定文件名和 url 的格式

binary-data将文件标记为包含二进制数据。这样可以正确存档二进制文件,例如 WTMP 文件(基于 UNIX 的系统的登录记录)。要恢复默认设置,请包括no-binary-data语句。

files number指定在覆盖最旧的文件之前要创建的文件数量。该值可为1到1000。

size size指定每个文件的最大大小。该值从 64 KB (64k) 到 1 GB (1g);表示兆字节,请使用整数 m 后的字母。数字km、或g单位字母之间没有空格。

start-time "YYYY-MM-DD.hh:mm"定义本地时区中的日期和时间,将活动日志文件一次性传输到archive-sites语句指定的站点列表中第一个可到达的站点。

transfer-interval interval定义当前日志文件保持打开状态的时间量(即使未达到最大可能大小),并在关闭之前接收新统计信息并传输到存档站点。此间隔值可能为5到2880分钟。

world-readable允许所有用户读取日志文件。要恢复默认权限,请包含no-world-readable语句。

在系统日志消息中包括优先级信息

消息的功能和严重级别统称为其优先级。默认情况下,以标准 Junos OS 格式记录的消息不包括有关优先级的信息。要在定向到文件的标准格式消息中包括优先级信息,请将explicit-priority语句包含在[edit system syslog file filename]层次结构级别:

注:

以结构化数据格式记录的消息在默认情况下包含优先级信息。如果将structured-data语句与[edit system syslog file filename]explicit-priority语句一起包含在层次结构级别,则忽略该explicit-priority语句,并以结构化数据格式记录消息。

有关该structured-data语句的信息,请参阅记录结构化数据格式的消息

要在定向到远程机器或其他路由引擎的消息中包括优先级信息,请将explicit-priority该语句包含[edit system syslog host (hostname | other-routing-engine)]在层次结构级别:

注:

other-routing-engine选项不适用于 QFX 系列。

消息中记录的优先级始终指示原始本地设备名称。如果对facility-override定向到远程目标的消息包含该语句,则 Junos OS 系统日志记录实用程序在将消息本身定向到远程目标时,仍然使用备用工具名称。有关详细信息,请参阅更改定向到远程目标的系统日志消息的替代工具名称

当包含explicit-priority该语句时,如果消息有一个,Junos OS 记录实用工具将设备名称和严重性级别的代码固定到消息标记名称中:

(标记是分配给某些 Junos OS 系统日志消息的唯一标识符。)

在以下示例中, CHASSISD_PARSE_COMPLETE消息属于daemon设备并被分配严重性info (6):

如果不explicit-priority包含该语句,则该优先级不会出现在消息中:

在优先级信息中报告的系统日志工具代码和数字代码

表 2列出了可出现在系统日志消息中的设备代码,并将其映射到设施名称。

注:

如果中表 2的第二列未包括代码的 Junos OS 工具名称,则该设施不能包含在[edit system syslog]层次结构级别的语句中。Junos OS报告内部运营时,可能会使用 中和未列出的其他 表 2 设施。

表 2: 在优先级信息中报告的资金融通代码

编码

Junos 设施名称

事件类型或错误

AUTH

authorization

身份验证和授权尝试

AUTHPRIV

 

仅可由超级授权查看的身份验证和授权尝试

CHANGE

change-log

Junos OS 配置更改

CONFLICT

conflict-log

路由器类型上的指定配置无效

CONSOLE

 

/dev/console由内核控制台输出 r 写入的消息

CRON

 

Cron 进程执行的操作或出错

DAEMON

daemon

系统进程执行的操作或出错

DFC

dfc

动态流捕获过程所执行或出错的操作

FIREWALL

firewall

防火墙过滤器执行的数据包过滤操作

FTP

ftp

FTP 进程执行的操作或发生的错误

INTERACT

interactive-commands

由客户端应用程序(如 Junos XML 协议或 NETCONF 客户端)发出的 Junos OS CLI 提示或调用的命令

KERN

kernel

Junos 内核遇到的操作或错误

NTP

 

网络时间协议(NTP)执行或出错的操作

PFE

pfe

数据包转发引擎所执行的操作或出现的错误

SYSLOG

 

Junos 系统日志记录实用程序执行或出错的操作

USER

user

用户空间进程执行的操作或出错

表 3列出了系统日志消息中可能出现的数字严重性代码,并将它们映射到严重性级别。

表 3: 优先级信息中报告的严重性级别的数字代码

数字代码

严重性级别

Description

0

emergency

导致路由器停止运行的系统紧急情况或其他情况

1

alert

需要立即更正的情况,例如系统数据库损坏

2

critical

严重情况,例如硬错误

3

error

通常与紧急、警报和严重级别错误相比严重后果较低的错误情况

4

warning

保证监控的条件

5

notice

不存在错误但可能需要特殊处理的情况

6

info

相关事件或 nonerror 条件

7

debug

软件调试消息(仅当技术支持代表要求您配置此严重性级别时才出现)

时间戳中包含年份或毫秒

默认情况下,标准格式系统日志消息中记录的时间戳指定记录消息时的月份、日期、小时、分钟和秒,如以下示例中所示:

要包括年份、毫秒或时间戳两者,请包含 语句(位于 time-format[edit system syslog][edit security log] 层次结构级别):

但是,traceoption 消息的时间戳默认情况下以毫秒为单位指定,并且独立于[edit system syslog time-format]语句。

修改后的时间戳用于定向file到由、 consoleuser语句在[edit system syslog]层次结构级别上配置的每个目标的消息中,但不用于由host语句配置的目标。

注:

默认情况下,在 FreeBSD 控制台中,附加的时间信息不可用于定向到host语句配置的每个目标的系统日志消息中。但是,在使用 FreeBSD console 的 Junos OS 特定实施中,会在定向到每个目的地的系统日志消息中提供附加时间信息。

以下示例说明了包括毫秒(401)和年份(2006)的时间戳的格式:

注:

默认情况下,以结构化数据格式记录的消息包括年份和毫秒。如果在[edit system syslog file filename]层次结构级别与time-format语句一起包含结构化数据语句,则忽略该time-format语句,并以结构化数据格式记录消息。

有关该structured-data语句的信息,请参阅记录结构化数据格式的消息

使用字符串和正则表达式来精炼记录集消息

预定义的设备组与相关消息相匹配,但您还可以根据字符串和正则表达式来优化消息,以细化从设备记录到文件、用户终端或远程目标的消息。

match-stringsmatch配置语句使您可以分别将系统日志消息与字符串或正则表达式匹配。您可以将这些语句包含在以下层次结构级别:

  • [edit system syslog file filename](对于文件)

  • [edit system syslog user (username | *)](对于特定用户会话或终端上的所有用户会话)

  • [edit system syslog host (hostname | other-routing-engine)](对于远程目标)

要根据正则表达式评估消息,并且仅将匹配消息记录到给定目标,请match包含语句并指定正则表达式:

从 Junos OS 版本16.1 开始,您可以使用简单字符串比较更高效地过滤消息,因为它比与复杂的正则表达式相匹配的 CPU 消耗更少。要指定消息要记录到目标的消息中必须出现的文本字符串,请包含match-strings语句并指定匹配字符串或字符串列表:

match-stringsmatch语句使用配置的设备和严重性(与给定字符串或正则表达式匹配)选择消息。该match-strings语句执行简单的字符串比较,因此占用 CPU 的工作量要比使用match语句来与复杂的正则表达式相匹配。如果为同一目标配置match and match-strings语句,Junos OS 首先评估match-strings条件;如果消息中包含任何已配置的子字符串,则记录消息且不评估match条件。如果不match-strings满足条件,系统将根据match配置语句中的正则表达式评估消息。

为 语句指定正则表达式时,对于扩展(现代)UNIX 正则表达式,请使用 match POSIX 标准 1003.2 中定义的表示法。解释正则表达式语法超出本文档的范畴,但 POSIX 标准可从电气和电子工程师协会(IEEE、 http://www.ieee.org)获得。

表 4指定由某些可在 match 语句中使用的正则表达式运算符匹配的字符或字符。在说明中,术语 "术语" 指的是一个字母数字字符或一组括在方括号、圆括号或大括号内的字符。

注:

match语句不区分大小写。

表 4: Match 语句的正则表达式运算符
操作人员 一致

.期

除空格以外的任何字符的一个实例。

* (星号)

上一术语零个或多个实例。

+ (加号)

紧挨上一术语的一个或多个实例。

?(问号)

零或紧挨上一术语的一个实例。

|主管

管道运算符两侧显示的一项。

!(感叹号)

当感叹号出现在表达式的开头时,除表达式指定的字符串外,其他任何 string 都除外。感叹号的使用 Junos OS 特定的。

^ (插入符号)

当插入符号出现在方括号外时,该行的开头。

当脱字号为方括号内的第一个字符时,不在方括号内跟随其任何字符的一个实例。

美元(美元符号)

行尾。

[] (成对方括号)

其中一个包含字母数字字符的实例。要指示一定范围内的字符,请使用连字符(-)分隔范围的开始和结束字符。例如,[z0-9] 与任何字母或数字匹配。

()(成对圆括号)

所附术语的计算值的一个实例。括号用于指示正则表达式中的求值顺序。

使用字符串和正则表达式

过滤属于该interactive-commands设施的邮件,将包含该字符串configure的消息定向到 root 用户的端子:

当用户发送命令以进入配置模式时,用户终端上将显示如下 rootconfigure 消息:

过滤属于该daemon设施且具有严重程度error或更高的消息,将其定向至文件。 /var/log/process-errors 忽略由 SNMP 进程(snmpd)生成的消息,然后将其定向到文件/var/log/snmpd-errors

为 match 语句 Junos 系统日志正则表达式运算符

表 5: Match 语句的正则表达式运算符

操作人员

一致

.

除空格以外的任何字符的一个实例。

*后面

上一术语零个或多个实例。

+(加号)

紧挨上一术语的一个或多个实例。

?(问号)

零或紧挨上一术语的一个实例。

|主管

管道运算符两侧显示的一项。

!(感叹号)

当感叹号出现在表达式的开头时,除表达式指定的字符串外,其他任何 string 都除外。使用感叹点Junos OS特定。

^

在插入符号出现在方括号外时的行开头。

当脱字号为方括号内的第一个字符时,不在方括号内跟随其任何字符的一个实例。

$(美元符号)

行尾。

[ ](成对方括号)

其中一个包含字母数字字符的实例。要指示一系列字符,请使用连字符 ( ) 分隔该范围的 - 开始字符和结束字符。例如, [a-z0-9]匹配任何字母或数字。

( )(成对括号)

所附术语的计算值的一个实例。括号用于指示正则表达式中的求值顺序。

禁用设备的系统日志记录

要禁用记录属于特定设备的消息,请在配置中包含该facility none语句。例如,当您希望记录具有相同严重性级别且属于多个设施的所有消息时,此语句很有用。您无需为要记录的每个设备包含一条语句,而是any severity可以在不想facility none记录的每个设备上包括语句和语句。例如,以下记录了error级别或更高级别的所有消息,但来自daemonkernel工具的消息除外。来自这些设备的消息将改为记录>/var/log/internals到文件中:

例子配置系统日志记录

以下示例显示如何在 CLI 提示符下或由客户端应用程序(如 Junos OS XML 协议或 NETCONF 客户端应用程序)或通过所有身份验证或授权调用的所有命令配置有关消息的记录尝试对登录的任何用户cli-commands的文件和终端:

以下示例显示如何将报警状态中所有更改的日志记录到文件/var/log/alarms中:

下面的示例演示如何配置对各种类型消息的处理,详见注释中的说明。信息将记录到两个文件、用户alex终端、远程机器和控制台上:

下面的示例说明如何配置用户发出 Junos OS CLI 命令时生成的消息处理,方法是在以下严重性interactive-commands级别指定设备:

  • info—当用户在出现操作或配置模式提示时CLI记录消息。该示例将消息写入文件/var/log/user-actions

  • notice—当用户发出配置模式命令 和 时记录 rollback 消息 commit 。该示例将消息写入用户philip的终端。

  • warning—当用户发出重新启动软件进程的命令时,记录消息。该示例将消息写入控制台。

例子分配替代设施

将本地路由平台上生成的所有消息记录在错误级别,或者放在local0远程机器上称为monitor.mycompany.com的设备上:

配置位于加利福尼亚州的路由平台和位于纽约市的路由平台,以向称为 的单个远程计算机发送消息 central-logger.mycompany.com 。来自加利福尼亚州的消息被分配为替代设备,来自 local0 纽约的消息将被分配至其他设施 local2

  • 配置加利福尼亚路由平台以在local0设备中聚合消息:

  • 配置纽约路由平台以在local2设备中聚合消息:

central-logger中,您可以将系统日志记录实用程序配置为将local0来自设备的消息california-config写入文件,并将local2消息从设备发送new-york-config到文件。