如何理解Linux的系统日志-创新互联-成都快上网建站

如何理解Linux的系统日志-创新互联

本篇内容主要讲解“如何理解Linux的系统日志”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解Linux的系统日志”吧!

成都创新互联主要从事网站建设、成都网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务英吉沙,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

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的时间。


到此,相信大家对“如何理解Linux的系统日志”有了更深的了解,不妨来实际操作一番吧!这里是创新互联建站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


本文标题:如何理解Linux的系统日志-创新互联
网站链接:http://kswjz.com/article/dhhcho.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流