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 |
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字段指定的五个动作之一:
-
日志消息发送到一个文件或设备。例如,/var/log/lpr.log 或 /dev/console.。
-
发送一条信息给用户。您可以指定多个用户名(如根,amrood)用逗号将它们分隔开。
-
发送一条信息给所有用户。在这种情况下,“动作”字段中包含一个星号(例如,*)。
-
管道消息的程序。在这种情况下,程序被指定后,UNIX管道符号(|)。
-
将消息发送到另一台主机上的系统日志。在这种情况下,行动领域包括主机名,前面有一个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/ |
/var/log/ | |
mysql | /var/log/ |