Linux日志系统初探

1、Linux日志介绍

Linux日志文件包括以下三种类型

  • 内核及系统日志
    这种日志数据由系统服务syslog统一管理,根据其主配置文件/etc/syslog.conf中的设置决定将内核消息及各种系统程序消息记录到什么位置。系统中有相当一部分程序会把自己的日志文件交由syslog管理,因而这些程序使用的日志记录也具有相似的格式。

  • 用户日志
    这种日志数据用于记录Linux系统用户登录及退出系统的相关信息,包括用户名、登录的终端、登录时间、来源主机、正在使用的进程操作等。

  • 程序日志
    有些应用程序运会选择自己来独立管理一份日志文件(而不是交给syslog服务管理),用于记录本程序运行过程中的各种事件信息。由于这些程序只负责管理自己的日志文件,因此不同的程序所使用的日志记录格式可能会存在极大差异。

2、Linux常见日志文件

熟悉常用日志文件,当遇到问题时可以快速定位分析

/var/log/messages #记录Linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务,一般都可以从该文件获得相关的事件记录信息。
/var/log/cron #记录crond计划任务产生的事件消息。
/varlog/dmesg #记录Linux系统在引导过程中的各种事件信息。
/var/log/maillog #记录进入或发出系统的电子邮件活动。
/var/log/lastlog #最近几次成功登录事件和最后一次不成功登录事件。
/var/log/rpmpkgs #记录系统中安装各rpm包列表信息。
/var/log/secure #记录用户登录认证过程中的事件信息。
/var/log/wtmp #记录每个用户登录、注销及系统启动和停机事件。

3、常用命令与日志分析

last是一个命令行工具,它用来展示关于系统用户最后登录会话的信息。这个命令非常有用,尤其是当你需要追踪用户活动,或者调查一个可能的安全入侵问题。

 -<数字>              #显示最近的几行记录
 -a, --hostlast       #最后一列显示主机名
 -d, --dns            #将 IP 号转换回主机名
 -F, --file <文件>    #用指定文件代替 /var/log/wtmp
 -F, --fulltimes      #打印完整的登录和注销时间和日期
 -i, --ip             #以数字和点的形式显示 IP 号
 -n, --limit <数字>   #要显示的行数
 -R, --nohostname     #不显示主机名字段
 -s, --since <时间>   #显示从指定时间起的行;格式举例2021-11-11
 -t, --until <时间>   #显示到指定时间为止的行
 -p, --present <时间> #显示在指定时间谁在场(present)
 -w, --fullnames      #显示完整的用户名和域名
 -x, --system         #显示系统关机项和运行级别更改
     --time-format <格式>    #以指定<格式>显示时间戳:notime|short|full|iso

 -h, --help           #display this help
 -V, --version        #display version

lastlog此命令可以查看登陆过当前系统用户的最近一次登陆时间;默认是去读取 /var/log/lastlog 日志文件的,这个文件同样是二进制文件,不能直接用 vi 编辑,需要使用 lastlog 命令调用

-b, --before DAYS             #仅打印早于 DAYS 的最近登录记录
-C, --clear                   #clear lastlog record of an user (usable only with -u)
-h, --help                    #显示此帮助信息并推出
-R, --root CHROOT_DIR         #chroot 到的目录
-S, --set                     #set lastlog record to current time (usable only with -u)
-t, --time DAYS               #仅打印晚于 DAYS 的最近登录记录
-u, --user LOGIN              #打印 LOGIN 用户的近登录记录

headtail相关命令可参考https://blog.csdn.net/lemon_TT/article/details/114846900

4、Linux中的tty、pts、pty等概念辨析

  • tty(teletypes,终端设备的统称)

    tty设备包括虚拟控制台,串口以及伪终端设备。tty0~tty63是虚拟终端的设备特殊文件。/dev/tty0代表当前虚拟控制台,而/dev/tty1等代表第一个虚拟控制台。

  • pty(pseudo-tty,虚拟终端):pty全称pseudo-tty,即伪终端设备,用于远程连接。它由master和slave两端构成,在任何一端的输入都会传达到另一端。与tty不同,系统中并不存在pty这种文件,它是由pts(pseudo-terminal slave)和ptmx(pseudo-teiminal master)两种设备文件来实现的。

  • pts(pseudo-terminal slave)

    伪终端的slave端

  • ptmx(pseudo-terminal master)

    伪终端的master端

