linux系统日志分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

RedHat系统日志分析

其实,可以说成是监控系统的记录,系统一举一动基本会记录下来。这样由于信息非常全面很重要,通常只有root 可以进行视察!通过登录文件(日志文件)可以根据屏幕上面的错误讯息与再配合登录文件的错误信息,几乎就可以解决大部分的Linux 问题!所以日志文件异常重要,作为一个合格的linux系统工程师,日志文件是必要熟练掌握的部分。

常见的几个登录文件有:

/var/log/secure:记录登入系统存取数据的文件,例如pop3, ssh, telnet, ftp 等都会被记录;/var/log/wtmp:记录登入者的讯息数据,由于本文件已经被编码过,所以必须使用last指令来取出文件的内容;

/var/log/messages:尤为重要,几乎发生的错误讯息(或是重要信息)都会被记录在此;

/var/log/boot.log:记录开机或者是一些服务启动的时候,所显示的启动或关闭讯息;

/var/log/maillog 或/var/log/mail/*:纪录邮件存取或往来( sendmail 与pop3 )的使用者记录;/var/log/cron:记录crontab 这个例行性服务的内容的。

/var/log/httpd, /var/log/news, /var/log/mysqld.log, /var/log/samba, /var/log/procmail.log:分别是几个不同的网络服务的记录文件!

登录文件的纪录程序之一:syslogd

通常经过syslog 而记录下来的数据主要有:

事件发生的日期与时间;

发生此事件的主机名称;

启动此事件的服务名称(如samba, xinetd 等) 或函式名称(如libpam ..);

该讯息数据内容

syslogd的daemon配置文件:/etc/syslog.conf

内容语法是这样的:

服务名称[.=!]讯息等级讯息记录的文件名或装置或主机

# 例如底下:

/var/log/maillog_info

服务名称:该服务产生的讯息会被纪录的意思。syslog 认识的服务主要有底下这些:auth, authpriv:主要与认证有关的机制,例如telnet, login, ssh 等需要认证的服务都是使用此一机制;

cron:例行性命令cron/at 等产生讯息记录的地方;

daemon:与各个daemon 有关的讯息;

kern:核心(kernel) 产生讯息的地方;

lpr:打印相关的讯息!

mail:只要与邮件收发有关的讯息纪录都属于这个;

news:与新闻群组服务器有关的东西;

syslog:syslogd 这支程序本身产生的信息啊!

user, uucp, local0 ~ local7:与Unix like 机器本身有关的一些讯息。

讯息等级

系统将讯息分为七个主要的等级,依序是由不重要排列到重要讯息等级:

info:仅是一些基本的讯息说明而已;

notice:比info 还需要被注意到的一些信息内容;

warning 或warn:警示讯息,可能有问题,但是还不至于影响到某个daemon 运作。

err 或error :一些重大的错误讯息,这就要去找原因了。

crit:比error 还要严重的错误信息,crit 是临界点(critical) 的缩写,已经很严重了!alert:警告警告,已经很有问题的等级,比crit 还要严重!

emerg 或panic:疼痛等级,意指系统已经几乎要当机的状态!很严重的错误信息了。

除了这些有等级的讯息外,还有两个特殊的等级,那就是debug(错误侦测等级) 与none (不需登录等级) 两个,当要作一些错误侦测,或者是忽略掉某些服务的信息时,就用这俩!在讯息等级之前还有[.=!] 的连结符号!他代表的意思是:

. :代表比后面还要高的等级(含该等级)都被记录下来的意思,例如: 代表只要是mail 的信息,而且该信息等级高于info (含info )时,就会被记录下来。

.=:代表所需要的等级就是后面接的等级而已!

.!:代表不等于。

日志文件记录的文件名或装置或主机常见的放置处:

文件的绝对路径:通常就是放在/var/log 里头的文件!

打印机或其它:例如/dev/lp0 这个打印机装置(即使被黑客可以删除掉日志文件,但是最终删除不了打印出来的日志信息)

使用者名称:显示给使用者!

远程主机:例如@,要对方主机也能支持才行!

*:代表目前在线的所有人,类似wall 这个指令的意义!

看看在尚未开启网络服务的情况下来自Fedora Core Release 4 的相关资料

[root@linux ~]# vi /etc/syslog.conf

#kern.* /dev/console

# 只要是kernel 产生的讯息,全部都送到console 去!默认是关闭的。

*.info;mail.none;authpriv.none;cron.none /var/log/messages

# 在已知各服务的讯息中,不要记录到这个文件中,把已知的服务记录到单独的日志文件中去,方便日后查询,否则messages这个文件就太混乱了。这个文件非常重要,所有未知的信息都会被记录在这个文件中,所以有问题,找这个文件就八九不离十了。

authpriv.* /var/log/secure

# 这个就是经过一些身份确认的行为之后,需要记录身份的文件。

mail.* -/var/log/maillog

# 只要跟mail 有关的(不论是pop3 还是sendmail )都会被纪录到这个文件!

cron.* /var/log/cron

#例行性命令相关的。

*.emerg *

# 任何时候发生的警告讯息都会显示给在线的所有人!那个*就是目前在线的所有人。uucp,news.crit /var/log/spooler

# 记录新闻错误高于crit 的等级的信息,写入spooler 当中!

local7.* /var/log/boot.log

# 将开机的当中的讯息写入/var/log/boot.log 中!

每个版本的syslog.conf 差异是很大的,所以,每个登录文件记录的数据其实不很固定。例:让所有的信息都额外写入到/var/log/admin.log!

[root@linux ~]# vi /etc/syslog.conf

*.info /var/log/admin.log 》》如果服务器硬盘容量够大,这么做也不失为一个良策。

[root@linux ~]# /etc/init.d/syslog restart

[root@linux ~]# ll /var/log/admin.log

相关文档
最新文档