0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

解析Linux系统日志

阿铭linux 来源:阿铭linux 作者:阿铭linux 2023-01-05 09:41 次阅读

日志记录了系统每天发生的各种各样的事情,比如监测系统状况、排查系统故障等。你可以通过日志来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。日志的主要功能是审计和监测,还可以实时地监测系统状态,监测和追踪侵入者等。
在RockyLinux8系统里,以下几个日志默认是不存在的,需要安装rsyslog包,命令如下:

yuminstall-yrsyslog
systemctlstartsyslog
systemctl enable syslog
14.8.1/var/log/messages
阿铭常查看的日志文件为/var/log/messages,它是核心系统日志文件,包含了系统启动时的引导消息,以及系统运行时的其他状态消息。I/O错误、网络错误和其他系统错误都会记录到这个文件中。其他信息,比如某个人的身份切换为root,以及用户自定义安装的软件(如,Apache)的日志也会在这里列出。

通常情况下,/var/log/messages是做故障诊断时首先要查看的文件。那你肯定会说,这么多日志都记录到这个文件中,如果服务器上有很多服务,岂不是这个文件很快就会写得很大?没错,但是系统有一个日志轮询的机制,每星期切换一个日志,切换后的日志名字类似于messages-20200301,会存放在/var/log/目录下面,连同messages一共有5个这样的日志文件。这里的20200301就是日期,它表示日志切割的年月日。这是通过logrotate工具的控制来实现的,它的配置文件是/etc/logrotate.conf(如果没有特殊需求,请不要修改这个配置文件)。
# cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# use date as a suffix of the rotated file
dateext
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# system-specific logs may be also be configured here.
这个配置文件里面的内容还是很容易明白的,都带有解释。除了logrotate.conf外,在/etc/logrotate.d/下面还有一些子配置文件。
# ls /etc/logrotate.d
bootlog btmp  chrony  dnf  sssd  syslog  up2date  wtmp.
# cat /etc/logrotate.d/syslog 
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
missingok
sharedscripts
postrotate
/usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true
endscript
}
其中syslog就是messages日志相关的配置文件了。/var/log/messages是由rsyslogd这个守护进程产生的,其服务为rsyslog.service,如果停止这个服务则系统不会产生/var/log/messages,所以这个服务不要停止。rsyslog服务的配置文件为/etc/rsyslog.conf,这个文件定义了日志的级别。若没有特殊需求,这个配置文件是不需要修改的,详细内容阿铭不再阐述。如果你感兴趣,请使用命令man rsyslog.conf获得更多关于它的信息。
14.8.2dmesg
除了关注/var/log/messages外,你还应该多关注一下dmesg这个命令,它可以显示硬件(如,磁盘、网卡等)相关信息。如果你的某个硬件有问题(比如网卡),用这个命令也是可以看到的:
# dmesg |tail 
[ 8.671924] RAPL PMU: hw unit of domain pp0-core 2^-0 Joules
[ 8.671925] RAPL PMU: hw unit of domain package 2^-0 Joules
[ 8.671926] RAPL PMU: hw unit of domain dram 2^-0 Joules
[ 8.671927] RAPL PMU: hw unit of domain pp1-gpu 2^-0 Joules
[ 10.555690] NET: Registered protocol family 40
[ 14.545496] IPv6: ADDRCONF(NETDEV_UP): ens33: link is not ready
[ 14.551791] e1000: ens33 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
[ 14.557466] IPv6: ADDRCONF(NETDEV_UP): ens33: link is not ready
[ 14.557477] IPv6: ADDRCONF(NETDEV_CHANGE): ens33: link becomes ready
[ 4202.922934] hrtimer: interrupt took 19983639 ns
14.8.3安全日志
关于安全方面的日志,阿铭简单介绍几个命令或者日志。

last命令用来查看登录Linux的历史信息,具体用法如下:
# last |head
root pts/1        192.168.72.128   Fri Jun 26 17:41   still logged in
root pts/0        192.168.72.1     Fri Jun 26 15:46   still logged in
reboot system boot  4.18.0-147.3.1.e Fri Jun 26 15:41   still running
root pts/3        192.168.72.1     Fri Jun 26 15:33 - 15:40  (00:06)
root pts/2        192.168.72.1     Fri Jun 26 15:30 - 15:40  (00:10)
root pts/0        192.168.72.1     Fri Jun 26 15:13 - 15:40  (00:27)
root pts/2        192.168.72.1     Fri Jun 26 15:07 - 15:13  (00:05)
root pts/1        192.168.72.1     Fri Jun 26 09:39 - 15:40  (06:01)
root pts/0        192.168.120.106  Fri Jun 26 08:54 - 15:08  (06:14)
root tty1                          Fri Jun 26 08:33 - 15:40  (07:07)
上例中,从左至右依次为账户名称、登录终端、登录客户端IP、登录日期及时长。last命令输出的信息实际上是读取了二进制日志文件/var/log/wtmp,只是这个文件不能直接使用cat、Vim、head、tail等工具查看。 另外/var/log/secure也是和登录信息有关的日志文件。该日志文件记录验证和授权等方面的信息,比如ssh登录系统成功或者失败时,相关的信息都会记录在这个日志里。

