初探Linux的系统日志

网络知识 2023-02-09 13:14www.1681989.comseo网站推广

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</p> <p>vi /etc/sysconfig/syslog
# 将SYSLOGD_OPTIONS="-m 0"
# 改成
SYSLOGD_OPTIONS="-m 0 -r"</p> <p>/etc/it.d/syslog restart
[root@lux ~]# stat -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</p> <p>对应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
/b/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@lux ~]# chattr +a /var/log/adm.log
[root@lux ~]# lsattr /var/log/adm.log
-----a------- /var/log/adm.log
只能新增不能删节除,除非chattr -a /var/log/adm.log

复制代码代码如下:[root@lux ~]# mv /var/log/adm.log /var/log/adm.log.1
mv: cannot move '/var/log/adm.log' to '/var/log/adm.log.1':permission deny
步骤2

复制代码代码如下:vi /etc/logrotate.d/adm
# This configuration is from VBird 2005/10/24
/var/log/adm.log {
monthly
size=10M
rotate 5
nopress
sharedscripts
prerotate
/usr/b/chattr -a /var/log/adm.log
endscript
sharedscripts
postrotate
/usr/b/killall -HUP syslogd
/usr/b/chattr +a /var/log/adm.log
endscript
}
步骤3测试

复制代码代码如下:# logrotate -v /etc/logrotate.conf
.....(前面省略).....
rotatg pattern: /var/log/adm.log 10485760 bytes (5 rotations)
empty log files are rotated, old logs are removed
considerg log /var/log/adm.log
log does not need rotatg
not runng shared prerotate script, sce no logs will be rotated
............
# logrotate -vf /etc/logrotate.d/adm
readg config file /etc/logrotate.d/adm
readg config fo for /var/log/adm.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@lux ~]# 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)</p> <p># lastlog
只读取/var/log/lastlog 内容,只包括当前系统上面所有的帐号最近一次LOGIN的时间。

上一篇:通过SSH进行密钥认证自动登录Linux服务器 下一篇:命令行查看Linux的系统版本和内核版本以及机器字

Copyright © 2016-2025 www.1681989.com 推火网 版权所有 Power by