linux日志文件有哪些?linux日志文件功能大揭秘

发布时间:2020-01-24编辑:脚本学堂
有关linux日志文件的分类,linux系统下常见日志文件类型,包括syslogd、klogd、logrotate等日志文件工具的用法,需要的朋友参考下。

一、linux/linuxrizhiwenjian/ target=_blank class=infotextkey>linux日志文件,常用的有以下几种:
 

/var/log/cron工作调度
/var/log/dmesg内核检测过程中产生的信息
/var/log/lastlog检测所有账号登陆信息
/var/log/maillog或/var/log/mail/*邮件
/var/log/messages记录系统发生的所有错误信息
/var/log/secure涉及账号密码信息
/var/log/wtmp,/var/log/faillog记录正确登陆系统与错误登陆系统者的账号信息
/var/log/httpd/*,/var/log/news/*,/var/log/samba/*不同网络服务的信息记录处

二、linux日志文件系统所需相关服务与进程
日志文件系统的产生,一种是由软件开发商自行定义写入的日志文件与相关格式,另一种则是由linux提供的日志文件管理服务来同一管理。
centos提供syslogd这个服务来统一管理。
还有一个专门记录内核信息的日志文件服务,就是klogd。所以,日志文件所需的服务主要就是 syslogd与klogd这两者。

可以通过logrotate(日志文件轮替)来自动化处理日志文件容量与更新问题。

因此:
syslogd:主要控制系统与网络等服务的日志记录的信息
klogd:主要控制内核产生的各种问题的日志
logrotate:主要进行日志文件的轮替功能

1、syslogd:记录日志文件的服务
检查syslogd是否启动:#ps aux |grep syslog #chkconfig --list syslog

日志文件内容的一般格式
#cat /var/log/secure
linux日志文件类型1

|---日期/时间--|---服务相关函数-----------------|-----信息说明-------->
举例来说:第一行意思是,那个时间点,有www这台主机的su传来消息,这个消息是通过pam_unix这个模块提出的,内容为tianqi这个账号的su服务已经被root打开了。

2、syslogd的配置文件:/etc/syslog.conf
这个文件规定了什么服务的什么等级信息以及需要被记录在哪里。
语法为: 服务名称[.=!]信息等级 信息记录的文件名或设备或主机
例如:mail.info /var/log/maillog.info
意思是mail服务产生的大于等于info等级的信息,都会记录到/var/log/maillog.info文件中。

1、syslog设置的服务主要有:
 

服务类型 说明
auth(authpriv) 主要与认证有关的机制 
cron  类型性工作调度cron/at等生成信息日志的地方
daemon  与各个daemon有关的信息
kern  就是内核产生信息的地方
lpr  打印机相关信息
mail  与邮件收发有关的信息
news  与新闻组服务器有关的东西
syslog  syslogd这个程序本身生成的信息
user uucp,local0~local7 与UNIX like机器本身有关的一些信息
 

为了让不同的服务放到不同的文件当中,以便分门别类进行日志文件的管理,就是/etc/syslog.conf这个文件所要做的规范了。

2、信息等级
syslog将信息分为七个等级
 

等级 等级名称   说明
1 info  仅是一些基本的信息说明而已
2 notice  除了info外还需要注意的一些信息
3 warning(warn) 警示信息,可能有问题,但不至于影响到某个daemon运行的信息
4 err(error) 一些重大的错误信息
5 crit  比error还严重的信息,到临界点了
6 alert  警告,问题已经很严重了(比crit严重)
7 emerg(panic) 疼痛等级,意指系统已经要死机的状态
 

除了这些,还有两个特殊的等级,那就是debug(错误检测等级)与none(不需登陆等级)

3、注意连接号:
“.”:代表比后面还要高的等级(含该等级)都被记录下来
“.=”:代表所需要的等级就是后面接的等级而已
“.!”:代表不等于,即是除了该等级以外的其他等级信息都记录

4、信息记录的文件名或设备或主机
就是这个信息要放到哪里。通常我们都是使用文件,但也可以输出到设备。下面是一些常见放置处:
 文件的绝对路径:通常就是放在 /var/log/ 下面。
 打印机或其他:例如 /dev/lp0这个打印机。
 用户名称:显示给用户。
 远程主机:例如 @www.vbird.tsai,当然,要对方主机支持才行。
 *:代表目前在线的所有人,类似wall这个命令。

例子:将新闻组资料及例行性工作调度的信息都写入到 /var/log/cronnews的文件中,但两个程序的警告信息则额外记录到 /var/log/cronnews.warn中。
 

#vim /etc/syslog.conf
news.*;cron.*   /var/log/cronnews
news.=warn;cron.=warn  /var/log/cronnews.warn
 

这样就好了,news.*代表所有信息。
例子:messages这个文件要记录所有信息,但就是不想记录cron,mail,news的信息。
 

#vim /etc/syslog.conf
*.*;news,cron,mail.none  /var/log/messages
 或者
*.*;news.none;cron.none;mail.none /var/log/messages
 

 
再看看/ect/syslog.conf文件
linux日志文件类型2

有一行没显示出来:
#kern.* /dev/console 表示内核产生的信息,全都送到终端机去。
local7.* 将本机开机时应该显示到屏幕上的信息都写入/var/log/boot.log中。
mail.* 这一行文件前有“-”,由于邮件产生的信息比较多,因此,希望邮件产生的信息先记录在速度较快的内存中,等数据量够大时再一次性写入。

在linux下增加什么日志信息,在/etc/syslog.conf中修改即可。