ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

日志文件分析

2021-11-28 14:58:01  阅读:173  来源: 互联网

标签:分析 文件 log journalctl send var 日志 root


文章目录


日志文件

日志的功能


用于记录系统、程序运行中发生的各种事件

通过阅读日志,有助于诊断和解决系统故障

日志文件的分类

内核及系统日志==:由系统服务syslog统─进行管理,日志格式基本相似配置文件/etc/rsyslog.conf

用户日志:
记录系统用户登录及退出系统的相关信息

程序日志:

程序在允许的过程中,有什么报错,就会记录下来


日志的保存位置:/var/log 目录下

主要日志文件介绍

在这里插入图片描述

/var/log/messages:记录Linux内核消息以及各种应用程序的公共日志信息,包括启动,IO错误,网络错误,程序故障等,对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的事件记录信息

/var/log/cron:记录crond计划任务产生的事件信息

/var/log/dmesg:记录Linux系统在引导过程中的各种事件信息

/var/log/maillog:记录进入或发出系统的电子邮件活动

/var/log/secure:记录用户认证相关的安全事件信息

/var/log/lastlog:记录每个用户最近的登录事件,二进制格式

/var/log/wtmp:记录每个用户登录,注销及系统启动和停机事件,二进制格式

/var/run/btmp:记录失败的,错误的登录尝试及验证事件,二进制格式

/var/run/utmp:当前登录的每个用户的详细信息

内核以及系统日志

由系统服务 reyslog 统一管理,配置文件保存在 /etc/rsylog.conf

在这里插入图片描述

*.info #表示info等级及以上的所有等级的信息都写到对应的日志文件里
mail.none #表示某事件的信息不写到日志文件里(这里比如是邮件)

设备字段说明:
auth				#用户认证时产生的日志

authpriv 		    #ssh、 ftp等登录信息的验证信息
daemon				#—些守护进程产生的日志
ftp					#ETP产生的日志
lpr	       			#打印相关活动
rmark       		#rsyslog服务内部的信息,时间标识
news         		#网络新闻传输协议(nntp)产生的消息。
syslog		 		#系统日志
uucp		 		#Unix-to-Unix Copy两个unix之间的相关通信
console		 		#针对系统控制台的消息。
cron         		#系统执行定时任务产生的日志。
kern         		#系统内核日志
localo~      		#白定义程序使用
rnail        		#邮件日志
user		 		#用户进程

Linux系统内核日志消息的优先级别(数字等级越小,优先级越高,消息越重要)

0		EMERG(紧急):会导致主机系统不可用的情况。如系统崩溃
1		ALERT(警告):必须马上采取措施解决的问题。如数据库被破坏
2		CRIT(严重):比较严重的情况。如硬盘错误,可能会阻碍程序的部分功能
3		ERR(错误):运行出现错误。不是非常紧急,尽快修复的
4		WARNING(提醒):可能影响系统功能,需要提醒用户的重要事件。不是错误,如磁盘用了			85%等
5		NOTICE(注意):不会影响正常功能,但是需要注意的事件。无需处理
6		INFO(信息):一般信息。正常的系统信息
7		DEBUG(调试):程序或系统调试信息等。包含详细开发的信息,调试程序时使用
		none:没有优先级,不记录任何日志消息。


日志记录的一般格式

more /var/log/messages

Nov 27 15:10:35 zzz NetworkManager[8821]: <info>  [1637997035.9410] dhcp4 (ens33):   plen 24 (255.255.255.0)

时间标签:Nov 27 15:10:35	消息发出的日期和时间
主机名:zzz	生成消息的计算机的名称
子系统名:NetworkManager[8821]:	发出消息的应用程序的名称
消息字段:<info>  [1637997035.9410]	
消息的具体内容:dhcp4 (ens33):   plen 24 (255.255.255.0)

分析工具

last 命令用于查询成功登录到系统的用户记录

[root@zzz log]# last
root     pts/1        192.168.232.1    Sat Nov 27 16:50   still logged in   
root     pts/4        192.168.232.1    Sat Nov 27 13:38   still logged in   
root     pts/3        :0               Sat Nov 27 13:37   still logged in   
root     pts/2        :0               Sat Nov 27 13:36   still logged in 

