linux系统日志怎么收,初探Linux的系统日志

syslogd & klogd   ---------/etc/syslog.conf

/var/log/secure:登录到系统存取资料的记录;FTP、SSH、TELNET...

/var/log/wtmp:记录登录者讯录,二进制文件,须用last来读取内容

/var/log/messages:杂货铺

/var/log/boot.log:记录开机启动讯息,dmesg | more

一、常识

复制代码代码如下:

# ps aux | grep syslog

# chkconfig --list | grep syslog

# cat /var/log/secure

/etc/syslog.conf 哪些服务产生的哪些等级讯息记录到哪里

记录到相同地方的多个讯息源用分号间隔

vi /etc/syslog.conf

二、接收远程日志

复制代码代码如下:

# grep 514 /etc/services

syslog 514/udp

vi /etc/sysconfig/syslog

# 将SYSLOGD_OPTIONS="-m 0"

# 改成

SYSLOGD_OPTIONS="-m 0 -r"

/etc/init.d/syslog restart

[root@linux ~]# netstat -tlunp

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

udp 0 0 0.0.0.0:514 0.0.0.0:* 24314/syslogd

对应client

# vi /etc/syslog.conf

*.* @192.168.1.100

三、logrotate

复制代码代码如下:

* /etc/logrotate.conf

* /etc/logrotate.d/

logrotate.conf 才是主要配置文件,而/logrotate.d /这个目录内的所有文件都被读入 /etc/logrotate.conf来执行!

如果在 /etc/logrotate.d/ 目录文件中,没有相应的细节设定?以 /etc/logrotate.conf 设定为缺省值!

复制代码代码如下:

vi /etc/logrotate.d/syslog

/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler

/var/log/boot.log /var/log/cron {

sharedscripts

postrotate

/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true

endscript

}

1、用空格作多个档案分隔

2、所有设定在{}中

3、# prerotate:在启动logrotate执行的指令

# postrotate:在做完 logrotate后需处理的指令

logrotate [-vf] logfile

??:

-v  :显示过程

-f  :强制执行

而 logrotate 的工作加入到 crontab /etc/cron.daily/logrotate;所以系统每天自动查看

只是要注意一下:/var/log/messages 是否有这样的类似内容

Oct 24 15:15:35 localhost syslogd 1.4.1: restart.

四、实例:要求: 登录档案每月替换一次

若> 10MB ;强制替换,不不考虑一个月的期限;

保存五备份文档;

备份文档不压缩。

步骤1:

复制代码代码如下:

root@linux ~]# chattr +a /var/log/admin.log

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

-----a------- /var/log/admin.log

只能新增不能删节除,除非chattr -a /var/log/admin.log

复制代码代码如下:

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

mv: cannot move '/var/log/admin.log' to '/var/log/admin.log.1':permission deny

步骤2:

复制代码代码如下:

vi /etc/logrotate.d/admin

# This configuration is from VBird 2005/10/24

/var/log/admin.log {

monthly

size=10M

rotate 5

nocompress

sharedscripts

prerotate

/usr/bin/chattr -a /var/log/admin.log

endscript

sharedscripts

postrotate

/usr/bin/killall -HUP syslogd

/usr/bin/chattr +a /var/log/admin.log

endscript

}

步骤3:测试

复制代码代码如下:

# logrotate -v /etc/logrotate.conf

.....(前面省略).....

rotating pattern: /var/log/admin.log 10485760 bytes (5 rotations)

empty log files are rotated, old logs are removed

considering log /var/log/admin.log

log does not need rotating

not running shared prerotate script, since no logs will be rotated

............

# logrotate -vf /etc/logrotate.d/admin

reading config file /etc/logrotate.d/admin

reading config info for /var/log/admin.log

也就是说: /etc/syslog.conf 与/etc/logrotate.d/* 对应文档搭配起来使用;先由syslogd 按照syslog.conf指定的方法处理消息,

然后送给 logrotat来按照/etc/logrotate.d/*文档要求来轮替日志。

五、常见指令:

复制代码代码如下:

# dmesg | more  读/var/log/boot.log

复制代码代码如下:

dmesg | grep 'eth'

复制代码代码如下:

# last -n number

[root@linux ~]# last -f filename

-n  :number

-f  :last 预设值为读 /var/log/wtmp 文档,而 -f 读取不同的文档

复制代码代码如下:

# last -n 5 -f /var/log/wtmp.1

dmtsai2 pts/2 Mon Oct 24 14:18 - 14:18 (00:00)

dmtsai2 work:0 work Mon Oct 24 14:18 gone - no logout

dmtsai2 work:0 work Mon Oct 24 14:18 - 14:18 (00:00)

dmtsai2 pts/2 Mon Oct 24 14:18 - 14:18 (00:00)

dmtsai2 work:0 work Mon Oct 24 14:18 - 14:18 (00:00)

# lastlog

只读取/var/log/lastlog 内容,只包括当前系统上面所有的帐号最近一次LOGIN的时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值