初探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
一、常识
# chkconfig --list | grep syslog
# cat /var/log/secure
/etc/syslog.conf 哪些服务产生的哪些等级讯息记录到哪里
记录到相同地方的多个讯息源用分号间隔
vi /etc/syslog.conf
二、接收远程日志
syslog 514/udp</p> <p>vi /etc/sysconfig/syslog
# 将syslogd_options="-m 0"
# 改成
syslogd_options="-m 0 -r"</p> <p>/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</p> <p>对应client
# vi /etc/syslog.conf
*.* @192.168.1.100
三、logrotate
* /etc/logrotate.d/
logrotate.conf 才是主要配置文件,而/logrotate.d /这个目录内的所有文件都被读入 /etc/logrotate.conf来执行!
如果在 /etc/logrotate.d/ 目录文件中,没有相应的细节设定?以 /etc/logrotate.conf 设定为缺省值!
/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 ~]# lsattr /var/log/admin.log
-----a------- /var/log/admin.log
只能新增不能删节除,除非chattr -a /var/log/admin.log
mv: cannot move '/var/log/admin.log' to '/var/log/admin.log.1':permission deny
步骤2:
# 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:测试
.....(前面省略).....
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/*文档要求来轮替日志。
五、常见指令:
[root@linux ~]# last -f filename
-n :number
-f :last 预设值为读 /var/log/wtmp 文档,而 -f 读取不同的文档
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的时间。
推荐阅读
-
linux top命令详解和使用实例及使用技巧(监控linux的系统状况)
-
linux系统启动weblogic受管服务器报unable to get file lock, will ret_daring的解决
-
用date命令修改Linux系统的时间为什么无效?怎么才能正确显示
-
linux修改系统时间和linux查看时区、修改时区的方法
-
图解linux系统的软连接和硬链接
-
Linux系统中的rc.local自启动服务
-
Linux系统中校验下载文件的完整性方法(MD5,SHA1,PGP)
-
linux系统中apache服务的优先级
-
linux系统更新正在运行进程的可执行文件需要注意的text file busy的原因及解决方法
-
Broadcom网卡linux系统下无法连接到网络问题的解决办法