Linux系统日志管理(redhat)

Will0 2010-10-21

Linux系统日志管理(redhat)

一、Linux系统日志作用

日志对任何一个OS、应用软件、服务进程而言都是必不可少的模块。日志

文件对于系统和网络安全起到中大作用,同时具有审计、跟踪、排错功能。

可以通过日志文件监测系统与网络安全隐患,以及监测黑客入侵攻击路线。

二、日志分类

1.连接时间的日志

连接时间日志一般由/var/log/wtmp和/var/run/utmp这两个文件记录,不过这

两个文件无法直接cat查看,并且该文件由系统自动更新,可以通过如下:

w/who/finger/id/last/lastlog/ac进行查看

[root@51cto~]#who

roottty12010-10-0622:56

rootpts/02010-10-0622:26(218.192.87.4)

rootpts/12010-10-0623:41(218.192.87.4)

rootpts/32010-10-0623:18(218.192.87.4)

[root@51cto~]#w

01:01:02up2:36,4users,loadaverage:0.15,0.03,0.01

USERTTYFROMLOGIN@IDLEJCPUPCPUWHAT

roottty1-22:561:20m0.16s0.16s-bash

rootpts/0218.192.87.422:262:05m0.18s0.18s-bash

rootpts/1218.192.87.423:410.00s0.41s0.00sw

rootpts/3218.192.87.423:181:38m0.03s0.03s-bash

[root@51cto~]#ac-p//查看每个用户的连接时间

u511.23

u550.04

root95.21//可以看到root连接时间最长吧

51cto0.06

user13.93

total100.48

[root@51cto~]#ac-a//查看所有用户的连接时间

total100.49

[root@51cto~]#ac-d//查看用户每天的连接时间

Sep24total0.14

Sep25total14.60

Sep26total13.71

Sep27total21.47

Sep28total11.74

Sep29total6.60

Sep30total8.81

Oct1total9.04

Oct2total0.47//可以看到我国庆3、4、5号出去玩了

Oct6total8.62

Todaytotal5.29

其他几个命令不做具体介绍了

2.进程监控日志

进程统计监控日志在监控用户的操作指令是非常有效的。当服务器最近发现经常

无故关机或者无故被人删除文件等现象时,可以通过使用进程统计日志查看:

[root@51cto~]#accton/var/account/pacct//开启进程统计日志监控

[root@51cto~]#lastcomm//查看进程统计日志情况

acctonSrootpts/10.00secsThuOct701:20

acctonrootpts/10.00secsThuOct701:20

acrootpts/10.00secsThuOct701:14

acrootpts/10.00secsThuOct701:14

freerootpts/10.00secsThuOct701:10

lastcommrootpts/10.00secsThuOct701:09

bashFrootpts/10.00secsThuOct701:09

lastcommrootpts/10.00secsThuOct701:09

ifconfigrootpts/10.00secsThuOct701:09

lastcommrootpts/10.00secsThuOct701:09

lastcommrootpts/10.00secsThuOct701:09

lastcommrootpts/10.00secsThuOct701:09

acctonSrootpts/10.00secsThuOct701:09

[root@51cto~]#accton//关闭进程统计日志监控

3.系统和服务日志

系统日志服务是由一个名为syslog的服务管理的,如一下日志文件都是由syslog日志服务驱动的:

/var/log/lastlog:记录最后一次用户成功登陆的时间、登陆IP等信息

/var/log/messages:记录Linux操作系统常见的系统和服务错误信息

/var/log/secure:Linux系统安全日志,记录用户和工作组变坏情况、用户登陆认证情况

/var/log/btmp:记录Linux登陆失败的用户、时间以及远程IP地址

/var/log/cron:记录crond计划任务服务执行情况

…...

[root@51cto~]#cat/var/log/lastlog

Lpts/0218.192.87.4

Lpts/1218.192.87.4

Lpts/1218.192.87.4

Lpts/0218.192.87.46

Lpts/0218.192.87.4

…...

三、Linux日志服务介绍

1.在Linux系统,大部分日志都是由syslog日志服务驱动和管理的,syslog服务由两个重要的

配置文件控制管理,分别是/etc/syslog.conf主配置文件和/etc/sysconfig/syslog辅助

配置文件,/etc/init.d/syslog是启动脚本,这里主讲主配置文件/etc/syslog.conf:

/etc/syslog.conf语句结构:

[root@51cto~]#grep-v"#"/etc/syslog.conf//列出非#打头的每一行

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

authpriv.*/var/log/secure

mail.*-/var/log/maillog

cron.*/var/log/cron

*.emerg*

uucp,news.crit/var/log/spooler

local7.*/var/log/boot.log

选择域(消息类型.错误级别)动作域

2.消息类型:auth,authpriv,security;cron,daemon,kern,lpr,mail,mark,news,syslog,user,uucp,local0~local7.

错误级别:(8级)debug,info,notice,warning|warn;err|error;crit,alert,emerg|panic

动作域:file,user,console,@remote_ip

举如上的/etc/syslog.conf文件三个例子:

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

表示info级别的任何消息都发送到/var/log/messages日志文件,但邮件系统、验证系统

和计划任务的错误级别信息就除外,不发送(none表示禁止)

cron.*/var/log/cron表示所有级别的cron信息发到/var/log/cron文件

