日志文件与linux下常见的日志文件名
日志文件可以记录系统在什么时间、哪个主机、哪个服务、出现了什么信息。
日志文件的重要性:
解决系统方面的错误
解决网络服务问题
过往事件记录等
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提供的日志文件管理服务来同一管理。
CentOS提供syslogd这个服务来统一管理。
还有一个专门记录内核信息的日志文件服务,就是klogd。所以,日志文件所需的服务主要就是 syslogd与klogd这两者。
可以通过logrotate(日志文件轮替)来自动化处理日志文件容量与更新问题。所以:
syslogd:主要控制系统与网络等服务的日志记录的信息
klogd:主要控制内核产生的各种问题的日志
logrotate:主要进行日志文件的轮替功能
syslogd:记录日志文件的服务
检查syslogd是否启动:#ps aux |grep syslog #chkconfig --list syslog
先看看日志文件内容的一般格式
#cat /var/log/secure
|---日期/时间--|---服务相关函数-----------------|-----信息说明-------->
举例来说:第一行意思是,那个时间点,有www这台主机的su传来消息,这个消息是通过pam_unix这个模块提出的,内容为tianqi这个账号的su服务已经被root打开了。
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这个打印机。
用户名称:显示给用户。
远程主机:例如 @当然,要对方主机支持才行。
*:代表目前在线的所有人,类似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文件
有一行没显示出来:
#kern.* /dev/console 表示内核产生的信息,全都送到终端机去。
local7.* 将本机开机时应该显示到屏幕上的信息都写入/var/log/boot.log中。
mail.* 这一行文件前有“-”,由于邮件产生的信息比较多,因此我们希望邮件产生的信息先记录在速度较快的内存中,等数据量够大时再一次性写入。
再次,如果你自己要增加什么日志信息,请去/etc/syslog.conf里面去修改。
阅读(5573) | 评论(0) | 转发(0) |