例子

将 Linux 机器上的所有关键事件记录在 /var/log 内的单独日志文件中,名称为critical.log
在 /etc/syslog.conf 中添加这一行

*.=crit            /var/log/critical.log

在 /var/log/firewall.log 内的单独日志文件中记录所有与内核相关的消息

# Add a new line
Kern.*       /var/log/firewall.log
# Add a new entry at the end of the below line
# Log anything (except mail) of level info or higher.
# don’t log private authentication messages!
# don’t log kernel related events and messages
*.info;mail.none;authpriv.none;cron.none;kern.none                /var/log/messages

将所有错误日志重定向到远程用户 root 和其终端上的 jack

# Messages of the priority alert will be directed
# to the operator
#*.err                      root,jack

在 /var/log/firewall-warning.log 中记录所有防火墙警告级别消息

Kern.warn                                           /var/log/firewall-warning.log

支持远程日志记录

这些修改为 syslogd 工具提供了网络支持。
网络支持意味着消息可以从一个运行 syslogd 的节点转发到另一个运行 syslogd 的节点,在那里它们将被实际记录到磁盘文件中。

策略是让 syslogd 在 unix 域套接字上侦听本地生成的日志消息。
此行为将允许 syslogd 与标准 C 库中的 syslog 进行互操作。
同时 syslogd 在标准 syslog 端口上侦听从其他主机转发的消息。
要使这项工作正常进行,/etc/services 文件必须具有以下条目:

Syslog 514/udp

如果缺少此项,syslogd 既不能接收远程消息,也不能发送它们,因为无法打开 UDP 端口。
相反 syslogd 会立即死亡,并发出错误消息。

例如 ,
将所有消息转发到远程主机使用以下 syslog.conf 条目:

# Sample syslogd configuration files to
                   # Messages to a remote host forward all.
*.*            @hostname

要将所有内核消息转发到远程主机,配置文件如下:

# Sample configuration files to forward all kernels
                   # messages to a remote host.
                   kern.*         @hostname
Red Hat Linux 中的 SYSLOG 示例

日志是 Linux 中使用的最重要的标准之一,因为它是关键文件,可确定在 Linux 机器上工作时每秒生成和存储的不同级别的日志。

Syslog 可以作为“系统日志”。

syslog 的主要配置文件是:

对于 RHEL 5 及更早版本

/etc/syslog.conf

对于 RHEL 6 和 7

/etc/rsyslog.conf

系统日志的好处

  • 帮助分析造成任何麻烦或者问题的根本原因
  • 减少整体停机时间,帮助更快地解决所有日志的问题
  • 通过主动检测问题改进事件管理
  • 事件的自决以及自动解决
  • 具有不同严重程度的简化架构,如错误、信息、警告等

syslog.conf 文件是 syslogd 的主要配置文件,它在 *nix 系统上记录系统消息。
此文件指定日志记录规则。
每个规则由两个字段组成,一个选择器字段和一个操作字段。
这两个字段由一个或者多个空格或者制表符分隔。
选择器字段指定属于指定操作的设施和优先级的模式。

selector(选择器)

选择器字段本身又由两部分组成,设施和优先级,用句号(.)分隔。
两个部分都不区分大小写。

例如

Kern.none, mail.info etc
Here
Kern = Facility
None = severity or priority

Facility

Facility是以下关键字之一:auth、authpriv、cron、daemon、kern、lpr、mail、mark、news、security(与 auth 相同)、syslog、user、uucp 和 local0 到 local7.
关键字 security 不应再使用,mark 仅供内部使用,因此不应在应用程序中使用。

无论如何,我们可能希望在此处指定和重定向这些消息。
该工具指定产生消息的子系统,例如:如果所有邮件程序使用 syslog 进行日志记录,则它们会使用邮件工具 (LOG_MAIL) 进行日志记录。

Facility编号

编号Facility描述
0kern内核消息
1user用户级消息
2mail邮件系统
3daemon系统守护进程
4auth安全/授权消息
5syslogSyslogd内部生成的消息
6lpr线打印机子系统
7news网络新闻子系统
8uucpUUCP子系统
9clock daemon
10authpriv安全/授权消息
11ftpFTP守护程序
12-NTP Susbsystem.
13-记录审核
14-日志警报
15cron时钟守护进程
16local0本地使用0(local0)
17local1本地使用1(Local1)
18local2本地使用2(Local2)
19local3本地使用3(Local3)
20local4本地使用4(Local4)
21local5本地使用5(Local5)
22local6本地使用6(Local6)
23local7本地使用7(Local7)

严重程度

优先级是以下关键字之一,按升序排列:debug、info、notice、warning、warn(同warning)、err、error(同err)、crit、alert、emerg、panic(同emerg)。
关键字 error、warn 和 panic 已被弃用,不应再使用。
优先级定义了消息的严重性

Integer严重性
0紧急情况:系统无法使用
1警报:必须立即采取操作
2关键:批判条件
3错误:错误条件
4警告:警告条件
5注意:正常但重要的条件
6信息:信息留言
7调试:调试级别消息

我们可以使用逗号 (,) 运算符在一个语句中指定多个具有相同优先级模式的设施。
我们可以指定任意数量的设施(Facility)。
可以使用分号 ('';'') 分隔符为单个操作指定多个选择器。
请记住,选择器字段中的每个选择器都能够覆盖前面的选择器。
使用此行为,我们可以从模式中排除某些优先级。

日期:2020-06-02 22:18:42 来源:oir作者:oir