上一章Unix和Linux教程请查看:Unix和Linux系统性能组件和性能工具
在本章中我们将详细讨论Unix中的系统日志记录。Unix系统有一个非常灵活和强大的日志系统,它使你能够记录几乎任何你能想到的东西,然后操作日志来检索你需要的信息。
【Unix和Linux系统日志介绍和详细操作教程】许多Unix版本都提供了一种名为syslog的通用日志记录工具,需要记录信息的各个程序将信息发送到syslog。Unix syslog是一种可配置主机的统一系统日志记录工具,系统使用一个集中的系统日志记录进程,该进程运行程序/etc/syslogd或/etc/syslogd。
系统日志记录器的操作非常简单,程序将它们的日志条目发送到syslogd, syslod会参考配置文件/etc/ syslod .conf或/etc/syslog,当找到匹配的时候,就会将日志消息写入所需的日志文件。
这里有四个基本的系统术语首先需要了解:
编号 | 术语 & 描述 |
1 | Facility 用于描述提交日志消息的应用程序或进程的标识符,例如邮件、内核和ftp。 |
2 | Priority 信息重要性的指示器。级别在syslog中定义为指导原则,从调试信息到关键事件。 |
3 | Selector 一个或多个设施和水平的组合,当传入的事件与选择器匹配时将执行一个操作。 |
4 | Action 匹配选择器的传入消息会发生什么情况—操作可以将消息写入日志文件、将消息回显到控制台或其他设备、将消息写入登录用户或将消息发送到另一个syslog服务器。 |
编号 | 描述 |
1 | auth 与请求名称和密码相关的活动(getty, su, login) |
2 | authpriv 与auth相同但记录到一个文件,该文件只能被选定的用户读取 |
3 | console 用于捕获通常指向系统控制台的消息 |
4 | cron 来自cron系统调度器的消息 |
5 | daemon 系统全方位守护进程 |
6 | ftp 与ftp守护进程相关的消息 |
7 | kern 内核消息 |
8 | local0.local7 每个站点定义的本地设施 |
9 | lpr 来自行打印系统的消息 |
10 | mail 与邮件系统相关的消息 |
11 | mark 用于在日志文件中生成时间戳的伪事件 |
12 | news 与网络新闻协议(nntp)有关的讯息 |
13 | ntp 与网络时间协议相关的消息 |
14 | user 普通用户进程 |
15 | uucp UUCP子系统 |
编号 | 优先级 & 描述 |
1 | emerg 紧急情况例如即将发生的系统崩溃,通常向所有用户广播 |
2 | alert 应该立即纠正的条件,例如损坏的系统数据库 |
3 | crit 临界状态如硬件错误 |
4 | err 普通错误 |
5 | Warning 警告 |
6 | notice 这不是一个错误,但可能应该以一种特殊的方式来处理 |
7 | info 信息消息 |
8 | debug 调试程序时使用的消息 |
9 | none 用于指定不记录消息的伪级别 |
3、/etc/syslog.conf文件conf文件控制记录消息的位置,典型的syslog.conf文件可能是这样的:
*.err;
kern.debug;
auth.notice /dev/console
lpr.info/var/log/lpr.log
mail.*/var/log/mail.log
ftp.*/var/log/ftp.log
netinfo.err/var/log/netinfo.log
install.*/var/log/install.log
*.emerg*
*.alert|program_name
mark.*/dev/console
文件的每一行包含两个部分:
- 消息选择器,它指定要记录哪种消息。例如来自内核的所有错误消息或所有调试消息。
- 一个操作字段,表示应该对消息执行什么操作。例如将其放入文件或将消息发送到用户的终端。
- 消息选择器有两部分:设施和优先级。例如kern.debug选择由内核(设备)生成的所有调试消息(优先级)。
- 消息选择器kernel .debug选择所有大于debug的优先级。
- 用星号代替设施或优先级表示“全部”。例如*.debug表示所有调试消息,而kern表示所有调试消息,*表示内核生成的所有消息。
- 还可以使用逗号来指定多个功能,可以使用分号将两个或多个选择器分组在一起。
- 将消息记录到文件或设备中,例如/var/log/lpr.log或/dev/console. Log
- 向用户发送消息。你可以用逗号分隔多个用户名如root, user。
- 向所有用户发送消息。在这种情况下action字段包含一个星号如*。
- 将消息传送到程序中。在本例中程序是在Unix管道符号(|)之后指定的。
- 将消息发送到另一台主机上的syslog。在这种情况下action字段由一个主机名组成,主机名前面有一个at符号。
这意味着我们可以在任何时候从命令行检查syslogd守护进程及其配置。logger命令提供了从命令行向系统日志文件添加单行条目的方法,命令的格式是:
logger [-i] [-f file] [-p priority] [-t tag] [message]...
以下是参数的详细信息:
编号 | 选项 & 描述 |
1 | -f filename 使用文件名的内容作为要记录的消息。 |
2 | -i 用每一行记录logger进程的进程ID。 |
3 | -p priority 输入具有指定优先级的消息(指定的选择器项); 消息优先级可以指定为数字形式,也可以指定为facility.priority,默认的优先级是user.notice。 |
4 | -t tag 用指定的标记标记添加到日志中的每一行。 |
5 | message 内容按指定顺序连接在一起的字符串参数,用空格分隔。 |
7、重要的日志位置所有的系统应用程序都在/var/log及其子目录中创建它们的日志文件。下面是一些重要的应用程序及其相应的日志目录:
应用程序 | 目录 |
httpd | /var/log/httpd |
samba | /var/log/samba |
cron | /var/log/ |
/var/log/ | |
mysql | /var/log/ |
推荐阅读
- Unix和Linux信号捕获处理介绍及其相关操作教程
- Unix和Linux系统性能组件和性能工具详解教程
- Unix和Linux用户管理介绍和操作教程
- Unix和Linux文件系统管理基本操作教程
- Unix和Linux使用带SED的正则表达式详细教程
- Linux开发必备!vim编辑器中文手册和参考文档pdf下载
- Unix和Linux的vi编辑器操作和用法完全解读教程
- Unix和Linux常用网络通信工具使用介绍
- Unix和Linux进程管理操作和使用原理介绍