*.emerg*表示emerg错误级别(危险状态)的所有消息类型发给所有用户

四、Linux日志服务器配置

此服务器的配置非常简单,只是修改一个文件的一个地方,然后重启服务即可:

[root@51cto~]#grep-v"#"/etc/sysconfig/syslog

SYSLOGD_OPTIONS="-m0-r"//只要在这里添加“-r”就行咯

KLOGD_OPTIONS="-x"

SYSLOG_UMASK=077

[root@51cto~]#servicesyslogrestart

关闭内核日志记录器:[确定]

关闭系统日志记录器:[确定]

启动系统日志记录器:[确定]

启动内核日志记录器:[确定]

对于发送消息到服务器的OS,只要在写/etc/syslog.conf主配置文件的时候,作用域

为@server-ip就行了,比如针对218.192.87.24这台日志服务器,把一台ubuntu系统的所有

info级别的auth信息发给日志服务器,那么对于ubuntu系统的/etc/syslog.conf文件最后一

行添加auth.info@218.192.87.24就OK了

五、日志转储服务

系统工作到了一定时间后,日志文件的内容随着时间和访问量的增加而越来越多,

日志文件也越来越大。而且当日志文件超过系统控制范围时候,还会对系统性能

造成影响。转储方式可以设为每年转储、每月转储、每周转储、达到一定大小转储。

在Linux系统,经常使用“logrotate”工具进行日志转储,结合cron计划任务,可以轻松

实现日志文件的转储。转储方式的设置由“/etc/logrotate.conf”配置文件控制:

[root@51cto~]#cat/etc/logrotate.conf

#see"manlogrotate"fordetails//可以查看帮助文档

#rotatelogfilesweekly

weekly//设置每周转储

#keep4weeksworthofbacklogs

rotate4//最多转储4次

#createnew(empty)logfilesafterrotatingoldones

create//当转储后文件不存储时创建它

#uncommentthisifyouwantyourlogfilescompressed

#compress//以压缩方式转储

#RPMpackagesdroplogrotationinformationintothisdirectory

include/etc/logrotate.d//其他日志文件的转储方式,包含在该目录下

#nopackagesownwtmp--we'llrotatethemhere

/var/log/wtmp{//设置/var/log/wtmp日志文件的转储参数

monthly//每月转储

create0664rootutmp//转储后文件不存在时创建它,文件所有者为root,

所属组为utmp,对应的权限为0664

rotate1//转储一次

}

#system-specificlogsmaybealsobeconfiguredhere.

举2个例子:为/var/log/news/目录下的所有文件设置转储参数,每周转储,转储2次,转储

时将老的日志文件放到/var/log/news/old目录下,若日志文件不存在,则跳过。完成后重启

news新闻组服务,转储时不压缩。那么可以在/etc/logrotate.conf文件的最后添加如下:

/var/log/news/*{

monthly

rotate2

olddir/var/log/news/old

missingok

postrotate

kill-HUP`cat/var/run/inn.pid`

endscript

nocompress

}

另一个例子:为/var/log/httpd/access.log和/var/log/httpd/error.log日志设置转储参数。转储

5次,转储时发送邮件给[email=root@localhost]root@localhost[/email]用户,当日志文件达到100KB时才转储,转储后重启

httpd服务,那么可以直接在/etc/logrotate.conf文件的最后添加如下:

/var/log/httpd/access.log/var/log/http/error.log{

rotate5

mail[email=root@localhost]root@localhost[/email]

size=100k

sharedscripts

/sbin/killall-HUPhttpd

endscript

}

六、自定义日志转储(/etc/logrotate.d/*)

通过下面一个例子将所有类型错误级别为info的日志转储到/var/log/test.log日志文件中,并设置

/var/log/test.log达到50KB后进行转储,转储10次,转储时压缩,转储后重启syslog服务:

1、修改/etc/syslog.conf文件使得如下:

[root@51cto~]#tail-1/etc/syslog.conf//查看该文件的最后一行

*.info/var/log/test.log

2、重启syslog服务:

[root@51cto~]#/sbin/servicesyslogrestart

关闭内核日志记录器:[确定]

关闭系统日志记录器:[确定]

启动系统日志记录器:[确定]

启动内核日志记录器:[确定]

3、创建/etc/logrotate.d/test.log日志转储参数配置文件,添加如下:

[root@51cto~]#vim/etc/logrotate.d/test.log

[root@51cto~]#cat/etc/logrotate.d/test.log

/var/log/test.log{

rotate10

size=50k

compress

postrotate

killall-HUPsyslog

endscript

}

4、查看文件/etc/cron.daily/logrotate确保如下:

[root@51cto~]#cat/etc/cron.daily/logrotate

#!/bin/sh

/usr/sbin/logrotate/etc/logrotate.conf

EXITVALUE=$?

if[$EXITVALUE!=0];then

/usr/bin/logger-tlogrotate"ALERTexitedabnormallywith[$EXITVALUE]"

fi

exit0

5、查看转储后的文件

[root@51ctolog]#pwd

/var/log

[root@51ctolog]#lstest.log*

……//结果等要转储的时候会发现压缩文件和原本的test.log文件

相关推荐

lightlanguage / 0评论 2020-04-22