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/servicessyslog 514/udpvi /etc/sysconfig/syslog# 将SYSLOGD_OPTIONS="-m 0"# 改成SYSLOGD_OPTIONS="-m 0 -r"/etc/init.d/syslog restart[root@linux ~]# netstat -tlunpProto Recv-Q Send-Q Local Address Foreign Address State PID/Program nameudp 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.1mv: 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 removedconsidering log /var/log/admin.log log does not need rotatingnot running shared prerotate script, since no logs will be rotated............# logrotate -vf /etc/logrotate.d/adminreading config file /etc/logrotate.d/adminreading 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.logdmesg | 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.1dmtsai2 pts/2 Mon Oct 24 14:18 - 14:18 (00:00)dmtsai2 work:0 work Mon Oct 24 14:18 gone - no logoutdmtsai2 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的时间。
