Go to main content

手册页部分 8:系统管理命令

退出打印视图

更新时间: 2022年7月27日 星期三
 
 

syslogd(8)

名称

syslogd - 记录系统消息

用法概要

/usr/sbin/syslogd [-d] [-f configfile] [-m markinterval] 
     [-p path] [-t | -T]

描述

syslogd 可根据消息的优先级以及生成消息的系统工具读取系统消息,并将其转发到适当的日志文件或用户。配置文件 /etc/syslog.conf(请参见 syslog.conf(5))可控制将消息转发到的位置。syslogd 将每 markinterval 分钟(缺省为 20 分钟)记录一次优先级为 LOG_INFO 的标记(时间戳)消息,并将该消息记录到在 syslog.conf 文件中命名为 mark 的工具中。

系统消息包括单行文本,其前缀可能为括在尖括号 (< >) 中的优先级代码编号;优先级可在 <sys/syslog.h> 中进行定义。

syslogd 可从 STREAMS 日志驱动程序 /dev/log 以及 /etc/netconfig/etc/net/transport/hosts/etc/net/transport/services 中指定的任何传输提供程序读取消息。

syslogd 将在启动时读取配置文件,一旦它收到 HUP 信号(请参见 signal.h(3HEAD)),并关闭已打开的所有文件,它就会再次读取其配置文件,然后仅打开该配置文件中列出的日志文件。syslogd 将在收到 TERM 信号时退出。

syslogd 将在启动时创建文件 /var/run/syslog.pid,如果可能,该文件将包含进程标识符 (PID)。

If message ID generation is enabled (see log(4D)), each message will be preceded by an identifier in the following format: [ID msgid facility.priority]. msgid is the message's numeric identifier described in msgid(8). facility and priority are described in syslog.conf(5). [ID 123456 kern.notice] is an example of an identifier when message ID generation is enabled.

如果消息是从可装入的内核模块或驱动程序生成的,则会显示内核模块名称(例如 ufs),而不是 unix。请参见”示例“部分以了解在启用和不启用消息 ID 生成的情况下 syslogd 的输出样例。

为了减少视觉混乱,在将消息写入控制台时,不会显示消息 ID;消息 ID 仅写入日志文件。请参见“示例”部分。

/etc/default/syslogd 文件包含缺省参数设置,如果未选择 –t–T 选项,则这些缺省设置将生效。

The recommended way to allow or disallow message logging is through the use of the service management facility (smf(7)) instance svc:/system/system-log:default property:

config/log_from_remote

该属性用于指定是否记录远程消息。log_from_remote=true 等效于 –t 命令行选项,而 false 等效于 –T 命令行选项。The default value for log_from_remote is false.请参见“附注”部分。

LOG_FROM_REMOTE

指定是否记录远程消息。LOG_FROM_REMOTE=NO 等效于 –t 命令行选项。LOG_FROM_REMOTE 的缺省值为 YES

选项

支持以下选项:

–d

启用调试功能。只有当系统处于多用户模式时,才应在 root shell 中以交互方式使用该选项。该选项应在系统启动脚本中使用,因为在启动 syslogd 时会使系统挂起。

–f configfile

指定备用配置文件。

–m markinterval

指定标记消息之间的间隔(以分钟为单位)。

–p path

指定备用日志设备名称。缺省值为 /dev/log

–T

启用 syslogd UDP 端口以启用远程消息日志记录。这是缺省行为。

–t

禁用 syslogd UDP 端口以禁用远程消息日志记录。

示例

示例 1 未启用消息 ID 生成时 syslogd 的输出

以下示例说明了启用消息 ID 生成时 syslogd 的输出:

Sep 29 21:41:18 cathy unix: alloc /: file system full
示例 2 启用消息 ID 生成时 syslogd 的输出

以下示例说明了启用消息 ID 生成时 syslogd 的输出。在将消息写入日志文件 /var/adm/messages 时,将显示消息 ID。

Sep 29 21:41:18 cathy ufs: [ID 845546 kern.notice] alloc /: file system full
示例 3 启用消息 ID 生成时 syslogd 的输出

以下示例说明了在启用消息 ID 生成的情况下将消息写入控制台时的 syslogd 输出:即使已启用消息 ID,控制台上也不会显示消息 ID。

Sep 29 21:41:18 cathy ufs: alloc /: file system full
示例 4 启用接受来自远程系统的 UDP 消息

以下命令将使 syslogd 可以接受来自远程系统的条目。

# svccfg -s svc:/system/system-log:default setprop \
  config/log_from_remote=true
# svcadm restart svc:/system/system-log

文件

/etc/syslog.conf

配置文件

/var/run/syslog.pid

进程 ID

/etc/default/syslogd

包含缺省设置。可以通过命令行选项覆盖某些设置。

/dev/log

STREAMS 日志驱动程序

/etc/netconfig

系统上可用的传输提供程序

/etc/net/transport/hosts

每次传输所使用的网络主机

/etc/net/transport/services

每次传输所使用的网络服务

属性

有关下列属性的说明,请参见 attributes(7)

属性类型
属性值
可用性
system/core-os

另请参见

logger(1), svcs(1), syslog(3C), signal.h(3HEAD), log(4D), syslog.conf(5), attributes(7), smf(7), msgid(8), svcadm(8), svccfg(8)

附注

mark 消息是一个系统时间戳,因此,只有运行 syslogd 的系统才会定义该消息。它不能转发到其他系统。

如果 syslogd 收到 HUP 信号,则它会尝试完成输出暂挂消息,然后关闭当前用于记录消息的所有日志文件。如果其中一个或多个文件由于某些原因没有在宽限期内关闭,则 syslogd 将放弃暂挂消息,强制关闭这些文件,并启动重新配置。如果出现意外错误,从而影响到这一关闭过程,致使 syslogd 无法完成重新配置,则 syslogd 将向当前系统的超级用户发送一封邮件消息,指出它已关闭,然后退出。

请务必确保显示 syslogd 转发的消息的每个窗口(尤其是控制台窗口)都在系统缺省语言环境(即 syslogd 的语言环境)下运行。如果不遵循这一建议,syslog 消息就可能更改该窗口的终端设置,甚至可能会从该窗口远程执行任意命令。

syslogd 服务由服务管理工具 smf(7) 管理,其服务标识符为:

svc:/system/system-log:default

可以使用 svcadm(8) 来对此服务执行管理操作(如启用、禁用或请求重新启动)。可以使用 svcs(1) 命令来查询服务的状态。

When syslogd is started by means of svcadm(8), if a value is specified for LOG_FROM_REMOTE in the /etc/defaults/syslogd file, the SMF instance svc:/system/system-log:default property config/log_from_remote is set to correspond to the LOG_FROM_REMOTE value and the /etc/default/syslogd file is modified to replace the LOG_FROM_REMOTE specification with the following comment:

# LOG_FROM_REMOTE is now set using svccfg(8), see syslogd(8).

If neither LOG_FROM_REMOTE nor SMF instance svc:/system/system-log:default property config/log_from_remote are defined, the default is to log remote messages.

On installation, the initial value of SMF instance svc:/system/system-log:default property config/log_from_remote is false.