目前市场上有数百种 Linux 应用软件,它们都有自己的配置文件和">帮助文件。虽然这种多样性显示了 Linux 领域的活力,但给系统管理造成了不少的麻烦。幸运的是,大部分 Linux 应用程序都使用 syslog 工具来记录它们运行时产生的所有错误和状态信息。这些记录文件被保存在 /var/log 目录中。
这些日志对于我们分析系统中发生的事件的时间和起因非常有价值。记住,尽管很多软件经常不把错误信息显示在屏幕上,但是它们还是会把这些日志记录下来。了解这些输出信息对于解决错误来说是非常重要的。因为你可以根据这些信息从诸如产品手册、在线文档以及网页搜索中迅速找到答案。
syslog,以及清除日志文件的工具 -- logrotate,它们配置起来相对比较容易,但它们分析起来还是有些难度。我接下来将用专门的一章来讲解 syslog。以此来强调它们对于你的 Linux 知识的重要性,并帮助你学会一项有用的技能来帮助你将来解决各种不同的软件错误。
syslog是一个追踪和记录系统运行时所产生的所有信息的工具。从简单报告到一重错误一概记录。每条系统信息在发送到syslog服务器时,都会加上两条相关的标签以便将来处理。
第一个标签描述的是产生这条信息的软件的功能。例如,一个邮件或者计划任务所产生的信息将分表表上mail和cron。
第二个标签描述的是这条信息的严重程度。一个有八个级别,列在表中:
你可以修改syslog的配置文件来将不同严重程度和功能的信息分别储存到不同的文件中。这将会在以后详细说明。
严重程度
关键字
描述
0
emergencies
系统无法使用
1
alerts
急需处理
2
critical
危险
3
errors
出错
4
warnings
警告
5
notifications
一般问题但是很重要
6
informational
通知
7
debugging
调试
Syslog Facilities
/etc/syslog.conf 文件
在/etc/syslog.conf配置文件中,可以设置各类信息将写入哪个文件。这个配置文件包括两列。第一列列出了应用程序所属分类名和预期的严重程度,第二列是这些信息将记录到哪个文件。默认情况下,主RedHat/Fedora的/etc/syslog.conf文件设置为为把大部分信息记录在/var/log/messages文件中。这里是一个范例:
*.info;mail.none;authpriv.none;cron.none /var/log/messages
在这个例子中,除了功能为“邮件”、“权限确认”和“计划任务”产生的信息不记录外,其他所有的严重程度为“通知”的信息将会全部记录。你只要将上面这句进行如下修改,日志系统将会更加敏感。它将会记录所有严重程度等于或高于“调试”级别的信息。这样将会更有利于解决系统使用中出现的错误。
*.debug /var/log/messages
在下面这个例子中,除了auth, authpriv, news 和 mail等类别外,其他所有的”调试”级别的错误都将会记录到/var/log/debug文件中。值得注意的是,你可以用每一行结尾加一个反斜杠(\)的方法将一行内容写成多行。
*.=debug;\ auth,authpriv.none;\ news.none;mail.none -/var/log/debug
以下设置除auth,authpriv,news,mail类别外,其他所有类别的info、notice和warn级别的信息将会记录到/var/log/messages中。
*.=info;*.=notice;*.=warn;\ auth,authpriv.none;\ cron,
daemon.none;\ mail,news.none -/var/log/messages
你也可以让某些特定的信息发送到所有登陆的用户屏幕上。以下这个例子可以将所有严重级别等于或高于“emergencies”的信息发送出去。你只需要用星号代替其他就可以了。
*.emerg *
某些应用软件也会将自己的运行状况记录到特定的日志文件上,而这个功能是不受以上介绍的syslog.conf文件控制的。举例如下:
文件:
/var/log/maillog : 邮件/var/log/httpd/access_log : Apache网页服务器访问记录
文件夹:
/var/log/var/log/samba : Samba文件共享服务器信息/var/log/mrtg : MRTG 信息/var/log/httpd : Apache网页服务器信息
注意:在某些老版本的Linux中,/etc/syslog.conf文件只识别tab键间隔。如果用空格,将导致一些不可预料的后果。为了保证安全请详细检查/etc/syslog.conf文件的格式。