• Linux基础——log文件分析


    log文件是什么?

    log文件是记录系统活动信息的几个文件,通过它可以帮助快速定位问题,常见的有

    路径/var/log/下用途
    boot.log记录开机过程
    cron记录crontab定时任务
    dmesg记录开机时核心监测过程中所产生的信息
    lastlog记录用户上一次登陆的信息
    maillog或mail记录邮件来往信息
    messages记录系统错误信息
    secure记录登陆信息
    wtmp / faillog记录 正确 / 错误 登陆时的账号信息

    log文件的记录——rsyslog.service

    服务rsyslog.service用于记录上述的log文件,而其daemon为rsyslogd,配置文件为 /etc/rsyslog.conf

    在这里插入图片描述

    如上格式为 服务名称.[=!]信息等级 记录位置,如cron的所有等级信息都记录到/var/log/cron.log

    服务名称

    rsyslogd通过syslog内的规定来对资料分类,常见的有

    服务类别说明
    kernelkernel产生的信息
    user用户产生的信息
    mail邮件有关的信息
    daemon系统服务产生的信息
    auth认证授权有关的信息
    syslogsyslogd程序产生的信息

    信息等级

    等级从小到大为none、debug、info、notice、warning、error、crit、alert、emerg(panic)

    服务名称和信息等级的连接符号有 . .= .! ,表示大于/等级/小于(包含)该等级的信息会被记录

    记录位置

    这里的记录位置不仅仅是系统内的文件,还可以是设备(打印机)、用户、远程主机

    log文件的更替

    log文件如果一直增加则会越来越大,而有些陈旧的信息也未必还有用,所以需要定期清理和更替log

    logrotate配置文件

    程序 logrotate 用于对log更替,原理是将旧的log文件移动,并建立一个新的空的文件记录log

    在这里插入图片描述

    如上,文件 /etc/logrotate.conf 是 logrotate 的配置文件,上面表示每周创建空文件更替一次,共保留4个被更替旧文件

    在这里插入图片描述

    /etc/logrotate.conf是默认的更替规则,如上还可对指定文件自定义规则,但未避免/etc/logrotate.conf内容过多,额外有/etc/logrotate.d 放置自定义规则

    在这里插入图片描述

    可通过如下方式在更替前后加入命令

    sharedscripts
    prerotate
        command
    endscript
    sharedscripts
    postrotate
    	command
    endscript
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    如log文件已设置chattr +a避免其被修改或删除,需要在更替前chattr -a,更替后chattr +a

    logrotate

    命令 logrotate [-vf] /etc/logrotate.conf加上参数 -f 可直接进行更替,-v 启动预览模式,会显示更替过程(可查看是否需要更替)

    在这里插入图片描述

    如上是未执行时的时间,执行完 logrotate -f /etc/logrotate.conf后如下,可看到文件已被更替

    在这里插入图片描述

    log文件的记录——systemd-journald.service

    rsyslog.service在开机后启动并记录log,开机过程中的log则由journald.service记录,其记录在内存中

    换句话说journald管理和查询这次开机后的log(一次性的),而rsyslog则记录以前及现在的log(永久的)

    journalctl

    命令 journalctl 用于查询systemd-journald.service的资料,不加参数从旧到新列出,-n列出最近几行,-r从新到旧列出,-p按信息等级排序,-f持续显示,–since/–until设置开始/结束时间
    在这里插入图片描述
    如上列出今天的log,journald.service存在于内存(/run/log),若要让其存储到文件,则应该新建/var/log/journal目录

    logger

    命令 logger [-p service.level] msg 可将资料存储到log文件中
    在这里插入图片描述
    如上,将信息以info等级存储到user的log文件

    分析log

    logwatch

    软件 logwatch 是用于分析log的工具,会每天分析一次log文件,并将资料以email的形式发送给root
    在这里插入图片描述
    如上,安装完后会在cron.daily下,运行后将会收到邮件

  • 相关阅读:
    Docker安装部署RabbitMq
    OpenCV之分水岭算法(watershed)
    Real-ESRGAN—图像/视频修复算法
    【Element-UI】CUD(增删改)及form 表单验证(附源码)
    剑指 Offer 30. 包含min函数的栈C++(详解)
    Halcon WPF 开发学习笔记(3):WPF+Halcon初步开发
    OpenGL 函数列表
    网络安全等级保护2.0自查表 | 管理部分
    【数据挖掘】4. 打散(Shattering) VC维数 基于VC维数和Margin的泛化定理
    proteus 器件名称被软件篡改bug的解决方案
  • 原文地址:https://blog.csdn.net/qq_35258036/article/details/126072704