syslogd 守护程序

用途

记录系统消息。

语法

syslogd [-a] [ -d ] [ -s ] [ -f ConfigurationFile ] [ -m MarkInterval ] [ -r ] [ -R ] [ -n ] [ -N ] [ -p LogName ] [ -M all ] [ -A AdditionalLog ] [-e]

描述

syslogd 守护程序读取数据报套接字,并将每个消息行发送到 /etc/syslog.conf 配置文件描述的目标。 syslogd 守护程序在激活和收到挂断信号时读取配置文件。

syslogd 守护程序创建 /etc/syslog.pid 文件,它包含一个单行,内容是用于结束或重新配置 syslogd 守护程序的命令进程标识。

发送到 syslogd 守护程序的终止信号结束该守护程序。 syslogd 守护程序记录结束信号信息并立刻终止。

每条消息占一行。 报文可以包含优先级代码,该代码以 < >(角括号)括在行首的数字标记。 可能会截短长度超过 900 字节的消息。

/usr/include/sys/syslog.h 包含文件定义了配置文件使用的程序和优先级代码。 本地写的应用程序使用包含在 syslog.h 文件中的定义来通过 syslogd 守护程序记录消息。

注: syslogd 日志文件的最大文件大小不能超过 2GB。

标志

-a
阻止对来自远程主机的消息进行逆向主机名查询,并将该远程主机的 IP 地址记录到日志文件中。
-d
打开调试。
-e
指定增强型轮换。 会考虑日志目录中提供且由 syslogd 守护程序创建的所有压缩和解压缩文件用于轮换。
-f ConfigurationFile
指定备用的配置文件。
-m MarkInterval
指定在 mark 命令消息之间的分钟数。 如果不使用这个标志,那么 mark 命令每 20 分钟发送一个具有 LOG_INFO 优先级的消息。 此设施未由包含星号 (*) 的 selector 字段启用,该字段将选择所有其他设施。
--M所有
指定不要禁止日志文件中的重复消息。 仅当与 all 参数一起使用时,此标志才有效。
-s
指定对本地系统上生成的所有转发系统日志消息都转发一条“缩短的”消息到另一个系统(如果它被配置成这样做)。
-r
禁止记录从远程主机接收的消息。
-R
使用因特网域套接字禁止设施从网络接收消息。
-n
禁止"Message forwarded from <log_host_name>: "添加到转发到远程日志主机的系统日志消息开头的字符串。
-N
禁止在每个日志消息中记录优先级和程序信息。
-p
指定数据报套接字的备用路径名。
-A AdditionalLog
指定 syslogd 守护程序检查的其他日志。 缺省情况下, syslogd 守护程序会检查 /dev/log 文件中是否存在消息。 如果指定此标志,它还检查其他文件中的消息。 其他日志可能在 chroot 路径中。

配置文件

配置文件通知 syslogd 守护程序将系统消息发送到哪里,这取决于消息的优先级和生成该消息的程序。

如果不使用 -f 标志,那么 syslogd 守护程序将读取缺省配置文件 /etc/syslog.con 文件。

