日志在一台主机上生成,另一台主机有办法查看到别人的日志,可是怎样才能采集到别的主机产生的日志呢?

一、日志查看

首先确认日志服务是打开的systemctl start rsyslog.service,并通过以下指令确认rsyslog服务的状态是开启的:“systemctl status rsyslog.service”

IOT设备日志提取 日志获取_重启


为了方便接下来的日志采集操作,我们将日志的发送方client的ip设为:192.168.80.130,将日志的接收方server的IP设为:192.168.80.131:

发送方:

  1. 首先在shell里输入·vim /etc/rsyslog.conf打开日志文件,打开文件后,输入:set nu`,使行数显示出来便于修改。
[root@client ~]# vim /etc/ rsyslog.conf

IOT设备日志提取 日志获取_vim_02


然后在46行找到"Rules",在Rules下面添加发送方client的ip。点击·i·键对文件进行编辑,在Rules下输入·. @192.168.80.130`,点击 esc键退出编辑,输入“:wq”保存修改后退出

IOT设备日志提取 日志获取_重启_03

2. 输入systemctl restart rsyslog.service重启,使修改文件生效

[root@client ~]#systemctl restart rsyslog.service

在接受方:

  1. 通过sytemctl stop firewalld关闭防火墙,防止防火墙阻断日志采集操作
  2. 通过vim /etc/rsyslog.conf打开日志文件进行编辑,使日志接口打开
  3. 利用systemctl restart rsyslog.service指令让日志服务重启,使修改文件生效。
[root@client ~]#systemctl restart rsyslog.service

测试:
在发送方:

  • 通过·>/var/log/messages·清空日志,方便等下测试
  • 建立一个测试日志logger test

IOT设备日志提取 日志获取_日志采集_04


在接收方:

  • 使用cat /var/log/messages查看日志

    清空日志后,使发送方做一些指令,使用ssh服务登陆进client的接收方,再次查看日志时便有了如下结果:

二、日志采集

日志采集格式的规定和时间的同步,会对日志采集过程提供更多的便捷

  1. 设定日志采集格式
    vim /etc/rsyslog.conf 进入日志服务文件,对文件进行修改,在Rules的下面输入
    $timeplate LOGFMT,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n",

IOT设备日志提取 日志获取_IOT设备日志提取_05

其中每一项的含义如下:

%timegenerated%

显示日志生成时间

%FROMHOST-IP%

显示主机ip

%syslogtag%

日志记录目标

%msg%

日志内容

\n

换行

IOT设备日志提取 日志获取_vim_06

然后输入“:wq”保存退出

利用systemctl restart rsyslog.service指令让日志服务重启,使修改文件生效。

[root@client ~]#systemctl restart rsyslog.service

然后就可以查看到所规定的日志采集格式生效了
输入cat /var/log/messages

[root@client ~]#cat /var/log/messages

可以查看到日志的格式和之前设置如出一辙:

IOT设备日志提取 日志获取_日志采集_07


三、时间的同步

日志在采集的过程中,时间不同步可能会给日志的操作造成不必要的干扰,如果达成时间同步,会大大便利采集等操作过程。

那如何让两台主机时间保持一致?

时间同步服务:chronyd

在客户端:

vim /etc/chrony.conf 22行:allow 192.168.0/24 #允许那些客户机来同步本机时间

29: local stratum 10 #本机不同步任何主机的时进,本机作为时间源

IOT设备日志提取 日志获取_重启_08

然后输入systemctl restart chronyd使文件修改部分生效

[root@client ~]#systemctl restart chronyd

在服务端:

vim /etc/chrony.conf 进去后显示:

IOT设备日志提取 日志获取_日志采集_09


使原先的3-6行变成注释不生效,然后在里面输入serve 192.168.80.130iburst #本机将同步client主机的时间

IOT设备日志提取 日志获取_重启_10


systemctl restart chronyd重启时间同步服务测试:

在服务端:

chronyc sources -v

IOT设备日志提取 日志获取_vim_11


(出现一个有很多标注的图和“*“·表示成功。“?”表示未连接,可能未关防火墙或需要耐心等待即可/若重启失败,先清空文件,可能是vim中语法写错,参数写错vvim)然后输入:date

在客户端:

date

对比两台主机的时间是否相同

IOT设备日志提取 日志获取_vim_12


服务机:

IOT设备日志提取 日志获取_vim_13


在两台主机上输入"date"指令后,发现时间同步成功。