linux 系统日志

学习目标

  • 理解系统日志
  • 掌握系统系统日志服务管理
  • 日志同步
  • journal 日志分析
  • systemd-journald 服务
  • chronyd 服务
  • timedatectl

1.理解系统日志
进程和操作系统内核需要能够为发生的事件记录日志 , 这些日志可用于系统审核和问题的故障排除 , 一般这些日志永久存储 /var/log 目录中。系统文件记录信息如下表 :

日志文件 					用途
/var/log/messages 			#大多数系统日志信息记录在此处
/var/log/secure 			#安全和身份认证相关的消息和错误的日志文件
/var/log/maillog 			#与邮件服务器相关的日志文件
/var/log/cron 				#与定时任务相关的日志文件
/var/log/boot.log 			#与系统启动有关的日志文件

2.rsyslog的管理
rsyslog 是一个开源工具 , 被广泛用于 Linux 系统以通TCP/UDP 协议转发或接收日志消息。rsyslog 服务的主配置文件为 /etc/rsyslog.conf 。指定日志保存位置修改配置文件 , 修改后重启 rsyslog 服务生效。

什么类型的日志.什么级别的日志 /var/log/file ##日志采集规则
日志类型为:

auth			##pam产生的日志
authpriv		##ssh,ftp等登陆信息的验证信息
cron			##时间任务相关
kern			##内核
lpr				##打印
mail			##邮件
mark(syslog)-rsyslog 	##服务内部信息,时间标识
news			##新闻组
user			##用户程序产生的相关信息
uucp			##unix to unix copy,unix 主机之间的相关通讯
local 1-7		##自定义的日志设备

日志级别分为:

debug			##有调式信息的,日志信息最多
info			##一般信息的日志,最常用
notice			##最具有重要性的普通条件信息
warning			##警告级别
err				##错误级别,阻止某个功能或模块不能正常工作的信息
crit			##严重级别,阻止整个系统或在整个软件不能正常工作的信息
alert			##需要立刻修改的信息
emerg			##内核崩溃等严重信息
none			##什么都不记录

##注意:从上到下,级别从低到高,记录的信息越来越少

3.日志远程同步

在日志发送方:
vim /etc/rsyslog.conf
*.*  @172.25.254.100  ##@表示udp协议发送,@@表示tcp协议发送
(*.*所有类别的所有日志)
systemctl restart rsyslog

在日志接受方:
vim /etc/rsyslog.conf
15 $ModLoad imudp ##开启接口模块
16 $UDPServerRun 514 ##开启接收端

systemctl restart rsyslog.service 
systemctl stop firewalld.service ##关闭防火墙
systemctl disable firewalld.serv ##设定防火墙开机不启动

测试
在日志发送和接受方都清空日志
> /var/log/messages

在日志发送方
logger test

在发送方和接受方都可以查看到日志
cat /var/log/messages

linux 系统日志_第1张图片
linux 系统日志_第2张图片
linux 系统日志_第3张图片
linux 系统日志_第4张图片

##日志采集的格式##

vim /etc/rsyslog.conf
$template LOGTMT,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
%timegenerated%  	#显示日志时间
%FROMHOST-IP%	#显示主机IP
%syslogtag%		##日志记录目标
%msg%			#日志内容


*.*                                          /var/log/westos;LOGFMT
systemctl restart rsyslog.service
在日志发送方:
	logger test
在日志接受方:
	cat /var/log/westos

linux 系统日志_第5张图片
linux 系统日志_第6张图片

4.时间同步服务
服务名称
chronyd

##在服务端
vim /etc/chronyd.conf
22 allow 172.25.254.0/24		##允许哪些客户端来同步本机时间
29 local stratun 10		##本机不同步任何主机的时间,本机作为时间源

systemctl restart chronyd.service 

##在客户端
 vim /etc/chrony.conf 
server 172.25.254.203 iburst		#本机立即同步203这台主机的时间

systemctl restart chronyd.service 

##测试:
#在客户端
[root@client ~]# chronyc sources -v #查看是否同步成功
210 Number of sources = 1

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||                                                /   xxxx = adjusted offset,
||         Log2(Polling interval) -.             |    yyyy = measured offset,
||                                  \            |    zzzz = estimated error.
||                                   |           |                         
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* 172.25.254.203               10   6   377    19   +280us[ -105us] +/-  172us

linux 系统日志_第7张图片
在这里插入图片描述
linux 系统日志_第8张图片
linux 系统日志_第9张图片
linux 系统日志_第10张图片

##timedatectl 管理系统时间命令##

timedatectl ##管理系统时间
timedatectl set-time ##设定当前时间
timedatectl set-timezone ##设定当前时区
timedatectl set-local-rtc 0|1 ##设定是否使用utc时间
timedatectl list-timezone ##查看支持的所有时区
timedatectl set-time "2018-11-11 11:11:11"

linux 系统日志_第11张图片
linux 系统日志_第12张图片
在这里插入图片描述
linux 系统日志_第13张图片

5.journal命令
1.journalctl ##日志查看工具

journalctl  -n 3 		##查看最近3条日志
			-p err 		##查看错误日志
			-o verbose  ##查看日志的详细参数
journalctl --since "2018-10-23 03:00" --until "2018-10-23 03:20" ###查看从什么时间开始的日志到什么时间为止的日志

在这里插入图片描述
linux 系统日志_第14张图片
linux 系统日志_第15张图片
linux 系统日志_第16张图片

2.如何使用systemd-journal 保存系统日志
默认情况下 ,systemd 日志保存在 /run/log/journal 中 , 这意味着系统重启时会被清除 , 那如果将日志保存在 /var/log/journal 目录 , 这样做的优点是启动后就可以利用历史数据 , 形成永久日志。

mkdir /var/log/journal
chgrp systemd-journal /var/log/journal
chmod g+s /var/log/journal
ps aux | grep systemd-journal 	 ##查看所有进程中有关systemd-journal的
killall -1 systemd-journald 	 ##进程重新加载配置
ls /var/log/journal

946cb0e817ea4adb916183df8c4fc817
linux 系统日志_第17张图片

在这里插入图片描述
linux 系统日志_第18张图片
linux 系统日志_第19张图片

在这里插入图片描述

你可能感兴趣的:(linux)