首页 > 系统相关 >Linux基础日志分析

Linux基础日志分析

时间:2024-11-11 22:40:47浏览次数:4  
标签:分析 sshd kylin secure log Linux 日志 root xu

四、日志分析

【1】、what is 日志

  • 日志log
  • 分析,检查系统,服务是否正常运行,一般都要看日志。 后面学习的一些服务软件,遇到故障就要查看日志。
  • Linux日志一般存放在/var/log/目录。

【2】、核心日志

ip,root,密码,22(端口)

Linux默认核心日志 说明
/var/log/secure(麒麟,红帽系统) /var/log/auth.log (debian,ubt) 用户登录情况,分析错误,分析正确
/var/log/messages(麒麟,红帽系统) /var/log/syslog(debian,ubt) 通用日志(服务) 服务如果没有单独的日志,一般就会记录到这里面。
......
root@xu-ubuntu:~# ll /var/log/auth.log 
-rw-r----- 1 syslog adm 6303 Nov  4 08:05 /var/log/auth.log
[root@kylin-xu ~]# ll /var/log/secure 
-rw------- 1 root root 6269 nov  4 00:31 /var/log/secure


root@xu-ubuntu:~# ll /var/log/syslog 
-rw-r----- 1 syslog adm 230481 Nov  4 07:29 /var/log/syslog
[root@kylin-xu ~]# ll /var/log/messages 
-rw------- 1 root root 2199907 nov  4 05:06 /var/log/messages

分析secure (auth.log)日志:

  • failure
  • failed ( Failed password)

kylin错误登录分析

image-20241104161616677

Ubuntu错误登录分析

image-20241104162158128

【3】、故障案例:某开发人员vim编辑2g日志导致系统内存不足。

背景: 突然发现测试环境某个机器,提示内存不足。我们去查看。

步骤:定位出是vim命令占用的。发现vim编辑日志。

解决:结束进程

预防:

  • 发现开发人员操作,查看日志,vim查看。

  • 培训开发人员使用tail,head,less,more,grep查看不要用cat,vim.

【4】、查看内存指令

tail,head,less,more,grep

1、tail

  • 文件结尾的数据。默认查看文件末尾10行。

查看文件最后的20行 -20 -n20

[root@kylin-xu ~]# tail -20 /var/log/secure  
Nov  3 23:40:10 kylin-xu polkitd[768]: Loading rules from directory /etc/polkit-1/rules.d
Nov  3 23:40:10 kylin-xu polkitd[768]: Loading rules from directory /usr/share/polkit-1/rules.d
Nov  3 23:40:10 kylin-xu polkitd[768]: Finished loading, compiling and executing 5 rules
Nov  3 23:40:10 kylin-xu polkitd[768]: Acquired the name org.freedesktop.PolicyKit1 on the system bus
Nov  3 23:40:17 kylin-xu systemd[1105]: pam_unix(systemd-user:session): session opened for user root(uid=0) by (uid=0)
Nov  3 23:40:18 kylin-xu sshd[1029]: pam_unix(sshd:session): session opened for user root(uid=0) by (uid=0)
Nov  3 23:41:17 kylin-xu polkitd[752]: Loading rules from directory /etc/polkit-1/rules.d
Nov  3 23:41:17 kylin-xu polkitd[752]: Loading rules from directory /usr/share/polkit-1/rules.d
Nov  3 23:41:17 kylin-xu polkitd[752]: Finished loading, compiling and executing 5 rules
Nov  3 23:41:17 kylin-xu polkitd[752]: Acquired the name org.freedesktop.PolicyKit1 on the system bus
Nov  3 23:42:59 kylin-xu systemd[1437]: pam_unix(systemd-user:session): session opened for user root(uid=0) by (uid=0)
Nov  3 23:42:59 kylin-xu sshd[1427]: pam_unix(sshd:session): session opened for user root(uid=0) by (uid=0)
Nov  3 23:52:47 kylin-xu sshd[1427]: pam_unix(sshd:session): session closed for user root
Nov  3 23:52:48 kylin-xu sshd[3968]: pam_unix(sshd:session): session opened for user root(uid=0) by (uid=0)
Nov  4 00:31:07 kylin-xu sshd[3968]: pam_unix(sshd:session): session closed for user root
Nov  4 00:31:08 kylin-xu sshd[66374]: pam_unix(sshd:session): session opened for user root(uid=0) by (uid=0)
Nov  4 05:14:54 kylin-xu sshd[135641]: pam_unix(sshd:session): session opened for user root(uid=0) by (uid=0)
Nov  4 05:15:02 kylin-xu sshd[135641]: pam_unix(sshd:session): session closed for user root
Nov  4 05:15:17 kylin-xu login[902]: pam_unix(login:auth): authentication failure; logname=LOGIN uid=0 euid=0 tty=tty1 ruser= rhost=  user=root
Nov  4 05:15:20 kylin-xu login[902]: FAILED LOGIN SESSION FROM tty1 FOR root, Permission denied
[root@kylin-xu ~]# tail -20 /var/log/secure  | wc -l
20
  • 查看文件末尾的实时更新
