4-9 Linux 中的日志分析

4-9 Linux 中的日志分析,第1张

日志系统、软件 和 用户 *** 作交互信息的记录文件。用于系统审核,日常故障快速定位和排错。

日志文件保存在 /var/log 和 /var/run 目录下。在 RedHat 7 中,系统日志消息由两个服务负责处理,它们是 systemd-journald 和 rsyslogd。

日志的保存时间系统默认是4周,可以通过 cat /etc/logrotate.conf 里面的一项参数查到。rotate 可以修改。

主要日志文件介绍:

/var/log/messages:系统日志,主要记录内核和公共消息。

/var/log/cron:计划执行任务日志。

/var/log/dmesg:系统引导日志。

/var/log/maillog:邮件日志。

/var/log/lastlog:用户登录日志。(用 lastlog 命令)

/var/log/boot.log:系统启动日志。

/var/log/secure:安全和身份验证日志 。

/var/log/wtmp:记录所有用户登录的详细信息。(用 last 命令)

/var/log/btmp:记录失败的登录记录(用 lastb 命令)

/var/run/utmp:用户登录、注销及系统开、关等事件。(用 w / who 命令)

(wtmp、btmp 和 utmp 是二进制文件,不能用cat、vi、tail、more这些命令打开查看)

1、/var/log/messages:系统日志,主要记录内核和公共消息。

1)、messages 信息项包括:事件发生的日期和时间、主机,终端名、进程 和 事件日志。

2)、红色下划线:systemctl restart sshd 重启 sshd 服务。

黄色下划线:tail /var/log/messages 查看 messages 日志。

蓝色方框:messages 日志已经可以查到重启 sshd 服务的记录。

绿色下划线:每个动作都记录得很清楚。暂停中(Stopping)、已暂停(Stopped)、启动中(Starting) 和 已启动(Started)

2、/var/log/cron:计划执行任务日志。

1)、cron 信息项包括:事件发生的日期和时间、主机,终端名、进程 和 事件日志。

2)、cron 保存的是计划任务的日志,我们也可以通过特定输出查看计划进程的一些规律。从中也可以梳理一下计划任务的概念。好像 run-parts(/etc/cron.hourly) 进程,基本都是从开机开始,整点 1 个小时就执行一次。一次由两个事件为一组,一条 starting 0anacron ,另一条 finished 0anacron。

输入 grep run-parts'('/etc/cron.hourly')' 的时候,()括号需要用单引号引起来。 

CROND进程,基本上也是从开机开始,整点 1 个小时就执行一次。

run-parts(/etc/cron.daily) 进程每天开机执行一次。一次由四个事件为一组,四个事件里面有两个事件是对应关系。starting man-db.cron 对应 finished man-db.cron,starting logrotate 对应 finished logrotate。

从 cron 日志知道系统的计划任务什么时候触发,执行了什么事件,产生了什么信息。 

3、/var/log/dmesg:系统引导日志,显示硬件相关的信息。

head -20 dmesg | nl 列出开头 20 行信息。

4、/var/log/maillog:邮件日志。

红色下划线:tail maillog 查看 maillog 后 10 行信息。

黄色下划线:starting the Postfix mail system 启动 Postfix 邮件系统。daemon started 守护进程启动完成。

maillog 记录的信息都是和邮件有关。

5、/var/log/lastlog:记录所有用户登录最后一次登录本系统的时间信息。用 lastlog 读取信息。lastlog 的几列内容:Username(用户名)、Port(端口)、From(登录IP)、Latest(最后登录时间)。

系统用户是调用系统当中一些特殊服务的用户,不能登录系统(所以它们的登录状态都是显示“**Never logged in**”从来没有登录)。能够登录系统的只有 root 和 新建的普通用户。

6、/var/log/boot.log:系统启动日志。

head /var/log/boot.log 列出头 10 条系统启动的信息(内容较长,里面记录了多次启动的信息)。