5、查看相关文件实例

​ 一般来说,是查看Linux查看/var/log/wtmp或者/var/log/lastlog文件查看可疑IP登陆,然后查看/var/log/secure文件寻找可疑IP登陆次数;对于系统问题,查看/var/log/messages

#取2020-11-11开始最近的十条登录事件
last -s 2020-11-11 -n 10
#查看各个用户的登录情况
lastlog
#查看secure文件的倒数100行
cat secure | tail -n 100
#查看当前设备数
ls /dev/pt*
#同一个用户开启多个终端,可以在不同终端打印
echo "hello" > /dev/pts/2
#可以查看进程是当前哪个终端连接
ps -aux | grep [进程名]

#-------安全相关--------
#如果发现自己服务器异常,要检查一下自己的.ssh/authorized_keys中是否异常,其次查看相应日志
#尝试IP和尝试的用户名
cat /var/log/auth.log | grep 'Invalid' | awk '{print $10 "\t" $8}' | sort
#用户名次数统计
cat /var/log/auth.log | grep 'Invalid' | awk '{print $8}' | sort | uniq -c | sort -bn

6、linux中log文件夹各个log文件内容

/var/log/messages #包括整体系统信息,其中也包含系统启动期间的日志。此外,mail,cron,daemon,kern和auth等内容也记录在var/log/messages日志中。
/var/log/dmesg # 包含内核缓冲信息(kernel ring buffer)。在系统启动时,会在屏幕上显示许多与硬件有关的信息。可以用dmesg查看它们。
/var/log/auth.log # 包含系统授权信息,包括用户登录和使用的权限机制等。
/var/log/boot.log # 包含系统启动时的日志。
/var/log/daemon.log # 包含各种系统后台守护进程日志信息。
/var/log/dpkg.log #包括安装或dpkg命令清除软件包的日志。
/var/log/kern.log #包含内核产生的日志,有助于在定制内核时解决问题。
/var/log/lastlog #记录所有用户的最近信息。这不是一个ASCII文件,因此需要用lastlog命令查看内容。
/var/log/maillog /var/log/mail.log #包含来着系统运行电子邮件服务器的日志信息。例如,sendmail日志信息就全部送到这个文件中。
/var/log/user.log #记录所有等级用户信息的日志。
/var/log/Xorg.x.log #来自X的日志信息。
/var/log/alternatives.log #更新替代信息都记录在这个文件中。
/var/log/btmp #记录所有失败登录信息。使用last命令可以查看btmp文件。例如,”last -f /var/log/btmp | more“。
/var/log/cups #涉及所有打印信息的日志。
/var/log/anaconda.log #在安装Linux时,所有安装信息都储存在这个文件中。
/var/log/yum.log #包含使用yum安装的软件包信息。
/var/log/cron #每当cron进程开始一个工作时,就会将相关信息记录在这个文件中。
/var/log/secure #包含验证和授权方面信息。例如,sshd会将所有信息记录(其中包括失败登录)在这里。
/var/log/wtmp或/var/log/utmp #包含登录信息。使用wtmp可以找出谁正在登陆进入系统,谁使用命令显示这个文件或信息等。
/var/log/faillog #包含用户登录失败信息。此外,错误登录命令也会记录在本文件中。除了上述Log文件以外,
---------------------------------------
#/var/log还基于系统的具体应用包含以下一些子目录:
----------------------------------------
/var/log/httpd/或/var/log/apache2 #包含服务器access_log和error_log信息。
/var/log/lighttpd/ #包含light HTTPD的access_log和error_log。
/var/log/mail/ #这个子目录包含邮件服务器的额外日志。
/var/log/prelink/ #包含.so文件被prelink修改的信息。
/var/log/audit/ #包含被 Linux audit daemon储存的信息。
/var/log/samba/ #包含由samba存储的信息。
/var/log/sa/ #包含每日由sysstat软件包收集的sar文件。
/var/log/sssd/ #用于守护进程安全服务。

参考

https://blog.csdn.net/weixin_44966641/article/details/120585519

https://blog.51cto.com/jschu/1882685

https://www.cnblogs.com/yihr/p/7212641.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值