系统日志管理

狂风中的少年 提交于 2020-11-27 02:25:12

 

 

系统日志管理

 

日志文件的分类(日志保存在/var/log下)

 

内核及系统日志

 

由系统服务syslog统一进行管理

 

  

/var/log/messages 内核及公共消息日志 /var/log/cron 计划任务日志 /var/log/dmesg 系统引导日志 /var/log/maillog 邮件系统日志 /var/log/secure 记录与访问限制相关日志

 

用户日志

 

记录系统用户登录及退出系统的相关信息

 

  /var/log/lastlog    最近的用户登录事件
    /var/log/wtmp        用户登录、注销及系统开关机
    /var/log/btmp         失败的用户登陆事件
    /var/run/utmp        当前登录的每个用户详细信息

 

 

程序日志

 

由各种应用程序独立管理的日志文件,记录格式不统一
Web服务的access_log、error_log
Squid代理服务的access.log、cache.log
FTP服务的Xferlog

 

用户日志分析

 

users    
who    比w更加简洁
w    查看当前登陆的用户
last    最近系统登陆情况
lastb    最近系统登陆失败的情况

 

系统及内核日志格式

 

时间标签       主机名    子系统名称    消息

 

syslogd管理日志:5版本

 

配置文件:/etc/syslog.conf

格式如下

 

服务类别.日志级别        日志消息发送位置

配置文件定义格式为:

facility.priority        action

facility,可以理解为日志的来源或设备目前常用的facility有以下几种:

 auth                  # 认证相关的 
    authpriv              # 权限,授权相关的 
    cron                  # 任务计划相关的 
    daemon                # 守护进程相关的 
    kern                  # 内核相关的 
    lpr                   # 打印相关的 
    mail                  # 邮件相关的 
    mark                  # 标记相关的 
    news                  # 新闻相关的 
    security             # 安全相关的,与auth 类似  
    syslog               # syslog自己的 
    user                 # 用户相关的 
    uucp                 # unix to unix cp 相关的 
    local0 到 local7     # 用户自定义使用 
    *                    # *表示所有的facility

 

priority(log level)日志的级别,一般有以下几种级别(从低到高)

 

 debug           # 程序或系统的调试信息 
    info            # 一般信息
    notice          # 不影响正常功能,需要注意的消息 
    warning/warn    # 可能影响系统功能,需要提醒用户的重要事件 
    err/error       # 错误信息 
    crit            # 比较严重的 
    alert           # 必须马上处理的 
    emerg/panic     # 会导致系统不可用的 
    *               # 表示所有的日志级别 
    none            # 跟* 相反,表示啥也没有

 

 

日志消息的级别

 

0  EMERG(紧急)        会导致主机系统不可用的情况
1  ALERT(警告)        必须马上采取措施解决的问题
2 CRIT(严重) 比较严重的情况 3 ERR(错误) 运行出现错误 4 WARNING(提醒) 可能会影响系统功能的事件 5 NOTICE(注意) 不会影响系统但值得注意 6 INFO(信息) 一般信息 7 DEBUG(调试) 程序或系统调试信息等

 

表示消息类别,例如:

auth、authpriv、cron、daemon、kern、lpr、mail、syslog、user

 

action(动作)日志记录的位置

 

系统上的绝对路径    # 普通文件 如: /var/log/xxx 
    |                   # 管道  通过管道送给其他的命令处理 
    终端              # 终端   如:/dev/console 
    @HOST               # 远程主机 如: @10.0.0.1      
    用户              # 系统用户 如: root 
    *                   # 登录到系统上的所有用户,一般emerg级别的日志是这样定义的

 

定义格式例子:

mail.info   /var/log/mail.log # 表示将mail相关的,级别为info及 
                              # info以上级别的信息记录到/var/log/mail.log文件中 
auth.=info  @10.0.0.1         # 表示将auth相关的,基本为info的信息记录到10.0.0.1主机上去 
                              # 前提是10.0.0.1要能接收其他主机发来的日志信息 
user.!=error                  # 表示记录user相关的,不包括error级别的信息 
user.!error                   # 与user.error相反 
*.info                        # 表示记录所有的日志信息的info级别 
mail.*                        # 表示记录mail相关的所有级别的信息 
*.*                           # 你懂的. 
cron.info;mail.info           # 多个日志来源可以用";" 隔开 
cron,mail.info                # 与cron.info;mail.info 是一个意思 
mail.*;mail.!=info            # 表示记录mail相关的所有级别的信息,但是不包括info级别的

 

 

rsyslog管理日志:6版本

 

配置文件:/etc/rsyslog.conf
格式如下

服务类别.日志级别           日志消息发送位置

 

日志消息的级别

 