[root@kylin-xu ~]# tail -f /var/log/secure

2、head

查看文件开头的内容,默认显示10行。

head /var/log/secure

# 显示第一行
head -1 /var/log/secure

3、less、more

  • less /etc/serivces
下一页: 空格或ctrl + f 
上一页:      ctrl + b
第1行:       g
最后一行:     G
某一行:      100回车
/搜索  
q 退出 

more 快捷键没有那么多,到文件末尾自动退出。

4、过滤 在文件中查找内容

四剑客 find,grep,sed,awk

  • grep
grep选项
--color 加颜色
-i 不区分大小写
-n 显示行号
-v 取反,排除
  • 在/etc/passwd文件中过滤出root的行
grep --color 'root'     /etc/passwd
  • 在/var/log/secure文件中过滤出failure行。
grep --color  'failure'  /var/log/secure
  • /var/log/auth.log中过滤出failed password
grep -i 'failed password'  /var/log/auth.log
  • 不区分大小写过滤出 /etc/ssh/sshd_config 文件中包含port 22的行并输出行号
grep  --color  -i -n  'port 22'   /etc/ssh/sshd_config 
  • 排除(取反)/etc/ssh/sshd_config文件中的#(井号)
grep -v '#'  /etc/ssh/sshd_config

5、wc

  • 统计文件行数
xu@xu-ubuntu:~$ wc -l /etc/services
361 /etc/services
  • wc一般搭配管道使用,其他命令使用。
  • 初步统计功能。

【5】、日志统计

1、管道

管道: 符号 | ,前1个命令执行后输出,通过管道符号,传递给下一个命令使用。

  • 过滤/etc/passwd中包含/bin/bash的行,行数。
[root@kylin-xu ~]# grep /bin/bash /etc/passwd 
root:x:0:0:root:/root:/bin/bash
[root@kylin-xu ~]# grep /bin/bash /etc/passwd | wc -l
1
  • ps -ef 显示linux进程的命令,linux进程数量
[root@kylin-xu ~]# ps -ef | wc -l
151
  • ps -ef 显示linux进程的命令,统计/sbin/sshd进程数量(远程连接服务的进程)
[root@kylin-xu ~]# ps -ef | grep /sbin/sshd 
root         872       1  0 nov03 ?        00:00:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root      143510   66389  0 05:46 pts/0    00:00:00 grep /sbin/sshd
[root@kylin-xu ~]# ps -ef | grep /sbin/sshd  | wc -l
2

2、日志

  • 上传文件到linux
安装lrzsz   
yum install -y  lrzsz  #麒麟

#ubt,debian 使用root用户
sudo su - 
apt update 
apt install -y lrzsz 

#命令说明
rz 上传  rz回车即可或拖拽
sz 下载  sz /etc/hostname  下载指定的文件。
  • 解压缩
unzip secure-20161219.zip  #解压到当前目录。
#如果提示命令找不到 command not found

检查:
[root@oldboyedu ~]# ll -h secure-20161219
-rw-r--r-- 1 root root 49M  2月 15  2017 secure-20161219
#字节,
#KB
#MB
#GT
#GB
#TB
#PB
#EB

  • 分析

3、复现故障案例

cat  secure-20161219 secure-20161219  secure-20161219 secure-20161219 secure-20161219 secure-20161219 secure-20161219 secure-20161219 secure-20161219 secure-20161219 secure-20161219 secure-20161219 secure-20161219 secure-20161219 secure-20161219 secure-20161219     secure-20161219 secure-20161219 secure-20161219 secure-20161219  > secure-big

[root@kylin-xu ~]# ll -h secure-big 
-rw-r--r-- 1 root root 974M 11月  4 07:11 secure-big
  • 检查内存: free -h

  • vim编辑文件

  • 开个窗口 查看内存

4、日志分析搭档sort,uniq

  • sort 排序
  • uniq unique独一无二的,去重。

(1)、sort

sort选项
-r 逆序排序
-n 按照数字形式排序
-k -k指定列,
[root@kylin-xu ~]# sort num.txt 
# 默认是按照数字的第一个数字排序
0
1
131
154
161
26
3
31
4164
46
74
749
99

