Linux系统日志及日志分析

2025-05-10 00:09:45

1、大部分Linux发行版默认的日志守护进程为 syslog,位于 /etc/syslog 或 /etc/syslogd,默认配置文件为 /etc/syslog.conf,任何希望生成日志的程序都可以向 syslog 发送信息。而Fedora、Ubuntu,、rhel6、centos6以上版本默认的日志系统都是rsyslog,rsyslog是syslog的多线程增强版

Linux系统日志及日志分析

2、 Linux系统内核和许多程序会产生各种错误信息、警告信息和其他的提示信息,这些信息对管理员了解系统的运行状态是非常有用的,所以应该把它们写到日志文件中去。完成这个过程的程序就是syslog。syslog可以根据日志的类别和优先级将日志保存到不同的文件中。 为了方便查阅,可以把内核信息与其他信息分开,单独保存到一个独立的日志文件中。默认配置下,日志文件通常都保存在“/var/log”目录下。

Linux系统日志及日志分析

3、下面是常见的日志类型,但并不是所有的Linux发行版都包含这些类型:

Linux系统日志及日志分析

4、常见的日志优先级

Linux系统日志及日志分析

5、所有的系统应用都会在/var/log 目录下创建日志文件,或创建子目录再创建日志文件

Linux系统日志及日志分析

6、/etc/syslog.conf(rsyslog.conf) 是 syslog 的配置文件,会根倌栗受绽据日志类型和优先级来决定将日志诺蝈胂叟保存到何处。典型的syslog.conf 文件格式如下所示:*.err;kern.debug;auth.notice /dev/consoledaemon,auth.notice /var/log/messageslpr.info /var/log/lpr.logmail.* /var/log/mail.logftp.* /var/log/ftp.logauth.* @see.xidian.edu.cnauth.* root,amroodnetinfo.err /var/log/netinfo.loginstall.* /var/log/install.log*.emerg **.alert |program_namemark.* /dev/console

Linux系统日志及日志分析

7、 第一列为日志类型和日志优先级的组合,每个类型和优先级的组合称为一个选择器;后面一列为保存日志的文件、服务器,或输出日志的终端。syslog 进程根据选择器决定如何操作日志。对配置文件说明: 日志类型和优先级由点号(.)分开,例如kern.debug 表示由内核产生的调试信息。kern.debug 的优先级大于 debug。星号(*)表示所有,例如*.debug 表示所有类型的调试信息,kern.* 表示由内核产生的所有消息。可以使用逗号(,)分隔多个日志类型,使用分号(;)分隔多个选择器。对日志的操作包括: 将日志输出到文件,例如/var/log/maillog 或 /dev/console。将消息发送给用户,多个用户用逗号(,)分隔,例如root, amrood。通过管道将消息发送给用户程序,注意程序要放在管道符(|)后面。将消息发送给其他主机上的 syslog 进程,这时/etc/syslog.conf 文件后面一列为以@开头的主机名,例如@see.xidian.edu.cn。

8、logger 是Shell命令,可以通过该命令使用 syslog 的系统日志模块,还可以从命令行直接向系统日志文件写入一行信息。logger命令的语法为:logger [-i] [-f filename] [-p priority] [-t tag] [message...]-ffilename:将 filename 文件的内容作为日志。-i :每行都记录 logger 进程的ID。-p priority :指定优先级;优先级必须是形如 facility.priority 的完整的选择器,默认优先级为user.notice。-t tag :使用指定的标签标记每一个记录行。message :要写入的日志内容,多条日志以空格为分隔;如果没有指定日志内容,并且 -f filename 选项为空,那么会把标准输入作为日志内容。

Linux系统日志及日志分析

9、 日志转储也叫日志回卷或日志轮转。Linux中的日志通常增长很快,会占用大量硬盘空间,需要在日志文件达到指定大小时分开存储。 syslog 只负责接收日志并保存到相应的文件,但不会对日志文件进行管理,因此经常会造成日志文件过大,尤其是WEB服务器,轻易就能超过1G,给检索带来困难。 大多数Linux发行版使用 logrotate 或newsyslog 对日志进行管理。logrotate 程序不但可以压缩日志文件,减少存储空间,还可以将日志发送到指定 E-mail,方便管理员及时查看日志。

10、 例如,规定邮件日志 /var/log/maillog 超过1蘅荫酸圉G时转储,每周一次,那么每隔一周 logrotate 进程就会检查/var/log/maillog 文件的大小: 如果没有超过1G,不进行任何操作。 如果在1G~2G之间,就会创建新文件/var/log/maillog.1,并将多出的1G日志转移到该文件,以给 /var/log/maillog 文件瘦身。 如果在2G~3G之间,会继续创建新文件/var/log/maillog.2,并将/var/log/maillog.1 的内容转移到该文件,将/var/log/maillog 的内容转移到/var/log/maillog.1,以保持 /var/log/maillog 文件不超过1G。 可以看到,每次转存都会创建一个新文件(如果不存在),命名格式为日志文件名加一个数字(从1开始自动增长或以当前日期为后缀),以保持当前日志文件和转存后的日志文件不超过指定大小

Linux系统日志及日志分析

11、 logrotate 的主要配置文件是 /etc/logrotate.conf,/etc/logrotate.d 目录是对 /etc/logrotate.conf 的补充,或者说为了不使 /etc/logrotate.conf 过大而设置。

Linux系统日志及日志分析

12、 注意:include 允许管理员把多个分散的文件集中到一个,类似于C语言的 #include,将其他文件的内容包含进当前文件。 include 非常有用,一些程序会把转储日志的配置文件放在/etc/logrotate.d 目录,这些配置文件会覆盖或增加/etc/logrotate.conf 的配置项,如果没有指定相关配置,那么采用/etc/logrotate.conf 的默认配置。 所以,建议将/etc/logrotate.conf 作为默认配置文件,第三方程序在/etc/logrotate.d 目录下自定义配置文件。 logrotate 也可以作为命令直接运行来修改配置文件。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