日志相当于日记,记录每天发生的大事,而对于计算机来说,操作系统中会产生很多信息,这些信息即是我们观察系统运行当中正常状况的一种途径,同时也为我们提供了当系统发生故障的时候定位问题所在的必要信息, 实际上任何操作系统都提供了强大的日志系统用于记录各子系统运行当中所产生的各种信息。对于在线上运行的服务器而言应该合理的处理及管理。下面就来了解一下在linux系统中用来管理日志的两种日志服务器:syslog、syslog-ng。
一、深入syslog
1、 syslog简介
在红帽5上使用的是syslog,syslog是一个服务专门提供负责记录日志功能的系统日志,其配置文件是/etc/syslog.conf;
syslog包含两个进程:syslogd,klogd;
syslogd进程专门负责记录非内核产生的日志信息;
klogd进程是专门负责记录内核产生的日志信息;
这两个进程共用一个配置文件:/etc/syslog.conf;
为什么会把syslog分为两个进程呢?由于klogd记录的日志详细程度与syslogd有着巨大不同,这两个进程所产生的日志格式太大,因此把这两个各自为独立的日志进程;
在init.d程序中最后才会启动终端,在这些终端启动之前信息记录在物理终端(/dev/console),通过我们的虚拟终端可以查看到这些信息, kernel在初始化之前会探测各种硬件,比如cpu类型、主板类型都会显示出来,如果想要看看硬件类型、二级缓存、三级缓存都存放在什么地方,当系统启动完成之后就会由klogd进程记录控制并把这些内容记录在/var/log/dmesg中,可以使用下面两个命令查看/var/log/dmesg中的内容;
#dmesg (里面记录的是启动init.d程序之前的内容)
#cat /var/log/dmesg
上面是由klogd记录并把信息放到/var/log/dmesg中,一旦控制权由内核转交给/sbin/init后所产生的日志就会由syslogd记录,记录的信息存放到下面三个常用的文件中;
/var/log/messages:属于系统标准错误日志信息,大多数子系统产生的错误信息都放在这个文件中。同时还会记录非内核产生引导信息,随着日积月累这个文件会变的越来越大,为了避免文件系统变得过大导致系统读取日志不稳定,在系统中设置了日志信息滚动(也被称为日志切割) 即logrotate程序,配置文件为/etc/logrotate.conf;
/var/log/maillog:存放由邮件系统产生的日志信息;
/var/log/secure:存放与安全有关的日志信息,里面记录了用户正确或错误登录系统的详细的私密信息,只有管理员才能查看;