将系统日志消息定向到远程目标
指定要包含在日志中的消息的设施和严重性
每个系统日志消息都属于一个设施,该设施将由同一源生成(例如软件进程)或涉及类似条件或活动(例如身份验证尝试)的消息组合在一起。每条消息还会预先分配一个严重 级别,表示触发事件对路由平台功能影响的严重程度。
为设施和目标配置日志记录时,请为每个设施指定严重性级别。来自该级别及更高级别设备中的消息将记录到以下目标:
[edit system syslog]
(console | file filename | host destination | user username) {
facility severity ;
}
有关目标的更多信息,请参阅 将系统日志消息定向到用户终端和将 系统日志消息定向到控制台。
要将属于多个设施的消息记录到特定目标,请将每个设施和关联的严重性指定为目标语句集中的单独语句。
表 1 列出了可在层次结构级别的 [edit system syslog] 配置语句中指定的 Junos OS 系统日志记录功能。
设施 |
事件或错误的类型 |
|---|---|
|
全部(来自所有设施的消息) |
|
身份验证和授权尝试 |
|
对 Junos OS 配置的更改 |
|
指定的配置在路由器类型上无效 |
|
系统进程执行的操作或遇到的错误 |
|
与动态流捕获相关的事件 |
|
在系统日志消息中包括优先级和设施 |
|
本地外部应用程序执行的操作或遇到的错误 |
|
防火墙过滤器执行的数据包过滤操作 |
|
FTP 进程执行的操作或遇到的错误 |
|
在 Junos OS 命令行界面 (CLI) 提示符下发出的命令,或者由 Junos XML 协议或 NETCONF XML 客户端等客户端应用程序发出的命令 |
|
Junos OS 内核执行的操作或遇到的错误 |
|
网络时间协议进程执行的操作或遇到的错误 |
|
数据包转发引擎执行的操作或遇到的错误 |
|
用户空间进程执行的操作或遇到的错误 |
表 2 列出了可在层次结构级别的[edit system syslog]配置语句中指定的严重性级别。从最后info开始emergency的级别按从最高严重性(对功能影响最大)到最低的顺序排列。
与其他严重性级别不同的是,该 none 级别会禁用设施的日志记录,而不是指示触发事件对路由功能的影响有多严重。有关更多信息,请参阅 禁用设施的系统日志记录。
value |
严重性级别 |
描述 |
|---|---|---|
不适用 |
|
禁用将关联设施记录到目标 |
0 |
|
系统崩溃或其他导致路由器停止运行的情况 |
1 |
|
需要立即更正的情况,例如损坏的系统数据库 |
2 |
|
关键情况,如硬错误 |
3 |
|
错误情况通常后果不如紧急、警报和严重级别的错误严重 |
4 |
|
需要监控的条件 |
5 |
|
非错误但可能需要特殊处理的情况 |
6 |
|
关注的事件或非错误条件 |
7 |
|
包括所有严重级别 |
将系统日志消息直接发送到日志文件
要将系统日志消息定向到本地路由引擎的 /var/log 目录中的文件,请在[edit system syslog]层次结构级别包含该file语句:
[edit system syslog] file filename { facility severity; archive <archive-sites (ftp-url <password password>)> <files number> <size size> <start-time "YYYY-MM-DD.hh:mm"> <transfer-interval minutes> <world-readable | no-world-readable>; explicit-priority; match "regular-expression"; structured-data { brief; } }
有关设施和严重性级别的列表,请参阅 指定要包含在日志中的消息的设施和严重性。
为防止日志文件变大,默认情况下,Junos OS 系统日志记录实用程序会将消息写入定义大小的文件序列。通过包含该 archive 语句,您可以为所有日志文件或特定日志文件配置文件数、文件最大大小以及可以读取这些文件的人员。有关详细信息,请参阅 指定日志文件大小、编号和存档属性。
有关以下语句的信息,请参阅指定的部分:
explicit-priority—请参阅在 系统日志消息中包括优先级信息match—请参阅 使用字符串和正则表达式优化记录消息集structured-data—请参阅 以结构化数据格式记录消息
将系统日志消息直接发送到用户终端
要在一个或多个特定用户(或所有用户)登录到本地路由引擎时,将系统日志消息定向到其终端会话,请在层次结构级别包含该 user 语句 [edit system syslog] :
[edit system syslog] user (username | *) { facility severity; match "regular-expression"; }
指定一个或多个 Junos OS 用户名,用空格分隔多个值,或使用星号 (*) 表示登录到本地路由引擎的所有用户。
有关日志记录设施和严重性级别的列表,请参阅 指定要包含在日志中的消息的设施和严重性。有关该 match 语句的信息,请参阅 使用字符串和正则表达式优化记录消息集。
将系统日志消息直接发送到控制台
要将系统日志消息定向到本地路由引擎的控制台,请在层次结构级别包含以下 console 语句 [edit system syslog] :
[edit system syslog] console { facility severity; }
有关日志记录设施和严重性级别的列表,请参阅 指定要包含在日志中的消息的设施和严重性。
将系统日志消息定向到远程计算机或其他路由引擎
要将系统日志消息定向到远程计算机或其他路由引擎,请在[edit system syslog]层次结构级别包含该host语句:
[edit system syslog] host (hostname | other-routing-engine) { facility severity; explicit-priority; facility-override facility; log-prefix string; match "regular-expression"; source-address source-address; structured-data { brief; } } source-address source-address;
要将系统日志消息定向到远程计算机,请包含以下hosthostname语句以指定远程计算机的 IP 版本 4 (IPv4) 地址、IP 版本 6 (IPv6) 地址或完全限定主机名。远程计算机必须运行标准syslogd实用程序。我们不建议将消息定向到其他瞻博网络设备。在定向到远程计算机的每条系统日志消息中,本地路由引擎的主机名会出现在时间戳之后,以指示它是消息的来源。
要将系统日志消息定向到安装了两个路由引擎且可运行的设备上的其他路由引擎,请包含该 host other-routing-engine 语句。该语句不会自动互惠,因此如果您希望路由引擎相互定向发送消息,则必须将其包含在每个路由引擎配置中。在定向到另一个路由引擎的每条消息中,字符串 re0 or re1 出现在时间戳之后,以指示消息的来源。
有关要在语句下 host 配置的日志记录设施和严重性级别的列表,请参阅 指定要包含在日志中的消息的功能和严重性。
要在每条消息中记录设施和严重性级别信息,请包含该 explicit-priority 语句。有关更多信息,请参阅 在系统日志消息中包括优先级信息。
有关该 match 语句的信息,请参阅 使用字符串和正则表达式优化记录消息集。
将消息定向到远程计算机时,可以包含该 source-address 语句以将消息中报告的设备的 IP 地址指定为其源。在每个 host 语句中,包括 facility-override 用于分配替代设施的语句和 log-prefix 用于向每条消息添加字符串的语句。您可以包含以下 structured-data 语句,以便以 IETF 系统日志消息格式将结构化系统日志消息转发到远程系统日志服务器。
为定向到远程目标的系统日志消息指定备用源地址
要指定在将消息定向到远程计算机时要在系统日志消息中报告的源路由器,请在层次结构级别包含[edit system syslog]该source-address语句:
[edit system syslog] source-address source-address;
source-address是在其中一个路由器接口上配置的有效 IPv4 或 IPv6 地址。该地址在定向到层次结构级别语[edit system syslog]句中host hostname指定的所有远程计算机的消息中报告,但在定向到其他路由引擎的消息中不会报告。
将文本字符串添加到系统日志发送到远程目标的消息
要向定向到远程计算机或其他路由引擎的每条系统日志消息添加文本字符串,请在层次结构级别包含以下 log-prefix 语句 [edit system syslog host] :
[edit system syslog host (hostname | other-routing-engine)] facility severity; log-prefix string;
字符串可以包含除等号 ( = ) 和冒号 ( : ) 之外的任何字母数字或特殊字符。它也不能包含空格字符;不要用引号 (“ ”) 将字符串括起来,试图在其中包含空格。
当系统日志消息写入日志时,Junos OS 系统日志记录实用程序会自动将冒号和空格追加到指定的字符串中。该字符串将插入在生成消息的路由引擎的标识符之后。
以下示例说明如何将字符串 M120 添加到所有消息中,以指示路由器是M120路由器,并将消息定向到远程计算机 hardware-logger.mycompany.com:
[edit system syslog]
host hardware-logger.mycompany.com {
any info;
log-prefix M120;
}
当这些配置语句包含在名为 origin1 的M120路由器上时,系统登录 hardware-logger.mycompany.com 中的消息如下所示:
Mar 9 17:33:23 origin1 M120: mgd[477]: UI_CMDLINE_READ_LINE: user ‘root’, command ‘run show version’
更改定向至远程目标的系统日志消息的备用设施名称
分配给本地路由器或交换机上记录的邮件的某些设施具有特定于 Junos OS 的名称(请参阅 Junos OS 系统日志记录设施)。在建议的配置中,在层次结构级别指定的 [edit system syslog host hostname] 远程计算机不是瞻博网络路由器或交换机,因此其 syslogd 实用程序无法解释特定于 Junos OS 的名称。为了在将消息定向到远程计算机时,使标准 syslogd 实用程序能够处理来自这些设施的消息,将使用标准 localX 设施名称而不是特定于 Junos OS 的工具名称。
定向到远程目标的系统日志消息的默认设施 在用于它的 Junos OS 特定设施名称旁边列出了默认备用设施名称。
远程计算机上的 syslogd 实用程序以相同的方式处理属于设施的所有消息,无论消息的来源(瞻博网络路由器或交换机或远程计算机本身)如何。例如,路由器 local-router 配置中的以下语句称为从设备到远程计算机的 authorization 直接消息 monitor.mycompany.com:
[edit system syslog]
host monitor.mycompany.com {
authorization info;
}
本地 authorization 设施的默认替代设施也是 authorization。如果将 syslogd monitor 实用程序配置为将属于该设施的 authorization 消息写入文件 /var/log/auth-attempts,则该文件包含用户登录 local-router 时生成的消息以及用户登录 monitor时生成的消息。尽管源计算机的名称显示在每个系统日志消息中,但来自多台计算机的消息混合会使分析文件内容 auth-attempts 变得更加困难。
为了更轻松地将消息与每个源分开,您可以为在将消息定向到 monitor时生成local-router的所有消息分配一个替代工具。然后,您可以配置 monitor syslogd 实用程序,以便使用替代工具将消息写入与自身生成monitor的消息不同的文件。
要更改用于定向到远程计算机的所有消息的工具,请在层次结构级别包含[edit system syslog host hostname]该facility-override语句:
[edit system syslog host hostname] facility severity; facility-override facility;
通常,指定远程计算机上尚未使用的替代设施(例如其中 localX 一个设施)是有意义的。在远程计算机上,还必须配置 syslogd 实用程序以所需的方式处理消息。
facility-override 语句的功能 列出了可在语句中 facility-override 指定的功能。
我们不建议在层次结构级别包含[edit system syslog host other-routing-engine]该facility-override语句。将消息定向到其他路由引擎时,无需使用备用设施名称,因为其 Junos OS 系统日志记录实用程序可以解释特定于 Junos OS 的名称。
以下示例说明如何将本地路由器上生成的错误级别或更高级别的所有消息记录到名为 monitor.mycompany.com 的远程计算机上的 local0 设施:
[edit system syslog]
host monitor.mycompany.com {
any error;
facility-override local0;
}
以下示例说明如何配置位于加利福尼亚的路由器和位于纽约的路由器,以向名为 central-logger.mycompany.com 的单个远程计算机发送消息。来自加利福尼亚的消息被分配给备用设施 local0,来自纽约的消息被分配给备用设施 local2。
配置加利福尼亚路由器以聚合 local0 设施中的消息:
[edit system syslog] host central-logger.mycompany.com { change-log info; facility-override local0; }配置纽约路由器以聚合 local2 设施中的消息:
[edit system syslog] host central-logger.mycompany.com { change-log info; facility-override local2; }
然后,在中央记录器上,您可以配置系统日志记录实用程序,以将消息从 local0 设施写入文件 change-log ,并将消息从 local2 设施写入文件 new-york-config。
将系统日志消息定向到远程目标的默认设施
表 3 列出了所用 Junos OS 特定设施名称旁边的默认备用设施名称。对于未列出的设施点,默认备用名称与本地设施点名称相同。
特定于 Junos OS 的本地设施 |
定向至远程目标时的默认设施 |
|---|---|
更改日志 |
本地6 |
冲突日志 |
本地5 |
DFC |
本地 1 |
防火墙 |
本地3 |
交互式命令 |
本地7 |
PFE |
本地4 |
用于将系统日志消息定向到远程目标的备用工具
表 4 列出了可在语句中 facility-override 指定的设施。
设施 |
描述 |
|---|---|
|
身份验证和授权尝试 |
|
系统进程执行的操作或遇到的错误 |
|
FTP 进程执行的操作或遇到的错误 |
|
Junos OS 内核执行的操作或遇到的错误 |
|
本地设施编号 0 |
|
当地设施 1 号 |
|
当地设施 2 号 |
|
当地设施 3 号 |
|
当地设施编号 4 |
|
当地设施编号 5 |
|
当地设施编号 6 |
|
当地设施编号 7 |
|
用户空间进程执行的操作或遇到的错误 |
我们不建议在层次结构级别包含[edit system syslog host other-routing-engine]该facility-override语句。将消息定向到其他路由引擎时,无需使用备用设施名称,因为其 Junos OS 系统日志记录实用程序可以解释特定于 Junos OS 的名称。
示例:为定向到远程目标的系统日志消息分配替代设施
将本地路由平台上以错误级别或更高级别生成的所有消息记录到远程计算机上的工具,称为local0monitor.mycompany.com:
[edit system syslog]
host monitor.mycompany.com {
any error;
facility-override local0;
}
配置位于加利福尼亚的路由平台和位于纽约的路由平台,以将消息发送到名为 central-logger.mycompany.com 的远程计算机。将为来自加利福尼亚的消息分配备用设施 local0,将来自纽约的消息分配给备用设施 local2。
配置加利福尼亚路由平台以聚合设施中的
local0消息:[edit system syslog] host central-logger.mycompany.com { change-log info; facility-override local0; }配置纽约路由平台以聚合设施中的
local2消息:[edit system syslog] host central-logger.mycompany.com { change-log info; facility-override local2; }
然后 central-logger, ,您可以配置系统日志记录实用程序,以将来自设施的 local0 消息写入文件 california-config ,并将来自设施的 local2 消息写入文件 new-york-config。