[root@kylin-xu ~]# sort num.txt  -n
0
1
3
26
31
46
74
99
131
154
161
749
4164

[root@kylin-xu ~]# sort num.txt  -nr
4164
749
161
154
131
99
74
46
31
26
3
1
0

[root@kylin-xu ~]# sort num.txt  -nr -k 2
aasc 4164
xixi 749
haha 161
dtgfhdsgf 154
aaa 131
safdg 99
ewsrf 74
bb 46
qawq 31
sadg 26
bsadfg 3 
ss 1
afa 0

ps aux 第4列是内存使用率,对这列排序,取出前5个

root@xu-ubuntu:~# ps aux | sort -nr -k 4 | head -5
root        4855  0.5  0.8 1393992 31980 ?       Ssl  10:39   0:21 /usr/lib/snapd/snapd
root         548  0.0  0.6 354888 27232 ?        SLsl 03:51   0:06 /sbin/multipathd -d -s
root         899  0.0  0.5 107120 21528 ?        Ssl  03:51   0:00 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal
root         835  0.0  0.4  30104 18920 ?        Ss   03:51   0:00 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers
root         510  0.0  0.4  47884 16904 ?        S<s  03:51   0:01 /lib/systemd/systemd-journald

(2)、uniq

  • 去重,一般要与sort搭配。
[root@oldboyedu ~]# cat uniq.txt 
lidao
oldboy
lidao
lidao
lidao
lidao
lidao
lidao
lidao
lidao
lidao
oldboy
oldboy
oldboy
oldboy
oldboy
[root@oldboyedu ~]# sort uniq.txt |uniq -c 
     10 lidao
      6 oldboy

(3)、awk

  • 取列

  • awk 取列 NF表示最后一列

[root@kylin-xu ~]# cat num.txt 
haha 161 192.168.121.11
xixi 749 192.168.121.111
aaa 131  192.168.121.116
aasc 4164 192.178.121.11
dtgfhdsgf 154 192.178.121.180
qawq 31 192.178.31.11

[root@kylin-xu ~]# awk '{print $3}' num.txt 
192.168.121.11
192.168.121.111
192.168.121.116
192.178.121.11
192.178.121.180
192.178.31.11
[root@kylin-xu ~]# awk '{print $NF}' num.txt 
192.168.121.11
192.168.121.111
192.168.121.116
192.178.121.11
192.178.121.180
192.178.31.11

【6】、日志分析实战

1、secure日志分析

  • 1️⃣过滤出failed password,失败登录。 取行
  • 2️⃣ 提取出这行中的ip的列。 取列
  • 3️⃣ 对ip进行排序。 相同的ip在一起。
  • 4️⃣ 去掉重复,统计次数。 去重并统计次数。uniq -c
  • 5️⃣ 对次数排序并取出前20个

NF-3:取出倒数第四列。

因为从正向数,是不规律的,因此只能倒序数

image-20241104202812047

[root@kylin-xu ~]# grep -i "failed password" secure-20161219 |  awk '{print $(NF-3)}' | sort | uniq -c | sort -rn | head -20
  68652 218.65.30.25
  34326 218.65.30.53
  21201 218.87.109.154
  18065 112.85.42.103
  17164 112.85.42.99
  17163 218.87.109.151
  17163 218.87.109.150
  17163 218.65.30.61
  17163 218.65.30.126
  17163 218.65.30.124
  17163 218.65.30.123
  17163 218.65.30.122
  17163 182.100.67.120
  17163 182.100.67.119
  17163 112.85.42.124
  17163 112.85.42.107
   3289 222.186.50.206
   3265 219.133.29.16
   3206 111.73.46.156
   2479 117.21.226.189

2、access日志分析

  • 2️⃣ 提取出这行中的ip的列。 取列
  • 3️⃣ 对ip进行排序。 相同的ip在一起。
  • 4️⃣ 去掉重复,统计次数。 去重并统计次数。uniq -c
  • 5️⃣ 对次数排序并取出前20个
[root@kylin-xu ~]# awk '{print $1}' access.log  | sort | uniq -c | sort -rn  | head -20
  12049 58.220.223.62
  10856 112.64.171.98
   1982 114.83.184.139
   1662 117.136.66.10
   1318 115.29.245.13
    961 223.104.5.197
    957 116.216.0.60
    939 180.111.48.14
    871 223.104.5.202
    869 223.104.4.139
    799 124.160.208.186
    792 121.235.250.231
    774 116.226.186.208
    753 114.111.166.22
    752 122.234.234.124
    751 61.148.243.193
    733 58.33.166.73
    733 222.67.7.159
    717 140.206.89.233
    706 101.226.125.113

