您的位置:首页 > 运维架构 > Linux

Linux系统日志

2020-01-15 12:04 447 查看

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系统安全日志默认路径

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

[root@zcwyou ~]# cat /var/log/messages

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

 

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

[root@zcwyou ~]# cat /var/log/dmesg

系统引导日志

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

 

查看Linux系统系统引导日志

/var/log/lastlog

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

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

last /var/log/wtmp

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

/var/log/mailog

记录邮件的收发

/var/log/btmp

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

/var/log/utmp

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

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

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

[root@zcwyou ~]# cat access.log |grep /2012/ |wc -l
[root@zcwyou ~]# cat access.log |grep "/message/publishmsg/\|/message/publish/" >test1.log

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

oucanrong@zcwyou:/var/log/nginx$ cat access.log | grep “10/Dec/2010″ | awk '{print $7}' | sort | uniq -c | sort -nr | head -n 10

3.3 查看apache的进程数

[root@zcwyou ~]# ps -aux | grep httpd | wc -l

3.4 访问量前10的IP

[root@zcwyou ~]# cat access.log | cut -f1 -d " " | sort | uniq -c |sort -k 1 -n -r | head -10

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

3.5 查看最耗时的页面

[root@zcwyou ~]# cat access.log | sort -k 2 -n -r | head -10

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

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

[root@zcwyou ~]# grep -o '目标' test.txt | wc -l

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

4. 总结

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

  • 点赞
  • 收藏
  • 分享
  • 文章举报
小志1989 发布了38 篇原创文章 · 获赞 3 · 访问量 844 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: