当前位置:   article > 正文

ubuntu查看系统日志及相关文件介绍_ubuntu logger

ubuntu logger
   1.在ubuntu服务器上,日志是通过syslogd进程处理的。该进程读取如下配置文件:/etc/syslog.conf该文件主要配置哪些信息需要记录日志,记录到什么地方。在该配置文件的第一部分,是对系统设施日志的配置,主要有:auth:有关认证...
http://www.169it.com/article/6268721738005395678.html

1.在ubuntu服务器上,日志是通过syslogd进程处理的。该进程读取如下配置文件:

/etc/syslog.conf

该文件主要配置哪些信息需要记录日志,记录到什么地方。

在该配置文件的第一部分,是对系统设施日志的配置,主要有:

auth:有关认证进程的信息;

daemo:有关守护进程的信息;

kern:有关系统内核的信息;

mail:有关邮件系统的信息;

其它: 相关信息;

比如,可以看到有关守护进程的日志,以下是查看时间服务器守护进程的日志:

sudo cat /var/log/daemon.log | grep ntp

2.日志级别,和log4j的级别概念类似。有:

debug(调试) 与none(不需登录等级);

info:一些基本的信息;

notice:比info需要被注意到的一些信息内容;

warning:警示的讯息,可能有问题, 但是还不至于影响到某个 daemon 运作的信息;基本上, info, notice, warn 这三个讯息都是在告知一些基本信息,应该还不至于造成一些系统运作困扰;

err:一些重大的错误讯息, 例如设定文件的某些设定值造成该服务服法启动的信息说明,通常通过err的错误告知,应该可以了解到该服务无法启动的问题;

crit:比error还要严重的错误信息,这个crit是临界点(critical)的缩写,这个错误已经很严重;

alert:警告,已经很有问题的等级,比crit还要严重;

emerg:紧急,系统已经几乎要当机的状态。很严重的错误信息。通常大概只有硬件出问题,导致整个核心无法顺利运作,就会出现这样的等级的信息。

有关硬件的日志,dmesg。


有关登录错误的日志信息,使用如下命令:

faillog

查看即插即用设备的日志:

sudo tail /var/log/udev -f


另外,可以通过命令直接写日志信息到文件:

logger ‘中文’

默认情况下,可以在/var/log/syslog或者/var/log/messages文件中找到该日志信息。也可以写入到指定的文件中。

其他有用的日志:

/var/log/apt/term.log,apt操作日志

dd

其他有关日志的命令。

比如查看最后登录用户:

sudo lastlog


3.日志使用举例:


1)允许 syslog 记录外部日志

修改 /etc/default/syslogd,把其中的 SYSLOGD="" 改为 SYSLOGD="-r"

2)定义外部日志类型

修改 juniper isg1000 日志定义,让其生成的日志定义为 local7,并向 ubuntu 服务器发送日志。

3)定义日志文件

考虑到日志文件比较多,在 /var/log 下新建 firewall 目录,用于保存日志文件。目录属性 755。

修改 /etc/syslog.conf,在其中增加下面一行:

local7.*

-/var/log/firewall/firewall.log

4)重复记录问题

  syslog 不光在 firewall.log 中记录,还在 /var/log 中的 syslog 和 messages 记录,由于日志很大,这下麻烦了。看看 syslog.conf 的 man,居然还有个 ! 功能,在 syslog.conf 文件中的 syslog 和 messages 定义前面加上了 !local7.*,感觉不错,syslog 不再向 syslog 和 messages 文件中记录设备日志了。

5)文件超大问题

  syslog 记录的日志文件最大不超过2.5G,如果超过了,将停止记录。而 isg1000 4个小时左右的日志就达到这个数量了。必须设置日志轮转。在 /etc/logrotate.d 中新建 firewall 日志轮转控制文件,属性644,firewall 内如如下:

  /var/log/firewall/firewall.log {

  start 1000

  rotate 512

  maxage 100

  size 1500M

  compress

  delaycompress

  missingok

  postrotate

  /usr/bin/killall -HUP syslogd

  endscript

  }

以上内容简单解释:

  由于日志文件需要保存3个月,且平均每天生成5个日志文件,设置最多保留512个,保留时间100天。

  文件后缀编号从1000开始,比从1开始在排序上要好看。

  文件超过1500M的时候轮转。

  为了减少存储空间占用,轮转后的日志文件需要压缩,但不是轮转后马上压缩,而是轮转下一个的时候,再压缩,以防 syslog 继续写入当前文件时候丢失数据。

  经过以上设置,感觉可以,谁知道使用几天,发现还有问题。

6)再次解决文件超大问题

  firewall.log 文件依然是2G多,没有按照设定达到1500M的时候轮转,究竟为什么?仔细看 man logrotate ,呵呵,原来如此,logrotate 每天运行一次,等它运行的时候,firewall.log 早就达到2G了。怎么办,让它每小时运行一次试试看,把 /etc/cron.daily/logtotate 文件拷贝到 /etc/cron.hourly 中一份。效果不错,看来问题解决了。

7)解决日志文件不到1500M就轮转、且日志文件名没有按定义规则生成问题

  经过若干天运行,发现个小小问题。若干文件不到设置的1500M就轮转了,而且文件名没有按定义方式生成,而是原始的 firewall.log.0 方式,但是它们都有共性,都是早上 6:47 生成的。让我想想,肯定是 cron 中 sysklogd 脚本搞的鬼。进入 /etc 中的各个 cron 子目录中,把下面这句或者类似的

  logs=$(syslogd-listfiles)

  加上 -s firewall.log 参数,改为

  logs=$(syslogd-listfiles -s firewall.log)

  让日志服务不再处理 firewall.log 日志。


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/187943
推荐阅读
相关标签
  

闽ICP备14008679号