Linux系统日志怎么查看

Linux系统日志怎么查看,第1张

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

    根据笔者上一篇文章—Linux系统上记录用户 *** 作的审计日志 。本文来利用相同的方法记录MYSQL *** 作的审计日志。

    使用用mysql工具连接MySQL server的所有 *** 作会默认记录到~/.mysql_history文件中,这个文件会把所有 *** 作记录下来,包括创建用户和修改用户的明文密码,这在生产系统上是不安全的。如果不想保存,仅仅删除是不行的(文件不存在会再建立),要直接将其软连接到垃圾箱。

     ln  -s  /dev/null  ~/.mysql_history

    利用上一篇文章相同的方法记录MYSQL *** 作的审计日志,是因为mysql工具本身就是有一个shell, 每次mysql连接退出后,都会把此次 *** 作的信息记录到~/.mysql_history文件中。那么可以重新定义MYSQL_HISTFILE环境变量来保存mysql日志。

    先看置于/etc/profile.d目录下的环境变量的脚本mysql_history.sh,和loginlog类似。

      在测试时,发现平时使用的普通用户在 *** 作mysql后无法记录,而root用户(平时没有 *** 作过mysql)可以记录成功。后来在在~/.mysql_history文件找到了 *** 作记录,估计是这个文件还存在的原因,删除后才记录到新的MYSQL_HISTFILE定义的路径。

      和loginlog一样,需要定期删除过期日志,以下脚本置于/etc/cron.weekly 目录下。

        delete_time=15

        find /opt/mysqllog/  -mtime +$delete_time -name '*.log' -exec rm -r {} \

      但是相比于loginlog,mysqllog有两点暂时没有解决。

    1、定义最大的记录条数history.maxSize不知在哪定义,my.cnf?

    2、每一条命令的时间记录添加。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存