位置:首页 > 其他技术 > Unix > UNIX 系统日志

UNIX 系统日志

Unix 系统有一个非常灵活和强大的日志系统,它可以让您记录几乎任何你能想象和操作日志,以获取所需要的信息。

许多版本 UNIX 提供了一个通用的日志工具,称为:syslog。个别程序需要有记录的信息发送到 syslog 信息。

Unix的系统日志主机配置,统一的系统日志记录工具。该系统采用一个集中的系统运行程序  /etc/syslogd 或 /etc/syslog 日志记录进程。.

系统日志的操作是相当简单的。程序日志条目发送到syslogd,参考的配置文件在/etc/syslogd.conf 或 /etc/syslog,找到一个匹配时,所需的日志文件写入日志消息。

有四个基本的 syslog 条款,你应该明白:

Term 描述
Facility The identifier used to describe the application or process that submitted the log message. Examples are mail, kernel, and ftp.
Priority An indicator of the importance of the message. Levels are defined within syslog as guidelines, from debugging information to critical events.
Selector A combination of one or more facilities and levels. When an incoming event matches a selector, an action is performed.
Action What happens to an incoming message that matches a selector. Actions can write the message to a log file, echo the message to a console or other device, write the message to a logged in user, or send the message along to another syslog server.

系统日志设备:

这里是可用的设备选择。并非所有的设施都存在于所有版本的UNIX。

设备 描述
auth Activity related to requesting name and password (getty, su, login)
authpriv Same as auth but logged to a file that can only be read by selected users
console Used to capture messages that would generally be directed to the system console
cron Messages from the cron system scheduler
daemon System daemon catch-all
ftp Messages relating to the ftp daemon
kern Kernel messages
local0.local7 Local facilities defined per site
lpr Messages from the line printing system
mail Messages relating to the mail system
mark Pseudo event used to generate timestamps in log files
news Messages relating to network news protocol (nntp)
ntp Messages relating to network time protocol
user Regular user processes
uucp UUCP subsystem

Syslog优先级:

该系统记录的优先级总结在下面的表中:

优先级 描述
emerg Emergency condition, such as an imminent system crash, usually broadcast to all users
alert Condition that should be corrected immediately, such as a corrupted system database
crit Critical condition, such as a hardware error
err Ordinary error
warning Warning
notice Condition that is not an error, but possibly should be handled in a special way
info Informational message
debug Messages that are used when debugging programs
none Pseudo level used to specify not to log messages.

设备和级别的组合,让你辨识记录和信息。

由于每个程序尽职地发送它的消息的系统记录器,记录器作出决定什么来跟踪和丢弃的基础上在选择器中定义的级别。

当你指定一个级别,系统将跟踪所有在这一水平较高。

/etc/syslog.conf 文件:

/etc/syslog.conf 文件控制,记录消息的位置。一个典型的 syslog.conf  文件可能看起来像这样:

*.err;kern.debug;auth.notice /dev/console
daemon,auth.notice           /var/log/messages
lpr.info                     /var/log/lpr.log
mail.*                       /var/log/mail.log
ftp.*                        /var/log/ftp.log
auth.*                       @prep.ai.mit.edu
auth.*                       root,amrood
netinfo.err                  /var/log/netinfo.log
install.*                    /var/log/install.log
*.emerg                      *
*.alert                      |program_name
mark.*                       /dev/console

文件的每一行包含两个部分:

  • 消息选择器,指定哪种要记录的消息。例如,所有的错误消息或内核的所有调试信息。

  • 应该做些什么消息,说一个动作域。例如,把它放在一个文件或消息发送到用户的终端上。

以下是对上述配置的显着点:

  • 消息选择器有两个部分组成:设备和优先级。例如,kern.debug的选择由内核(设施)产生的所有调试消息(优先级)。

  • 消息选择kern.debug的选择所有优先级大于调试。

  • 设施或优先的地方中的星号表示“所有”。例如,*. 调试是指所有调试信息,而  kern.*  指由内核生成的所有消息。

  • 您还可以使用逗号指定多个设备。两个或多个选择可以组合在一起使用分号。

日志操作:

action字段指定的五个动作之一:

  1. 日志消息发送到一个文件或设备。例如,/var/log/lpr.log 或 /dev/console.。

  2. 发送一条信息给用户。您可以指定多个用户名(如根,amrood)用逗号将它们分隔开。

  3. 发送一条信息给所有用户。在这种情况下,“动作”字段中包含一个星号(例如,*)。

  4. 管道消息的程序。在这种情况下,程序被指定后,UNIX管道符号(|)。

  5. 将消息发送到另一台主机上的系统日志。在这种情况下,行动领域包括主机名,前面有一个at符号(例如,@ gitbook.net)

logger命令:

UNIX 提供了命令logger ,这是一个非常有用的命令处理系统日志。 logger 命令记录消息发送到syslogd守护进程,从而引发系统日志。

这意味着我们可以在命令行检查随时syslogd 守护进程,它的配置。 logger 命令提供系统日志文件,在命令行添加一行条目的方法。

该命令的格式是:

logger [-i] [-f file] [-p priority] [-t tag] [message]...

下面是详细的参数:

选项 描述
-f filename Use the contents of file filename as the message to log.
-i Log the process ID of the logger process with each line.
-p priority Enter the message with the specified priority (specified selector entry); the message priority can be specified numerically, or as a facility.priority pair. The default priority is user.notice.
-t tag Mark each line added to the log with the specified tag.
message The string arguments whose contents are concatenated together in the specified order, separated by the space

您可以使用联机帮助帮助检查完成此命令的语法。

日志切换:

日志文件的增长倾向非常快,消耗大量的磁盘空间。要启用日志切换,大多数发行版使用 newsyslog 或 logrotate 工具。

这些工具应该被称为使用cron守护程序在频繁的时间间隔。检查newsyslog 或 logrotate的更多详细信息的手册页。

重要的日志位置

所有的系统应用程序创建日志文件在 /var/log 和其子目录。这里有几个重要的应用程序及其日志目录:

应用程序 目录
httpd /var/log/httpd
samba /var/log/samba
cron /var/log/
mail /var/log/
mysql /var/log/