通过 3 次的重启,查看 boot.log 大小。每重启一次文件的容量就会增大。也证明了每次启动都会往 boot.log 这个文件写信息。

7、/var/log/secure:安全和身份验证日志 。

tail secure 列出 secure 文件最后 10 行信息。通过 secure 的信息可以发现记录的是安全相关的信息,记录最多的是哪些用户登录服务器的相关日志。

黄色下划线:Failed password for root —— root 的密码错误。

红色下划线:Accepted password for root —— 密码正确,root 用户接受的密码。

绿色下划线:pam_unix(sshd:session): session opened for user root  —— 为 root 用户建立会话。

8、/var/log/wtmp:记录所有用户登录的详细信息。一个二进制文件,不能用cat、vi、tail、more这些命令打开查看。用 last 命令查看。last 作用是显示近期用户或终端登录的情况(包括:登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加,该文件的大小也会越来越大,)

last -n 10 —— -n 跟一个数字,指定显示最近登录的数据。(或者 last -10 一样效果)

显示的内容有六列:

第一列:用户名。

第二列:终端位置。(pts/0 伪终端,SSH 或 telnet 等工具远程连接的用户,tty0 直接连接到计算机或本地连接的用户,后面的数字代表连接编号)。

第三列:登录 IP 或 内核。(如果是 0.0 或者 什么都没有,意味着用户通过本地终端连接,除了启动活动,内核版本会显示在状态中)。

第四列:开始时间。

第五列:结束时间。(still、login in 尚未推出,down 直到正常关机,crash 直到强制关机)。

第六列:持续时间。

9、/var/log/btmp:记录失败的登录记录,主要查看错误的登录信息。一个二进制文件,不能用cat、vi、tail、more这些命令打开查看。用 lastb 命令查看。

lastb -n 10 —— -n 跟一个数字,指定显示最近登录的数据。(或者 lastb -10 一样效果)

显示的内容有六列:

第一列:用户名。

第二列:终端位置。(连接失败:notty)。

第三列:登录 IP。

第四列:开始时间。

第五列:结束时间。

第六列:持续时间。

10、/var/run/utmp:用户登录、注销及系统开、关等事件。一个二进制文件,不能用cat、vi、tail、more这些命令打开查看。用 w / who 命令查看。

w 命令:查看登录者的信息及行为。

第一行:系统当前时间、系统没有中断持续性的运行时间、当前登录用户数、CPU在之前 1 分钟、5分钟、15分钟的平均负载。

USER: 登录用户名。

TTY:登录后系统分配的终端号。(tty:物理机本机终端、pts:远程终端) 

 FROM:远程主机名 IP。(tty 物理机本机不显示、pts 远程终端会显示 IP) 

 LOGIN@ :登录时间。

 IDLE:用户闲置时间 。这是个计时器,用户执行任何 *** 作,计时器就会被重置。(这里显示的时间是距离上次命令 *** 作后多久没有进行 *** 作的闲置时间)

 JCPU:执行命令进程所消耗的总时间。 终端连接的所有进程占用时间,包括当前正在运行作业占用的时间。

 PCPU:当前进程所消耗 CPU 的时间。 

WHAT:用户正在运行的进程 或 命令。(-bash 进程是终端进程)

who 命令:显示关于当前在本地系统上的所有用户信息。who 和 w 差不多,who 显示的内容更为简洁。who 命令显示以下内容:登录名、tty、登录日期 和 时间。如果用户是从远程终端登录的,那么该终端的 IP 也会显示出来。

11、whoami:显示自己的登录用户。

1. 前言

在Linux日常管理中,我们肯定有查看某些服务的日志需求,或者是系统本身的日志。本文主要介绍如何查看Linux的系统日志,包括文件的路径、工具的使用等等。会看Linux日志是非常重要的,不仅在日常 *** 作中可以迅速排错,也可以快速的定位。

