Linux中日志(rsyslog)分析及管理和日志转储(logrotate)功能

知识要点

  • 日志的作用
  • rsyslog服务介绍
  • 日志文件的存放位置
  • 常见日志文件内容介绍
  • 用户验证相关日志
  • 常用日志操作命令
  • 日志管理策略
  • 日志转储功能(logrotate)
    日志的作用
  • 用于记录系统、程序运行中发生的各种事件
  • 通过阅读日志,有助于诊断和解决系统故障
    日志文件的分类
  • 内核及系统日志
  • 由系统服务rsyslog统一进行管理,日志格式基本相似
  • 用户日志
  • 记录系统用户登录及退出系统的相关信息
  • 程序日志
  • 由各种应用程序独立管理的日志文件,记录格式不统一

rsyslog系统日志

由系统服务 rsyslog统一管理

  • 软件包:rsyslog-5.8.10-8
  • 主要程序:/sbin/rsyslogd
  • 配置文件:/etc/rsyslog.conf
    Linux中日志(rsyslog)分析及管理和日志转储(logrotate)功能_第1张图片
    配置文件:/etc/rsyslog.conf语法
  • 日志设备(类型).(连接符号)日志级别 日志处理方式(action)
  • 日志设备(可以理解为日志类型):
    Linux中日志(rsyslog)分析及管理和日志转储(logrotate)功能_第2张图片
    日志级别
    NONE: 什么都不记录
    EMERG(紧急):会导致主机系统不可用的情况
    ALERT(警告):必须马上采取措施解决的问题
    CRIT(严重):比较严重的情况
    ERR(错误):运行出现错误
    WARNING(提醒):可能会影响系统功能的事件
    NOTICE(注意):不会影响系统但值得注意
    INFO(信息):一般信息
    DEBUG(调试):程序或系统调试信息等
    从下到上,级别从低到高,记录的信息越来越少

连接符号
. :记录大于等于后面的级别日志
.=:只记录等于后面的级别日志
.!=:只记录不等于后面的级别日志
日志处理方式
本地文件:通常就是文件的绝对路径
打印机:例如 /dev/lp0 这个打印机装置
用户名称:显示给用户
远程主机:例如 @202.100.100.1
*:所有在线的用户
系统日志保存位置
默认位于:/var/log 目录下
主要日志文件介绍
内核及公共消息日志:/var/log/messages
计划任务日志:/var/log/cron
系统引导日志:/var/log/dmesg
邮件系统日志:/var/log/maillog
由相应的应用程序独立进行管理

  • Web服务:/var/log/httpd/
  • access_log、error_log
  • 代理服务:/var/log/squid/
  • access.log、cache.log、squid.out、store.log
  • FTP服务:/var/log/xferlog
    ……
    分析工具
    文本查看、grep过滤检索、Webmin管理套件中查看
    awk、sed等文本过滤、格式化编辑工具
    Webalizer、Awstats等专用日志分析工具
    保存了用户登录、退出系统等相关信息
    /var/log/lastlog:最近的用户登录事件
    /var/log/wtmp:用户登录、注销及系统开、关机事件
    /var/run/utmp:当前登录的每个用户的详细信息
    /var/log/secure:与用户验证相关的安全性事件
    用户登录分析
    who、w、users、last、ac、lastlog
    主动记录日志工具
    logger:从命令行直接向系统日志文件写入一行信息
    日志管理策略
  • 及时作好备份和归档
  • 控制日志访问权限
  • 日志中可能会包含各类敏感信息,如账户、口令等
  • 集中管理日志
  • 使用日志服务器便于日志的统一收集、整理和分析
  • 杜绝日志信息的意外丢失、恶意篡改或删除

日志设置的一般步骤

1、修改/etc/rsyslog.conf文件,在最后加一行,内容如下:
日志设备.日志级别 存储位置
2、重启rsyslog服务
service rsyslog restart
测试
在客户机通过logger添加日志
在服务器上查看日志

日志转储功能

  • 系统时时刻刻都在产生日志,如果不及时清理,很快就会填满硬盘,但如果要手工清理,又很麻烦。这种情况下,logrotate
    这个程序很好的完成这个任务。

  • logrotate
    用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。我们可以根据日志文件的大小,也可以根据天数来转储,这个过程一般通过crond进程来执行,logrotate还可以用于压缩日志文件
    logrotate的主配置文件:/etc/logrotate.conf
    主要参数
    Linux中日志(rsyslog)分析及管理和日志转储(logrotate)功能_第3张图片
    Linux中日志(rsyslog)分析及管理和日志转储(logrotate)功能_第4张图片
    Logrotate的次要配置文件:/etc/logrotate.d/*

  • 每个文件代表一种日志的配置
    一般对次要配置文件进行修改 在这个目录 /etc/logrotate.d/创建文件
    下面为配置文件的一般格式:

    [root@localhost ~]# cat /etc/logrotate.d/syslog
         /var/log/messages  #要转储的文件  {
             #转储的一些参数
             daily     #每天
             size  20M  #每20M转储一次
             rotate   3  #保留三份转储文件
             
             postrotate
                 需要执行的命令
             endscript
         }
    

    日志转储
    logrotate -v /etc/logrotate.conf
    -f:强制转储
    使用这个命令可以立即使转储文件达到条件进行转储
    注意事项:
    若转储一次后就不在转储,需要在配置文件中加上要执行的命令 service rsyslog restart 重启rsyslog服务
    若未能转储:需要关掉selinux
    selinux是一个Linux安全子系统
    修改/etc/selinux/config 文件

 This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.

SELINUX=enforcing    把这一行改为    SELINUX=disabled


# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
重启生效

你可能感兴趣的:(linux)