0  EMERG(紧急)        会导致主机系统不可用的情况
1  ALERT(警告)        必须马上采取措施解决的问题
2  CRIT(严重)        比较严重的情况
3  ERR(错误)        运行出现错误
4  WARNING(提醒)    可能会影响系统功能的事件
5  NOTICE(注意)        不会影响系统但值得注意
6  INFO(信息)        一般信息
7  DEBUG(调试)        程序或系统调试信息等

 

 

连接符号

. 记录大于等于此等级
.= 只记录等于此等级的信息
.! 不等于此等级,也就是记录此等级之外的信息

 

表示消息类别,例如:

auth、authpriv、cron、daemon、kern、lpr、mail、syslog、user

 

配置文件定义格式为:

facility.priority        action

 

facility,可以理解为日志的来源或设备目前常用的facility有以下几种:

 

  auth                  # 认证相关的 
    authpriv              # 权限,授权相关的 
    cron                  # 任务计划相关的 
    daemon                # 守护进程相关的 
    kern                  # 内核相关的 
    lpr                   # 打印相关的 
    mail                  # 邮件相关的 
    mark                  # 标记相关的 
    news                  # 新闻相关的 
    security             # 安全相关的,与auth 类似  
    syslog               # syslog自己的 
    user                 # 用户相关的 
    uucp                 # unix to unix cp 相关的 
    local0 到 local7     # 用户自定义使用 
    *                    # *表示所有的facility

 

priority(log level)日志的级别,一般有以下几种级别(从低到高)

  debug           # 程序或系统的调试信息 
    info            # 一般信息
    notice          # 不影响正常功能,需要注意的消息 
    warning/warn    # 可能影响系统功能,需要提醒用户的重要事件 
    err/error       # 错误信息 
    crit            # 比较严重的 
    alert           # 必须马上处理的 
    emerg/panic     # 会导致系统不可用的 
    *               # 表示所有的日志级别 
    none            # 跟* 相反,表示啥也没有

 

action(动作)日志记录的位置

 

系统上的绝对路径    # 普通文件 如: /var/log/xxx 
    |                   # 管道  通过管道送给其他的命令处理 
    终端              # 终端   如:/dev/console 
    @HOST               # 远程主机 如: @10.0.0.1      
    用户              # 系统用户 如: root 
    *                   # 登录到系统上的所有用户,一般emerg级别的日志是这样定义的

 

定义格式例子:

mail.info   /var/log/mail.log # 表示将mail相关的,级别为info及 
                              # info以上级别的信息记录到/var/log/mail.log文件中 
auth.=info  @10.0.0.1         # 表示将auth相关的,基本为info的信息记录到10.0.0.1主机上去 
                              # 前提是10.0.0.1要能接收其他主机发来的日志信息 
user.!=error                  # 表示记录user相关的,不包括error级别的信息 
user.!error                   # 与user.error相反 
*.info                        # 表示记录所有的日志信息的info级别 
mail.*                        # 表示记录mail相关的所有级别的信息 
*.*                           # 你懂的. 
cron.info;mail.info           # 多个日志来源可以用";" 隔开 
cron,mail.info                # 与cron.info;mail.info 是一个意思 
mail.*;mail.!=info            # 表示记录mail相关的所有级别的信息,但是不包括info级别的

 

 

日志的管理策略

 

 

一般化措施

 

重要日志做好备份/延长保存期限
控制日志的访问权限

 

集中管理日志

 

方便消息的统一收集、整理和分析
避免日志的意外丢失、防恶意篡改记录

 

 

logrotate日志轮转

 

logrotate轮转

 

减小日志大小,降低分析难度
丢弃过期日志节省空间
结合cron每天执行

 

软件包

logrotate

 

主配置文件/etc/logrotate.conf(daily, weekly, monthly, or yearly)

  weekly      轮转频率,默认每周
    rotate 4      保留4个轮转备份
    create      执行轮转后创建新文件
    #compress      是否压缩日志
    dateext        以年月日时间取代后缀1 2 3 ...
    include /etc/logrotate.d          包含此目录下的配置
    /var/log/wtmp {          启用轮转的日志文件
            monthly          每月轮转一次
        missingok          丢失不提示
            notifempty         如果为空则不轮转
            minsize 1M          日志达到1MB才开始轮转
            create 0664 root utmp      建新文件并设权限
            rotate 1          只保留一个备份
        }    

 

轮询完会生成一个空的message文件

如何轮询:

1.假如以星期为轮询周期。如果系统有一个message文件,过了一周后会生成一个空的message文件和message1(原来的message),第二周就会生成message2文件(message1改为message2),依次类推

 

 

logrotate    手工执行轮转

-v    启动显示模式
    -f    强制rotate

 

 

/var/lib/logrotate.status

** size生效的话,会忽略轮转频率
    ** 轮转频率生效的话,会忽略size
    ** 配置的顺序:后生效的会覆盖之前的语句

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!