1.登录文件中记载了许多重要的信息,因此登录文件的权限通常仅为root能够阅读而已。
1)/var/log/cron:例行性工作排程的日志
2)/var/log/dmesg:记录系统在开机的时候核心侦测过程所产生的各项信息。
3)var/log/lastlog:可以记录系统上面的所有账号最近一次登入系统的相关信息,lastlog指令就是利用该文件来显示的。
4)/var/log/maillog或/var/log/mail/*:记录邮件来往信息,其实主要是记录sendmail(STMP 协议提供者)与deovecot(POP3 协议提供者)所产生的讯息。SMTP是发信所使用的通讯协议,pop3则是收信使用的通讯协议。sendmail与dovecot则分别是两套达成通讯协议的软件。
5)/var/log/message:这个档案相当重要,几乎系统发生的错误讯息(或者是重要的信息)都会记录在这个档案中;如果发生莫名的错误时,这个档案是一直要查阅的登录档。
6)/var/log/secure:基本上只要涉及到需要输入账号密码的软件,那么当登入时(不管登入正确或错误)都会被记录在此档案中。包括系统的login程序、图形接口登入所使用的gdm程序,su,sudo等程序。还有网络联机的ssh,telnet等程序,登入信息都会被记载在这里。
7)/var/log/wtmp,/var/log/faillog:这两个档案可以记录正确登入者的账号信息(wtmp)与错误登入时所使用的账号信息(faillog),last指令就是读取wtmp来显示的。
8)/var/log/httpd/*,var/log/news/*,var/log/samba/*:不同的网络服务会使用它们自己的登录档案来记载它们自己产生的各项讯息,上述的目录内则是个别服务所指定的登录档。
2.针对登录文件所需的功能,我们需要的服务和程序有:
1)syslogd:主要登录系统与网络等服务的讯息
2)klogd:主要登录核心产生的各项信息
3)logrotate:主要在进行登录文件的轮替功能
3.syslogd:记录登录文件的服务
1)配置文件(/etc/syslog.conf)解读:记录什么样的服务的什么等级的信息该记录在那个装置或装置中。
2)syslog认识的服务有:
auth(authpriv):主要与认证有关的机制。例如login,ssh,su等需要账号、密码的指令
cron:就是例行性工作排程cron/at等信息记录的地方
daemon:与各个daemon有关的讯息
kern:就是核心产生讯息的地方
lpr:打印相关的讯息
mail:与邮件相关的讯息都属于这个
news:与新闻组服务器有关的东西
syslog:syslogd本身产生的信息
user,uucp,local0~local7:有Unix like机器本身相关的一些讯息
3)日志等级
info:仅是一些基本的讯息说明而已
notice:比info还需要被注意的一些信息内容
warning:警示的信息,可能有问题,但是还不至于影响到某个daemon运作的信息,基本生,info,notice,warn这三个讯息都是告知一些基本信息而已,应该不至于造成一些系统运作困扰
err:一些重大的错误讯息,例如配置文件的某些设定值造成该服务无法启动的信息说明,通常通过err的错误信息,一般可以了解该服务无法启动的原因
crit:比err更严重的错误
alert:警告,比crit更严重的问题等级
emerg(panic):指系统已经几乎到当机的状态,很严重的错误信息。通常是由硬件出现问题导致整个核心无法顺利运作,然后出现这样等级的信息。、
debug:错误侦测等级
none:不需要的登录等级(多用在排除上)
4)一些特殊符号:
.:比后面高的等级(包含该等级)都会被记录下来,eg:,mail.info代表只要是mail信息,而且该信息等级高于info(含info本身)时,就会被记录下来
.=:代表需要的等级就是后面接的等级
.!:不等于,即除了该等级外的其他等级都记录
5)在指定路径的时候前面有的会有个'-',意思是该服务产生的日志信息先记录到内存(buffer)中,等到数量足够大了,才一次性将所有数据写入磁盘,这样有助于提高日志文件的存取性能。不过这样也会有些风险,当机器不正常关机时,可能会出现数据丢失的情况。
4.logrotate:在规定的时候后进行登录档的轮替。
1)配置文件(/etc/logrotate.conf,/etc/logrotate.d):其中,logrotate.conf是主要的参数档案,而logrotate.d是一个目录,该目录里面的所有档案都会被主动的读入/etc/logrotate.conf当中来进行。另外,在/etc/logrotate.d/里面的档案中,如果没有规定到的一些细部设定,则以/etc/logrotate.conf这个档案的规定来作为为默认值。
2)logrotate的工作过程:将旧的的登录档移动成更旧的旧档,并且建立一个新的空档案来记录,以message为例,
第一次:message->message.1
第二次:message->message.1->message.2
第三次:message->message.1->message.2->message.3
第四次:message->message.1->message.2->message.3->message.4
注意:该变化是递归变化的,比如第二次,message会重命名为message.1,message.1会重命名为messsage.2,然后新建message。
3)/etc/logrotate.conf文件解读:
weekly:预设每周执行一次轮替
rotate 4:保存登录档的个数
create:由于登录档被更名,因此建立一个新的来继续存储
#compress:被更动的登录档是否需要压缩。
include /etc/logrotate.d:将/etc/logrotate.d/这个目录中的所有档案都读进来执行rotate的工作
/var/log/wtmp{ 多个目录可以用空格隔开
monthly:每月一次,取代每周一次
minsize:档案容量一定要超过1M后,才进行rotate(略过时间参数
create 0664 root utmp:指定新建档案的权限与所属账号/群组
rotate 1:仅保存一个,wtmp.1而已
}
如果想要执行脚本(呼叫外部指令来进行额外的命令下达),可以将指令包含在sharedscripts 指令(绝对路径)endscript。其中一些特殊标签的含义:
prerotate:在启动logrotate之前进行的指令,例如修改文件属性等操作
postrotate:在做完logrotate之后启动的指令,例如重启某个服务。
5.logrotate [-vf] logfile:指令logrotate的服务,参数,
1)-v:启动显示模式,会显示logrotate运作的过程
2)-f:不论是否符合配置文件的数据,强制每个登录档都进rotate的动作。
该指令会加入crontab里面,所以每天会自动执行该指令。