• Linux基础-日志管理


    ‍‍🏡博客主页:  Passerby_Wang的博客_CSDN博客-系统运维,云计算,Linux基础领域博主

    🌐所属专栏:『Linux基础

    🌌上期文章: Linux基础-网络配置

    📰如觉得博主文章写的不错或对你有所帮助的话,还望大家多多支持呀! 关注、点赞、收藏、评论。

    目录

    一、概述

    二、内核及系统日志

    1、日志文件

    2、实例

    1)/var/log/messages

    2)/var/log/dmesg

    3)/var/log/cron

    4)/var/log/maillog

    5)/var/log/secure

    三、用户日志

    1、日志文件

    2、实例

    1)/var/log/lastlog

    2)/var/log/wtmp

    3)/var/log/btmp

    4)/var/run/utmp

    四、日志分析

    1、查看日志消息

    1)通用分析工具

    2)专用分析工具

    2、用户登录分析

    1)users、who、w命令

    2)last、lastb 命令

    五、日志消息的优先级

    1、Linux内核定义的事件紧急程度

    2、实例

    六、日志管理工具journalctl

    1、介绍

    2、常见用法

    3、实例


    一、概述

            日志:用于记录系统操作事件的文件,可以理解为系统和程序的“日记本”,记录系统、程序运行中发生的各种事件。可以通过查看日志,了解及排除故障,也是信息安全控制的依据。

    二、内核及系统日志

            内核及系统日志由系统服务rsyslog统一记录,rsyslog是linux系统中用来实现日志功能的服务。默认已经安装,并且自动启用。主要用于采集日志。日志消息采用文本格式,主要记录事件发生的时间、主机、进程、内容等信息。

    1、日志文件

    日志文件

    主要用途

    /var/log/messages

    记录内核消息、各种服务的公共消息

    /var/log/dmesg

    记录系统启动过程的各种消息

    /var/log/cron

    记录与cron计划任务相关的消息

    /var/log/maillog

    记录邮件收发相关的消息

    /var/log/secure

    记录与访问限制相关的安全消息

    2、实例

    1)/var/log/messages

    1. [root@wangwu ~]# tail /var/log/messages
    2. Sep  8 11:00:01 wangwu systemd: Starting Session 86 of user root.
    3. Sep  8 11:01:01 wangwu systemd: Started Session 87 of user root.
    4. ... ... ...

    2)/var/log/dmesg

    1. [root@wangwu ~]# tailf /var/log/dmesg
    2. [   11.298470] work still pending
    3. [   11.791755] RPC: Registered named UNIX socket transport module.
    4. ... ... ...

    3)/var/log/cron

    1. [root@wangwu ~]# grep wangwu /var/log/cron
    2. Sep  8 11:12:31 wangwu run-parts(/etc/cron.daily)[23883]: finished mlocate
    3. Sep  8 11:12:31 wangwu anacron[19619]: Job `cron.daily' terminated
    4. ... ... ...

    4)/var/log/maillog

    1. [root@wangwu ~]# tail /var/log/maillog
    2. Aug 30 11:30:12 wangwu postfix/pickup[1387]: B4E004185177: uid=0 from=
    3. Aug 30 11:30:14 wangwu postfix/qmgr[1388]: 82D854185177: removed
    4. ... ... ...
    5. (END)

    5)/var/log/secure

    1. [root@wangwu ~]# tail /var/log/secure
    2. Sep  8 11:12:57 wangwu unix_chkpwd[24051]: password check failed for user (root)
    3. Sep  8 11:12:57 wangwu gdm-password]: pam_unix(gdm-password:auth): authentication failure; logname= uid=0 euid=0 tty=/dev/tty1 ruser= rhost=  user=root
    4. ... ... ...

    三、用户日志

            用户日志由登录程序负责记录,日志消息采用二进制格式,记录登录用户的时间、来源、执行的命令等信息。

    1、日志文件

    日志文件

    主要用途

    /var/log/lastlog

    记录最近的用户登录事件

    /var/log/wtmp

    记录成功的用户登录/注销事件

    /var/log/btmp

    记录失败的用户登录事件

    /var/run/utmp

    记录当前登录的每个用户的相关信息

    2、实例

    1)/var/log/lastlog

    1. [root@wangwu ~]# lastlog -u root
    2. Username         Port     From             Latest
    3. root             pts/0    192.168.6.168    Thu Sep  8 10:57:54 +0800 2022
    4. ... ... ...
    5. #/var/log/lastlog是二进制文件,需要用lastlog命令查询

    2)/var/log/wtmp

    1. [root@wangwu ~]# last -f /var/log/wtmp
    2. root     pts/0        192.168.6.168    Thu Sep  8 10:57   still logged in
    3. root     pts/0        192.168.6.168    Wed Aug 31 14:51 - 15:11  (00:19)
    4. ... ... ...
    5. #/var/log/wtmp是二进制文件,需要用last命令查询,-f 指定文件

    3)/var/log/btmp

    1. [root@wangwu ~]# lastb
    2. zhaoliu   :0           :0               Thu Sep  8 11:50 - 11:50  (00:00)
    3. wuba     :0           :0               Thu Sep  8 11:50 - 11:50  (00:00)
    4. ... ... ...
    5. #/var/log/btmp是二进制文件,需要用lastb命令查询

    4)/var/run/utmp

    1. [root@wangwu ~]# who
    2. root     pts/0        2022-09-08 10:57 (192.168.6.168)
    3. #/var/log/btmp是二进制文件,需要用who命令查询

    四、日志分析

    1、查看日志消息

    1)通用分析工具

    tail、tailf、less、grep等文本浏览/检索命令

    awk、sed等格式化过滤工具

    2)专用分析工具

    Webmin系统管理套件

    Webalizer、AWStats等日志统计套件

    2、用户登录分析

    1)users、who、w命令

    查看已登录的用户信息,详细度不同

    实例

    1. [root@wangwu ~]# users
    2. root
    1. [root@wangwu ~]# who
    2. root     pts/0        2022-09-08 10:57 (192.168.6.168)
    1. [root@wangwu ~]# w
    2.  13:40:23 up 12:30,  2 users,  load average: 0.00, 0.01, 0.05
    3. USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    4. root     pts/0    192.168.6.168    10:57    7.00s  0.29s  0.03s w

    2)last、lastb 命令

    查看最近登录成功/失败的用户信息

    实例

    1. [root@wangwu ~]# last -2 #最近两条登入记录
    2. root     pts/1        :0               Thu Sep  8 11:47 - 11:47  (00:00)
    3. root     pts/0        192.168.154.1    Thu Sep  8 10:57   still logged in
    1. [root@wangwu ~]# lastb -2 #最近两条登录失败记录
    2. zhaoliu   :0           :0               Thu Sep  8 11:50 - 11:50  (00:00)
    3. wuba    :0           :0               Thu Sep  8 11:50 - 11:50  (00:00)

    五、日志消息的优先级

    1、Linux内核定义的事件紧急程度

    分为0~7共8种优先级别,其数值越小,表示对应事件越紧急/重要

    优先级

    状态

    说明

    0

    EMERG(紧急)

    会导致主机系统不可用的情况

    1

    ALERT(警告)

    必须马上采取措施解决的问题

    2

    CRIT(严重)

    比较严重的情况

    3

    ERR(错误)

    运行出现错误

    4

    WARNING(提醒)

    可能会影响系统功能的事件

    5

    NOTICE(注意)

    不会影响系统但值得注意

    6

    INFO(信息)

    一般信息

    7

    DEBUG(调试)

    程序或系统调试信息等

    2、实例

    1. [root@wangwu ~]# man 2 syslog #用man查看帮助,2代表系统调用
    2. ... ... ...
    3. #define KERN_EMERG    "<0>"  /* system is unusable               */
    4. #define KERN_ALERT    "<1>"  /* action must be taken immediately */
    5. #define KERN_CRIT     "<2>"  /* critical conditions              */
    6. #define KERN_ERR      "<3>"  /* error conditions                 */
    7. #define KERN_WARNING  "<4>"  /* warning conditions               */
    8. #define KERN_NOTICE   "<5>"  /* normal but significant condition */
    9. #define KERN_INFO     "<6>"  /* informational                    */
    10. #define KERN_DEBUG    "<7>"  /* debug-level messages             */
    11. ... ... ...

    六、日志管理工具journalctl

    1、介绍

    journalctl工具提取由systemd-journal服务搜集的日志,主要包括内核/系统日志、服务日志。日志的配置文件位置:/etc/systemd/journald.conf

    2、常见用法

    Journalct | grep 关键词

    Journalct -r 反序输出(从新到旧)

    journalctl -k 查看内核日志(不显示应用日志)

    Journalctl -u服务名 (查看指定服务的日志信息)

    journalctl -n 消息条数(缺省默认10条)

    journalctl -f 日志文件 (实时输出最新条目)

    3、实例

    1. [root@wangwu ~]# systemctl start httpd #启动httpd服务
    2. [root@wangwu ~]# journalctl | grep httpd
    3. Sep 08 14:14:30 wangwu yum[90129]: Installed: httpd-tools-2.4.6-97.el7.centos.5.x86_64
    4. ... ... ...
    5. Sep 08 14:15:44 wangwu httpd[90899]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::e97a:8402:cb2c:8e3e. Set the 'ServerName' directive globally to suppress this message
    1. [root@wangwu ~]# journalctl -r | grep httpd
    2. Sep 08 14:15:44 wangwu httpd[90899]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::e97a:8402:cb2c:8e3e. Set the 'ServerName' directive globally to suppress this message
    3. ... ... ...
    4. Sep 08 14:14:30 wangwu yum[90129]: Installed: httpd-tools-2.4.6-97.el7.centos.5.x86_64
    1. [root@wangwu ~]# journalctl -k
    2. -- Logs begin at Tue 2022-08-30 11:28:46 CST, end at Thu 2022-09-08 14:30:02 CS
    3. Aug 30 11:28:46 wangwu kernel: Initializing cgroup subsys cpuset
    4. ... ... ...
    1. [root@wangwu ~]# journalctl -u httpd
    2. -- Logs begin at Tue 2022-08-30 11:28:46 CST, end at Thu 2022-09-08 14:41:37 CS
    3. Sep 08 14:15:28 wangwu systemd[1]: Starting The Apache HTTP Server...
    4. ... ... ...
    1. [root@wangwu ~]# journalctl -n 2
    2. -- Logs begin at Tue 2022-08-30 11:28:46 CST, end at Thu 2022-09-08 14:30:02 CS
    3. Sep 08 14:30:02 wangwu CROND[95764]: (root) CMD (/usr/lib64/sa/sa1 1 1)
    4. Sep 08 14:30:02 wangwu systemd[1]: Starting Session 111 of user root.
    5. lines 1-3/3 (END)
    1. [root@wangwu ~]# journalctl -f /usr/lib/systemd/systemd
    2. -- Logs begin at Tue 2022-08-30 11:28:46 CST. --
    3. Sep 08 14:15:28 wangwu systemd[1]: Starting The Apache HTTP Server...
    4. Sep 08 14:15:54 wangwu systemd[1]: Started The Apache HTTP Server.
    5. ... ... ...
  • 相关阅读:
    压测必经之路,Jmeter分布式压测教程
    【好书推荐】计算机考研精炼1000题——考研408不可或缺
    在安装pytorch过程中遇到mxnet安装问题
    宠物寄养小程序实战教程(上篇)
    6.1_4 Python3.x入门 P4 【基础】可变序列(列表list、字典dict、集合set)
    渗透测试-命令执行注入
    Android 接收微信、QQ其他应用打开,第三方分享
    Redis从基础到进阶篇(四)----性能调优、分布式锁与缓存问题
    博途PLC 1200PLC1500PLC 取消优化的块访问
    【大咖说Ⅶ】北大博导赵东岩:基于预训练模型的语义分析研究
  • 原文地址:https://blog.csdn.net/Passerby_Wang/article/details/126786059