标签:分析,sshd,kylin,secure,log,Linux,日志,root,xu
From: https://www.cnblogs.com/xuruizhao/p/18540758

相关文章

  • 线程进阶篇4:如何用Executors工具类创建线程池-代码演示-源码分析-可行性分析,对比new T
        本篇文章主要是讲解如何使用Executors工具类创建线程池,看本篇之前建议同学们先去看看我发布的上一篇文章,即用newThreadPoolExecutor()来创建线程池,里面讲解了线程池的参数使用方法和场景,熟悉了之后再来学习这一篇会更容易理解一些!因为Executors只是一个工具类,底层......
  • 2024-11-11-Linux学习-基础篇(1)(鸟哥的LINUX私房菜 第四章)
    Linux的学习,也是一本大厚书,学起来。文章目录一、前言二、知识点2.1开始执行命令2.2日期与时间2.3日历2.4计算器2.4重要的热键2.4.1[TAB]2.4.2[Ctrl]-c2.4.3[Ctrl]-d2.4.4[Shift]+{[PageUP]l[PageDown]}按键小结一、前言  Linux命令学习,开始。二、......
  • 美畅视频接入网关(VGate)的应用场景分析
    1. 在局域网项目中,VGate可以当一套视频监控小平台使用。VGate内置一套小型数据库,有完善的WEB页面,功能包括视频预览、视频回放、录像下载、配置等四大项功能。把它当成一套小型监控平台来使用,完全没问题。2. 在复杂的项目中,VGate可以作为端侧的接入服务来使用。例如分散点汇聚......
  • Lift, Splat, Shoot, LSS代码详尽分析与解读
    LSS是英伟达在ECCV2020上发表的文章《Lift,Splat,Shoot:EncodingImagesfromArbitraryCameraRigsbyImplicitlyUnprojectingto3D》中提出的一个BEV感知算法,后续很多BEV感知算法如CaDDN、BEVDet都是在LSS的基础上实现的。本文将结合论文和代码详细解读LSS的原理。鸟瞰图......
  • RabbitMQ 在 Linux CentOS 和 Docker 环境下的部署及分布式部署指南
    1.引言RabbitMQ是一种广泛使用的消息代理,实现了高级消息队列协议(AMQP)。它在分布式系统中扮演了至关重要的角色,确保消息的可靠传递、负载均衡和任务分发。本文将深入探讨如何在LinuxCentOS和Docker环境下部署RabbitMQ,并实现分布式部署,帮助你快速上手并优化生产环......
  • springboot本地保存日志文件 | linux如何查询日志
    springboot会自动集成log4j,我们只需要配置一下yml确保日志会保存至本地即可logging:file:name:./logs/${spring.application.name}.log linux一些查询日志的命令#实时查询日志:tail-fxx.log#查询日志的最后100行:tail-n100xx.log#实时查询最后100行数......
  • [linux] Linux dts、dtsi、dtc、dtb整理
    参考链接设备树属性解读_设备树reg属性解析-CSDN博客高通平台8953LinuxDTS(DeviceTreeSource)设备树详解之一(背景基础知识篇)_高通提取dtb-CSDN博客高通平台8953LinuxDTS(DeviceTreeSource)设备树详解之一(背景基础知识篇)-腾讯云开发者社区-腾讯云高通平台msm895......
  • 使用ob_tools包收集分析oceanbase数据库oracle租户缓慢sql语句
    概述1、手册目的:本手册旨在提供一种系统化的方法论,以便发现和分析慢SQL语句。通过使用ob_tools包,收集和分析在交付期间,应用程序在不同场景下进行压测时所产生的慢SQL语句,从而实现性能调优和优化建议。2、文档内容:本手册包含以下几个主要部分:1.ob_tools包内存储过程和函数介......
  • 2024年信创操作系统排行榜:行业格局与发展趋势分析
    近年来,随着国内信息技术创新的不断推进,信创操作系统逐渐走入了公众视野。信创操作系统作为国内信息技术自主创新的重要组成部分,不仅是国家战略中的关键技术,也是企业数字化转型中的核心基础设施之一。近日,由DBC联合CIW/CIS推出的“2024信创操作系统排行榜TOP10”正式发布,揭示了......
  • Linux硬盘挂载与磁盘分区基础(一)(主分区、拓展分区、逻辑分区)
      我们常用windows时,会区分C盘、D盘之类的(A、B盘是软盘)就是所谓的分区,这么做为了方便数据管理,比如扩容之类的。  本文采用Linux(Ubuntu20.04)来介绍分区,其它Linux系统基本一样的。  首先,我们需要熟悉几个概念:  硬盘:存储数据用的硬件,比如移动硬盘、固态硬盘、U盘等,有了硬......