syslogd 守护程序会忽略空行及以编号符号(#)开头的行。

格式

syslogd 守护程序的配置文件中的行包含 selector 字段、action 字段和可选的 rotation 字段,用一个或多个制表符或空格分隔。

selector 字段将 facilitypriority level命名。 用 ,(逗号)分隔工具名称。 用 .(句点)分隔 selector 字段的工具和优先级部分。 :NONE. 用 ;(半角分号)分隔同一 selector 字段的多个条目。 使用 *(星号)选择所有的程序。

action 字段标识用于接收消息的 目标 (文件,主机或用户)。 如果路由到远程主机,那么远程系统会处理在其自己的配置文件中表示的消息。 要在用户的终端显示消息,destination 字段必须包含有效的登录系统的用户名。

rotation 字段标识怎样使用轮换。 如果 action 字段是文件,那么可以根据大小和/或时间进行轮换。 也可以压缩和/或归档轮换的文件。

设施

selector字段中使用以下系统设施名称:

程序 描述
内核 内核
用户 用户级别
mail 邮件子系统
守护程序 系统守护程序
auth 安全或授权
syslog syslogd 守护程序
lpr 行式打印机子系统
news 新闻子系统
uucp uucp 子系统
local0local7 本地使用
* 所有程序

优先级级别

selector 字段中使用下列的消息优先级。 指定等级及所有更高优先级的消息会按指示发送。

Priority 描述
紧急 指定紧急消息(LOG_EMERG)。 这些消息并非分发给所有用户。 可以将 LOG_EMERG 优先级消息记录到单独文件备查。
警报 指定重要的消息(LOG_ALERT),如严重的硬件错误。 这些消息分发给所有用户。
批评 指定不列为错误的关键消息(LOG_CRIT),如不适当的登录尝试。 LOG_CRIT 和较高优先级消息会发送到系统控制台。
err 指定表示错误情况的消息(LOG_ERR),例如失败的磁盘写入。
警告 指定反常但可恢复的情况的消息(LOG_WARNING)。
notice 指定重要的参考消息(LOG_NOTICE)。 没有指定优先级的消息会映射为此优先级的消息。
信息 指定参考消息(LOG_INFO)。 这些消息可以废弃,但它们在分析系统是很有用。
调试 指定调试消息(LOG_DEBUG)。 这些消息可以废弃。
NONE 排除选定的程序。 仅当在同一 selector 字段中前面有带有 * (星号) 的条目时,此优先级才有用。

目标

使用 action 字段中的下列消息目标。

文件名
以附加方式打开的文件的完整路径名
@主机
主机名,前置 at 符号 (@ )
用户[, 用户] [...]
用户名
*
所有用户
中央LogSpaceName/LogStreamName
PowerHA® pureScale® 日志流
注意:必须有PowerHA pureScale设备才能使用centralizedlogLogSpaceName/LogStreamName消息目的地。

轮换

使用下列在 rotation 字段里的轮换关键字。

循环
该关键字必须在 action 字段之后指定。
大小
该关键字指定旋转基于的大小。 其后接数字和一个 k(千字节)或 m(兆字节)。
时间
该关键字指定旋转基于的时间。 其后接数字和一个 h(小时)或 d(日)或 w(周)或 m(月)或 y(年)。
文件
该关键字指定旋转的文件的总数。 其后接数字。 如果未指定,那么有不限数量的轮换文件。
压缩 (compress)
该关键字指定要压缩的已保存轮换文件。
归档
该关键字指定将保存的轮换文件复制到目录。 其后接目录名。

命令行标志在 syslogd 轮换上的效果::

-e 标志:
此标志用来增强 syslogd 旋转策略。 当使用此标志时,会在轮换期间考虑所有压缩和解压缩文件。
如果日志文件循环频率仅由时间来确定,那么可以通过输入以下命令来重置计时器:
refresh -s syslogd
在预定的时间间隔内运行此命令时,不会进行基于前一次循环的时间的下一次循环。

示例

  1. 要将调试级别或更高级别的所有邮件工具消息记录到文件 /tmp/mailsyslog中,请输入以下命令:
    mail.debug /tmp/mailsyslog
  2. 将除来自邮件设施的系统消息以外的所有系统消息发送到指定的主机rigil,请输入以下命令:
    *.debug;mail.none @rigil
  3. 从所有设施以 紧急 优先级向用户发送消息,并从邮件和守护程序设施以 crit 优先级及以上级别向用户发送消息nickjam,请输入以下命令:
    *.emerg;mail,daemon.crit nick, jam
  4. 要将所有邮件工具消息发送到所有用户的终端屏幕,请输入以下命令:
    mail.debug *
  5. 要将调试级别或更高级别的所有设施消息记录到文件 /tmp/syslog.out中,并使该文件在大于 500 千字节时进行旋转,或者如果经过一周时间,请将旋转的文件数限制为 10 ,使用压缩,还使用 /syslogfiles 作为归档目录,请输入以下命令:
    *.debug /tmp/syslog.out rotate size 500k time 1w files 10 compress archive /syslogfiles  
  6. 要将 syslog.out 文件的轮换调度设置为仅每五天轮换一次,请输入以下命令:
    *.debug /var/log/syslog.out rotate time 5d
    您可以在进行下一次循环之前随时通过输入以下命令来重置计时器:
    refresh -s syslogd
    重置计时器之后,将在从输入刷新命令时开始的预定时间间隔之后进行下一次循环。

文件

/etc/syslog.conf
控制 syslogd 的输出。
/etc/syslog.pid
包含进程标识。