Contents

linux日志管理

日志管理简介

  • 百度百科简介:系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。系统日志包括系统日志、应用程序日志和安全日志。

  • 服务器出现问题先查看日志,才能找准原因

  • CentOS7中原来的日志服务syslogd被rsyslogd取代,两者兼容

  • 确认服务是否启动和自启动:

    • ps aux | grep rsyslogd
    • chkconfig --list | grep rsylog
  • 常见的日志的作用:

  • RPM包安装的服务日志也会在/var/log/目录下

  • 源码包安装的服务日志在源码包指定目录(一般是/usr/local)中,这些日志不是有rsyslogd服务来管理的,而是由各个服务使用自己的日志管理文档来记录自身日志

rsyslogd日志服务

日志文件格式

  • 事件产生的时间
  • 产生事件的服务器的主机名
  • 产生事件的服务名或程序名
  • 事件的具体信息

/etc/rsyslog.conf配置文件

格式:

  • authpriv.* /var/log/secure

    服务名称[连接符号]日志等级 日志记录位置

  • 服务名称,连接符,日志等级,日志记录位置都有多个,内容很多,自行百度。

日志轮替

如果日志都记录在一个文件中,那么可能会占据大量存储空间,纯文本文档打开会非常慢,所以日志需要处理:切割(把大日志按天切割成小的)+轮换(删除旧的,保存新的)

  • 如果配置文件中由“dateext”参数,那么日志会用日期作为后缀,只需要保存指定的日志个数,删除多余的日志文件即可

  • 如果没有“dateext”参数,那么日志文件就需要改名了,当第一次使用日志轮替时,当前的“secure”日志会自动改名为“secure.1”,然后新建“secure”日志。第二次时,1变2,0变1,又新建0,以此类推

  • 配置文件:/etc/logrotate.conf

    包含参数:daily,weekly,monthly,rotate,compress,create mode owner group等

    分别表示:轮替周期时每天,每周,每月,保存日志文件的个数,旧日志是否压缩,建立新日志同时指定权限

  • 只要是RPM包安装的服务,它默认已经支持轮替,但是源码包安装的服务需要vim /etc/logrotate.conf,然后手动加入轮替

    FOR EXAMPLE:

    1
    2
    3
    4
    5
    
    /usr/local/apache2/logs/access_log{
        daily    //每天备份
        create   //备份的时候创建新的日志
        rotate 30   //保留30天
    }
    
  • logrotate -v /etc/logrotate.conf:显示日志轮替过程

  • logrotate -f /etc/logrotate.conf:强制轮替,不管日志轮替的条件是否已经满足