- Unix / Linux 初学者
- Unix / Linux - 主页
- Unix / Linux - 入门
- Unix / Linux - 文件管理
- Unix / Linux - 目录
- Unix / Linux - 文件权限
- Unix / Linux - 环境
- Unix / Linux - 基本实用程序
- Unix / Linux - 管道和过滤器
- Unix / Linux - 进程
- Unix / Linux - 通信
- Unix / Linux - vi 编辑器
- Unix/Linux Shell 编程
- Unix / Linux - Shell 脚本
- Unix / Linux - 什么是 Shell?
- Unix / Linux - 使用变量
- Unix / Linux - 特殊变量
- Unix / Linux - 使用数组
- Unix / Linux - 基本运算符
- Unix / Linux - 决策
- Unix / Linux - Shell 循环
- Unix / Linux - 循环控制
- Unix / Linux - Shell 替换
- Unix / Linux - 引用机制
- Unix / Linux - IO 重定向
- Unix / Linux - Shell 函数
- Unix / Linux - 联机帮助页
Unix / Linux - 系统日志记录
在本章中,我们将详细讨论 Unix 中的系统日志记录。
Unix 系统有一个非常灵活和强大的日志系统,它使您能够记录几乎任何您能想象到的内容,然后操作日志来检索您需要的信息。
Unix 的许多版本都提供了称为syslog 的通用日志记录工具。需要记录信息的各个程序将信息发送到系统日志。
Unix syslog是主机可配置的统一系统日志记录工具。系统使用运行程序/etc/syslogd或/etc/syslog 的集中式系统日志记录进程。
系统记录器的操作非常简单。程序将其日志条目发送到syslogd,后者会查阅配置文件/etc/syslogd.conf或/etc/syslog,并在找到匹配项时将日志消息写入所需的日志文件。
您应该理解四个基本的系统日志术语 -
先生。 | 术语和描述 |
---|---|
1 |
设施 用于描述提交日志消息的应用程序或进程的标识符。例如,邮件、内核和 ftp。 |
2 |
优先事项 消息重要性的指示器。从调试信息到关键事件,级别在系统日志中定义为指导方针。 |
3 |
选择器 一个或多个设施和级别的组合。当传入事件与选择器匹配时,将执行操作。 |
4 |
行动 与选择器匹配的传入消息会发生什么情况 — 操作可以将消息写入日志文件、将消息回显到控制台或其他设备、将消息写入登录用户或将消息发送到另一个系统日志服务器。 |
系统日志设施
我们现在将了解系统日志设施。以下是选择器可用的工具。并非所有功能都存在于所有版本的 Unix 上。
设施 | 描述 |
---|---|
1 |
授权 与请求名称和密码相关的活动(getty、su、login) |
2 |
授权权限 与 auth 相同,但记录到只能由选定用户读取的文件 |
3 |
安慰 用于捕获通常定向到系统控制台的消息 |
4 |
计划任务 来自 cron 系统调度程序的消息 |
5 |
守护进程 系统守护进程包罗万象 |
6 |
文件传输协议 与 ftp 守护进程相关的消息 |
7 |
克恩 内核消息 |
8 |
本地0.本地7 每个站点定义的本地设施 |
9 |
LPR 来自行式打印系统的消息 |
10 |
邮件 与邮件系统相关的消息 |
11 |
标记 用于在日志文件中生成时间戳的伪事件 |
12 |
消息 与网络新闻协议 (nntp) 相关的消息 |
13 |
网络传输协议 与网络时间协议相关的消息 |
14 |
用户 常规用户进程 |
15 |
乌卡普 UUCP子系统 |
系统日志优先级
下表总结了系统日志优先级 -
先生。 | 优先级和描述 |
---|---|
1 |
新兴 紧急情况,例如即将发生的系统崩溃,通常会广播给所有用户 |
2 |
警报 应立即纠正的情况,例如系统数据库损坏 |
3 |
暴击 严重情况,例如硬件错误 |
4 |
呃 普通错误 |
5 |
警告 警告 |
6 |
注意 不是错误的情况,但可能应该以特殊方式处理 |
7 |
信息 信息性消息 |
8 |
调试 调试程序时使用的消息 |
9 |
没有任何 用于指定不记录消息的伪级别 |
设施和级别的组合使您能够辨别记录的内容以及信息的去向。
当每个程序尽职尽责地将其消息发送到系统记录器时,记录器根据选择器中定义的级别决定要跟踪什么和要丢弃什么。
当您指定级别时,系统将跟踪该级别及更高级别的所有内容。
/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选择所有大于 debug 的优先级。
代替设施或优先级的星号表示“全部”。例如,*.debug表示所有调试消息,而kern.*表示内核生成的所有消息。
您还可以使用逗号来指定多个设施。可以使用分号将两个或多个选择器组合在一起。
记录操作
操作字段指定五个操作之一 -
将消息记录到文件或设备。例如,/var/log/lpr.log或/dev/console。
向用户发送消息。您可以通过用逗号分隔来指定多个用户名;例如,root、amrood。
向所有用户发送消息。在这种情况下,操作字段由星号组成;例如, *。
将消息通过管道传递给程序。在这种情况下,程序在 Unix 管道符号 (|) 之后指定。
将消息发送到另一台主机上的系统日志。在本例中,操作字段由主机名组成,前面带有 at 符号;例如,@tutorialspoint.com。
记录器命令
Unix 提供了logger命令,这是处理系统日志记录的一个非常有用的命令。logger命令将日志消息发送到 syslogd 守护进程,从而引发系统日志记录。
这意味着我们可以随时从命令行检查syslogd守护进程及其配置。logger 命令提供了一种从命令行向系统日志文件添加单行条目的方法。
命令的格式是 -
logger [-i] [-f file] [-p priority] [-t tag] [message]...
这是参数的详细信息 -
先生。 | 选项和说明 |
---|---|
1 |
-f 文件名 使用文件 filename 的内容作为要记录的消息。 |
2 |
-我 每行记录记录器进程的进程 ID。 |
3 |
-p 优先级 输入具有指定优先级的消息(指定选择器条目);消息优先级可以用数字指定,也可以作为设施.优先级对指定。默认优先级是user.notice。 |
4 |
-t 标签 使用指定标签标记添加到日志的每一行。 |
5 |
信息 其内容按指定顺序连接在一起的字符串参数,并用空格分隔。 |
您可以使用联机帮助页来检查此命令的完整语法。
日志轮转
日志文件往往会增长得非常快并消耗大量磁盘空间。为了启用日志轮换,大多数发行版都使用newsyslog或logrotate等工具。
应使用cron 守护程序以频繁的时间间隔调用这些工具。检查newsyslog或logrotate的手册页以获取更多详细信息。
重要日志位置
所有系统应用程序都在/var/log及其子目录中创建日志文件。以下是一些重要的应用程序及其相应的日志目录 -
应用 | 目录 |
---|---|
httpd | /var/log/httpd |
桑巴舞 | /var/日志/samba |
计划任务 | /var/日志/ |
邮件 | /var/日志/ |
mysql | /var/日志/ |