lastb 命令用于查询登录失败的用户记录

[root@zzz log]# lastb
root     ssh:notty    zzz              Sat Nov 27 17:08 - 17:08  (00:00)    
root     ssh:notty    zzz              Sat Nov 27 17:08 - 17:08  (00:00)    
root     ssh:notty    192.168.232.1    Wed Nov  3 17:08 - 17:08  (00:00)    
root     :0           :0               Sun Oct 31 17:02 - 17:02  (00:00) 

程序日志分析

由相应的应用程序独立进行管理,是由开发者写入的

比如 Web服务日志,位于/var/log/httpd/

access_log ##记录客户访问事件

error_log ##记录错误事件


日志管理策略

需要及时做好日志的备份和归档

延长日志保存期限

控制日志访问权限:日志中可能包含各类敏感信息,如账户,口令等

集中管理日志:将服务器的日志文件发到统一的日志文件服务器,便于日志信息的统一收集,整理和分析,杜绝日志信息的意外丢失,恶意篡改和删除


配置日志服务器收集日志

发送服务器:客户端 192.168.232.130

收集服务器:服务端 192.168.232.129

1.两个服务器先关闭防火墙 关闭深层防护

setenforce stop firewalld
systemctl stop firewalld
systemctl disable firewalld

2.进客户端 /etc/rsyslog.conf进行配置

把TCP 和UDP 两个注释取消掉,打开端口模块

在这里插入图片描述

再将配置信息写入

在这里插入图片描述

$template myFormat, "%timestamp% %hostname% %syslogseverity-text% %syslogtag% %msg%\n"
$ActionFileDefaultTemplate myFormat
*.info;mail.none;authpriv.none;cron.none              @@192.168.232.129:514

重启服务

[root@send ~]# systemctl restart rsyslog

查看端口信息

[root@send ~]# netstat -anutp | grep 514

客户端设置完毕


接下来设置服务端

1.进 /etc/rsyslog.conf 配置

还是TCP 和UDP 两个注释取消掉,打开端口模块

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y0zPaQXk-1638082066553)(C:\Users\zhuquanhao\Desktop\截图命令集合\linux\日志文件管理\6.png)]

$AllowedSender tcp, 192.168.232.0/24  #允许 192.168.232.0 网段内的主机以tcp协议来传输

$template Remote,"/data/log/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"  #定义模板,接受日志文件路径,区分了不同主机的日志

:fromhost-ip, !isequal, "127.0.0.1" ?Remote  #过滤掉 server 本机的日志

2.创建/data/log/目录

mkdir /data/log/

3.重启服务

[root@recive log]# systemctl restart rsyslog

4.cd 到 /data/log/目录当中,ls看一下

在这里插入图片描述

5.在客户端发送一个日志文件 看服务端能不能同步日志信息

客户端:

[root@send ~]# logger "hello world"

服务端:

在这里插入图片描述


journalctl日志管理工具

日志管理工具journalctl是centos7上专有的日志管理工具,该工具是从message这个文件里读取信息。

Systemd统一管理所有Unit的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)日志的配置文件是/etc/ systemd/journald.conf

查看最新的日志文件,从尾部开始查看

[root@send ~]# journalctl -r

查看内核日志

[root@send ~]# journalctl -k

查看系统本次启动日志

[root@send ~]# journalctl -b 0

查看上一次启动的日志

[root@send ~]# journalctl -b -1

显示尾部指定 20 行的日志,并动态更新

[root@send ~]# journalctl -n 20 -f

查看某个服务的日志(比如防火墙)

[root@send ~]# journalctl -u firewalld

查看指定进程的日志

[root@send ~]# journalctl _PID=1

查看指定用户的日志

[root@send ~]# journalctl _UID=0 --since today

查看报错日志

[root@send ~]# journalctl -xe

标签:分析,文件,log,journalctl,send,var,日志,root
来源: https://blog.csdn.net/weixin_54059979/article/details/121591476

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有