最后,阿铭建议你以后在日常的管理工作中,要养成多看日志的习惯,尤其是一些应用软件的日志。比如Nginx、MySQL、Redis(后续内容会讲到)等常用的软件,看它们的错误日志,可以帮助你排查问题以及监控它们的运行状况是否良好。

14.8.4journal日志

如果不安装rsyslog包,系统就没有/var/log/messages日志,那系统有问题我们怎么看日志呢?可以通过jounalctl来查看:
jounalctl
常用选项有:

-n 后面跟数字,比如5,查看最后5行


-e 查看最后的日志


-x 增加注释


-o 设置日志格式,比如-o json,-o export,-o short


-p 设置日志级别,emerg、alert、crit、err、warning、notice、info、debug



-f 动态查看



-u 指定unit,比如-u chrony


-r 倒序查看


-k 只看内核相关

具体示例,如下:

查看sshd服务日志

journalctl -u sshd

2. 查看系统内核日志

journalctl -k

3.动态查看sshd服务日志

journalctl -u sshd -f

4.直接打印全部,不让它分页

journalctl --no-page

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10991

    浏览量

    206736
  • 命令
    +关注

    关注

    5

    文章

    638

    浏览量

    21849
  • 日志
    +关注

    关注

    0

    文章

    126

    浏览量

    10525

原文标题:Linux系统日志

文章出处:【微信号:aming_linux,微信公众号:阿铭linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    关于linux系统日志文件的学习与理解

    日志文件是用于记录系统操作时间的记录文件或文件集合。操作系统最近学习了有关linux系统日志的相
    发表于 10-25 15:06

    Linux系统日志的默认分类

    1.系统日志默认分类日志监控可以使用命令 tail -f /var/log/logname/var/log/messages##系统服务及日志
    发表于 07-05 08:20

    linux系统日志怎么查看

    我们首先要明白,日志是程序本身产生的,那么日志储存在哪里,该如何查看呢?
    发表于 07-15 06:21

    崩溃日志快速解析方法

    iOS快速解析崩溃日志
    发表于 10-09 14:13

    企业级的LInux系统日志管理

    企业级LInux系统日志管理
    发表于 05-29 11:33

    Linux系统日志的管理

    Linux-系统日志
    发表于 06-04 17:24

    Linux日志系统Journald

      Toradex从V2.0 Linux BSP 开始,使用Journald作为默认的日志管理系统。下面将基于Toradex Colibri iMX6DL ARM嵌入式平台介绍Journald的基本使用方法,这个平台是基于NXP
    发表于 09-18 09:36 5次下载

    Linux日志文件系统解析

    在近代历史上,日志文件系统被认为十分奇特,主要是处于研究阶段。而如今,日志文件系统(ext3)已经成为 Linux的缺省文件
    发表于 11-01 15:23 0次下载
    <b class='flag-5'>Linux</b><b class='flag-5'>日志</b>文件<b class='flag-5'>系统</b><b class='flag-5'>解析</b>

    linux系统日志在哪里

    Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息。日志文件的默认路径是:/var/log下面是几个重要的
    发表于 11-03 12:25 3255次阅读
    <b class='flag-5'>linux</b><b class='flag-5'>系统</b><b class='flag-5'>日志</b>在哪里

    基于机器学习的日志解析系统设计与实现

    针对现有日志分类方法只适用于格式化的日志,且性能依赖于日志结构的问题,基于机器学习方法对日志信息解析算法LogSig进行了扩展改进,并设计开
    发表于 03-29 15:33 4次下载

    你了解过Linux日志文件系统

    最早的日志文件系统是 IBM® Journaled File System(JFS)。JFS 于 1990 年首次发行,而当前 Linux 支持的版本是后期开发的 JFS2。1994 年,Silicon Graphics 为 I
    发表于 04-29 16:59 3823次阅读
    你了解过<b class='flag-5'>Linux</b><b class='flag-5'>日志</b>文件<b class='flag-5'>系统</b>?

    Linux系统日志文件中的JFS文件系统

    嵌入式linux中文站向大家介绍一下JFS文件系统Linux系统日志文件中的JFS系统, JF
    发表于 05-05 14:10 4743次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>系统</b><b class='flag-5'>日志</b>文件中的JFS文件<b class='flag-5'>系统</b>

    学会用日志了解你的 Linux 系统

    Linux 系统日志非常重要,后台运行的程序(通常被称为守护进程或者服务进程)处理了你 Linux 系统中的大部分任务。
    发表于 05-06 16:39 622次阅读

    嵌入式linux设备中应用运行日志的实现

    嵌入式linux设备中应用运行日志的实现      最近在做一个项目时,需要记录设备运行中情况,以方便对故障进行跟踪定位,完善.所以决定采用记录程序运行日志,经过在网上搜索,采用
    发表于 11-01 17:22 8次下载
    嵌入式<b class='flag-5'>linux</b>设备中应用运行<b class='flag-5'>日志</b>的实现

    如何使用journalctl来读取、监控和分析Linux中的日志

    Systemd是大多数主要Linux发行版的默认的初始化程序。Systemd的主要功能之一收集日志以及为分析日志提供工具。
    的头像 发表于 12-23 16:44 3455次阅读