Linux之系统日志管理

一、rsyslog服务

此服务只是用来采集日志的,它不会产生日志,只是起到把日志采集到一起的作用。

二、rsyslog服务的管理

vim /etc/rsyslog.conf	##系统的日志配置文件

在这里插入图片描述
示例:

什么类型的日志.什么级别的日志		保存文件的绝对路径    	##日志采集规则
authpriv.info		/var/log/file	##把ssh,ftp登录信息的一般信息日志保存在/var/log/file文件里

在这里插入图片描述
接下来重启系统日志配置文件,让更改生效:

systemctl restart rsyslog.service	##重启系统日志配置

在这里插入图片描述
测试:
用另一台主机通过ssh远程登录系统,查看/var/log/file文件。
在这里插入图片描述
可以看到ssh的一般信息文件都保存在了/var/log/file文件中。

###日志类型分为:
auth				##pam产生的日志
authpriv			##ssh,ftp等登录信息的验证信息
cron				##时间任务相关
kern		f		##内核
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				##什么都不记录

注意: 从上到下,级别从低到高,记录的信息越来越少
详细查看手册: man 3 syslog

三、日志的远程同步

在我们的工作中,管理人员会需要在公司或者家里查看远在千里之外的服务器情况,那怎么才能实现呢?接下来,告诉你!

首先确定服务机,也就是日志发送方。

vim /etc/rsyslog.conf

在文件中写入,你需要将什么类型的什么级别的日志发送到哪一台主机去。

man 5 rsyslog.conf		##查看文件的帮助文档

在这里插入图片描述
分析:通过帮助文档,我们可以看到UDP远程同步日志的书写格式为:

*.*		@192.168.0.1	##把任意类型的任意级别日志,发送到ip192.168.0.1的主机。

TCP远程同步日志的格式为:

*.*		@@192.168.0.1	##把任意类型的任意级别日志,发送到ip192.168.0.1的主机。

RELP格式类似。
接下来,重启rsyslog服务

systemctl restart rsyslog

在客户机,也就是日志接受方:

vim /etc/rsyslog.conf

打开15,16行的UDP接受模块:
15 $ModLoad imudp
16 $UDPServerRun 514

接下来:重启rsyslog服务,关闭接受方防火墙

systemctl restart rsyslog		##重启rsyslog服务
systemctl stop firewalld		##关闭防火墙
systemctl disable firewalld		##设置防火墙开机不启动

示例:
在本例中我们采用UDP格式远程同步日志

日志发送方:

vim /etc/rsyslog.conf

在这里插入图片描述
将任意类型的任意级别日志,发送到ip为172.25.254.18的主机。

systemctl restart rsyslog	##重启服务

日志接受方:

vim /etc/rsyslog.conf

在这里插入图片描述
打开接受UDP日志文件的模块。

systemctl restart rsyslog		##重启服务
systemctl stop firewalld		##关闭防火墙
systemctl disable firewalld		##设置防火墙开机不启动

测试:
在测试前,清空两个主机的/var/log/messages文件,方便实验结果的查看。

> /var/log/messages

发送方:

 > /var/log/messages 	##清空messages日志文件
logger hahaha			##产生测试日志信息hahaha
cat /var/log/messages	##查看日志

在这里插入图片描述
从图可以看到,发送方已经产生了hahaha日志信息

接受方:

 > /var/log/messages 	##清空messages日志文件
 >cat /var/log/messages	##查看日志

在这里插入图片描述
图中可以看到,发送方的日志同步到了接收方的messages文件中。

四、日志采集格式的设定

更改配置文件rsyslog.conf

vim /etc/rsyslog.conf

添加:

$template RULES,"%FROMHOST-IP% %timegenerated% %syslogtag% %msg%\n"
 					显示主机ip	显示日志时间 		日志记录目标 日志内容 换行

在这里插入图片描述
结果:
在这里插入图片描述

五、时间同步服务

服务名称chronyd

在服务端

vim /etc/chrony.conf
更改以下内容:
allow 172.25.254.18/24 	##允许哪些客户端来同步本机时间
local stratum 10		##本机不同步任何主机时间,本机作为时间源

systemctl restart chronyd	            ##重启服务
systemctl stop firewalld				##关闭防火墙
timedatectl set-timezone Asia/Shanghai	##更改当前时区为东8区

在这里插入图片描述
在这里插入图片描述

在客户端:

vim /etc/chrony.conf
server 172.25.254.233 iburst	##本机立即同步233主机时间

systemctl restart chronyd
systemctl stop firewalld
timedatectl set-timezone Asia/Shanghai	##更改当前时区为东8区

在这里插入图片描述
在这里插入图片描述

测试:
客户端

chronyc sources -v

在这里插入图片描述
表示:会同步172.25.254.28主机的时间
服务端更改时间:
在这里插入图片描述
客户端时间查看时间:
在这里插入图片描述

六、timedatectl命令

timedatectl ##管理系统时间

timedatectl	status		##显示当前时间信息
			set-time	##设定当前时间
			set-timezone	##设定当前时区
			set-local-rtc 0|1 ##设定是否使用utc时间
			list-timezones	##查看支持的所有时区

示例:

timedatectl	status

在这里插入图片描述

timedatectl set-time "2019-1-15 11:24:00"

在这里插入图片描述

timedatectl list-timezones

在这里插入图片描述

[root@server_sshd ~]# timedatectl status
      Local time: Tue 2019-11-12 00:33:24 CST		##本地时间=伦敦时间+时区
  Universal time: Mon 2019-11-11 16:33:24 UTC		##世界协调时间:伦敦时间
        RTC time: Tue 2019-01-15 03:22:07			##主板时间
        Timezone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

七、journal

1、journalctl

1.journalctl				##日志查看工具
				-n 3		##查看最近3条日志
				-p err		##查看错误日志
				-o verbose	##查看日志详细参数
				--since		##查看从什么时间开始的日志
				--until		##查看到什么时间为止的日志

在这里插入图片描述

journalctl -n 3

在这里插入图片描述

journalctl -p err

在这里插入图片描述

journalctl --since 11:20 --until 11:31

在这里插入图片描述
分析:查看11:20之后,11:31分之前的日志信息
2、如何使用systemd-journald保存系统日志
默认systemd-journald是不能保存到系统日志到硬盘的,那么关机后再次开机只能看到本次开机后的日志,上次关机之前的日志是无法查看到的。
那么,怎么解决这个问题呢?

mkdir /var/log/journal
chgrp systemd-journal /var/log/journal
chmod g+s /var/log/journal
killall -1 systemd-journald

在这里插入图片描述
分析:重启前的时间是22:28:56,重启后用journalctl查看日志,如果有22:28:56之前的日志,则说明systemd-journald保存到系统日志到硬盘了。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41830712/article/details/86500391
今日推荐