2. 日志分析
2.1 日志?
-
日志log
-
分析,检查系统,服务是否正常运行,一般都要看日志。 后面学习的一些服务软件,遇到故障就要查看日志。
-
Linux日志一般存放在/var/log/目录。
2.2 核心日志
ip,root,密码,22(端口)
Linux默认核心日志 | 说明 |
---|---|
/var/log/secure(麒麟,红帽系统) /var/log/auth.log (debian,ubt) | 用户登录情况,分析错误,分析正确 |
/var/log/messages(麒麟,红帽系统) /var/log/syslog(debian,ubt) | 通用日志(服务) 服务如果没有单独的日志,一般就会记录到这里面。 |
...... |
-
分析secure (auth.log)日志:
-
failure
-
failed ( Failed password)
-
ubuntu
-
登录linux(麒麟,ubt)密码失败就行了。
修改ip或端口号
修改用户和密码
2.3 故障案例:某开发人员vim编辑2g日志导致系统内存不足。
背景: 突然发现测试环境某个机器,提示内存不足。我们去查看。
步骤:定位出是vim命令占用的。发现vim编辑日志。
解决:结束进程
预防:1. 发现开发人员操作,查看日志,vim查看。 2.培训开发人员使用tail,head,less,more,grep查看不要用cat,vim.
2.4 日志查看指令
tail,head,less,more,grep
1)tail
-
文件结尾的数据。默认查看文件末尾10行。
-
查看文件最后的20行
tail -n20 /var/log/secure tail -20 /var/log/secure
-
查看文件末尾的实时更新
tail -f /var/log/secure 新开窗口,追加内容
2)head
-
查看文件开头的内容,10行。
head /etc/passwd head -1 /etc/passwd
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
-
统计文件行数
wc -l /etc/services 11473 /etc/services
-
wc一般搭配管道使用,其他命令使用。
-
初步统计功能。
2.5 日志统计
1)管道
管道: 符号 | ,前1个命令执行后输出,通过管道符号,传递给下一个命令使用。
-
过滤/etc/passwd中包含/bin/bash的行,行数。
[root@oldboyedu ~]# grep --color '/bin/bash' /etc/passwd | wc -l 1
-
ps -ef 显示linux进程的命令,linux进程数量
ps -ef |wc -l
-
ps -ef 显示linux进程的命令,统计/sbin/sshd进程数量(远程连接服务的进程)
ps -ef | grep '/sbin/sshd' |wc -l
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
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
-
检查内存: free -h
-
vim编辑文件
-
开个窗口 查看内存
4) 日志分析搭档sort,uniq
-
sort 排序
-
uniq unique独一无二的,去重。
a) sort
sort选项 | ||
---|---|---|
-r | 逆序排序 | |
-n | 按照数字形式排序 | |
-k | -k指定列, |
-
排序
vim num.txt lidao 222 oldboy 111 oldli 99 oldya 9999 sort -rnk2 num.txt
-
ps aux 第4列是内存使用率,对这列排序,取出前5个。
ps aux |sort -rnk4 |head -5