2. 如何查看Linux日志

Linux日志文件的路径一般位于,/var/log/,比如ngix的日志路径为/var/log/nginx/,如果要查看某服务的日志,还可以使用systemctl status xxx,比如查看ssh服务的壮态,systemctl status sshd

查看Linux某服务的日志

Liunx的配置文件在/etc/rsyslog.d里,可以看到如下信息

在linux系统当中,有三个主要的日志子系统:

1、连接时间日志:由多个程序执行,把记录写入到/var/log/wtmp和/var/run/utmp,

login等程序会更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。

2、进程统计:由系统内核执行,当一个进程终止时,为每个进程往进程统计文件中写一个记录。进程统计的目的是为系统中的基本服务提供命令使用统计

3、错误日志:由rsyslogd守护程序执行,各种系统守护进程、用户程序和内核通过rsyslogd守护程序向文件/var/log/messages报告值得注意的时间。另外有许多linux程序创建日志,像HTTP和FTP这样提供的服务器也保持详细的日志。

4、其他日志……

查看Linux日志默认路径

可以看到在/var/log目录下存在很多的日志文件,接下来就对里面的一些常用日志文件进行分析

主要日志文件介绍:

内核及公共消息日志:/var/log/messages

计划任务日志:/var/log/cron

系统引导日志:/var/log/dmesg

邮件系统日志:/var/log/maillog

用户登录日志:/var/log/lastlog

/var/log/boot.log(记录系统在引导过程中发生的时间)

/var/log/secure (用户验证相关的安全性事件)

/var/log/wtmp(当前登录用户详细信息)

/var/log/btmp(记录失败的的记录)

/var/run/utmp(用户登录、注销及系统开、关等事件)

日志文件详细介绍:

/var/log/secure

Linux系统安全日志,记录用户和工作组的情况、用户登陆认证情况

例子:我创建了一个zcwyou的用户,然后改变了该用户的密码,于是该信息就被记录到该日志下

Linux系统安全日志默认路径

该日志就详细的记录了我 *** 作的过程。

内核及公共信息日志,是许多进程日志文件的汇总,从该文件中可以看出系统任何变化

查看Linux内核及公共信息日志

系统引导日志

该日志使用dmesg命令快速查看最后一次系统引导的引导日志

查看Linux系统系统引导日志

最近的用户登录事件,一般记录最后一次的登录事件

该日志不能用诸如cat、tail等查看,因为该日志里面是二进制文件,可以用lastlog命令查看,它根据UID排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示 Never logged。

该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。该日志为二进制文件,不能用诸如tail/cat/等命令,使用last命令查看。

记录邮件的收发

此文件是记录错误登录的日志,可以记录有人使用暴力破解ssh服务的日志。该文件用lastb打开

该日志记录当前用户登录的情况,不会永久保存记录。可以用who/w命令来查看

3. 常用的日志分析工具与使用方法

3.1 统计一个文本中包含字符个数

3.2 查看当天访问排行前10的url

3.3 查看apache的进程数

3.4 访问量前10的IP

cut部分表示取第1列即IP列,取第4列则为URL的访问量

3.5 查看最耗时的页面

按第2列响应时间逆序排序

3.6 使用grep查找文件中指定字符出现的次数

-o 指示grep显示所有匹配的地方,并且每一个匹配单独一行输出。这样只要统计输出的行数就可以知道这个字符出现的次数了。

4. 总结

查看Linux日志需求了解和熟悉使用一些常用的工具方能提升我们的查找和定位效率。比如使用 Grep 搜索,使用Tail命令,使用Cut,使用AWK 和 Grok 解析日志和使用 Rsyslog 和 AWK 过滤等等,只要能掌握这些工具。我们才能高效地处理和定位故障点。

https://www.linuxrumen.com/rmxx/647.html


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8897138.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-22
下一篇 2023-04-22

发表评论

登录后才能评论

评论列表(0条)

保存