Linux之系统日志分析、时间同步

时间:2024-05-19 20:51:08

一、系统日志

1、为了在真机上连接虚拟机时区别各主机,修改主机名

hostnamectl set-hostname node1.exapmle.com #node1 是主机名

2、在真机上面连接两台虚拟机,ctrl+shift+t 打开另外一个终端

3、为了方便查看操作记录,需要规定日志采集位置

1、日志采集

日志内容是系统本身决定的,在内存中,日志采集的位置需要在配置文件 /etc/rsyslog.conf 下规定。

rsyslog    #将日志采集在硬盘里面的日志采集工具

vim /etc/rsyslog.conf    #打开规定采集日志的位置的配置文件,进行编辑,从而修改配置文件

1.系统常用日志:

/var/log/messages    #所有日志级别的常规信息(不包含邮件,服务认证,定时任务)

/var/log/maillog    #邮件日志

/var/log/secure    #服务认证日志

/var/log/cron    #定时人物日志

systemctl restart rsyslog.service    #改变采集日志的配置文件后必须要重启,才可生效

 > 日志文件    #清空文件里面的日志记录

例:> /var/log/messages    #清空messages里面的日志记录

注意:当清空了messages后还有日志时,是因为有脚本在运行,需要在实验前先删除 rc.local     #> /etc/rc.d/rc.local

2.规定采集规则:

日志类型.日志级别 日志存放文件

3.日志类型:

auth    #表示用户登录时产生的日志(pam产生日志)

authpriv    #服务认证日志(sshd认证)

kern    #内核日志

cron    #定时任务日志

lpr    #打印日志

mail    #邮件日志

news    #新闻

user    #用户相关程序日志

local 1-7    #用户自定义日志

4.日志级别:

debug    #系统调试信息

info    #常规信息

warning    #警告信息

err    #报错(级别较低,阻止了某个功能不能正常工作)

crit    #报错(级别高,阻止整个软件或整个系统不能正常工作)

alert    #需要立即修改的信息

emerg    #内核崩溃

none    #不采集任何日志信息

* 代表所有的日志类型或者级别

 测试:把所有的日志信息放在 /var/log/haha 里

Linux之系统日志分析、时间同步

文件中编辑内容如红线框里所示:

Linux之系统日志分析、时间同步

在另外一个虚拟机连接测试虚拟机而产生日志:

Linux之系统日志分析、时间同步

查看是否有日志被采集,确认修改是否成功:

Linux之系统日志分析、时间同步

注意:在修改配置文件后必须要有重启:systemctl restart rsyslog.service 

2、日志远程同步(为了方便管理多台主机日志)

日志发送方:

vim /etc/rsyslog.conf    #编辑配置文件

*.* @日志接受方的ip    #通过udp协议把日志发送到接收方,@udp,@@tcp

systemctl restart rsyslog    #重启配置文件

日志接受方:

vim /etc/rsyslog.conf  #配置文件,同意以UDP形式同步远程日志

15 $ModLoad imudp    #日志接收插件

16 $UDPServerRun 514    #日志接收插件使用端口

systemctl restart rsyslog    #重启配置文件

systemctl stop firewalld    #关闭防火墙,以便日志进入

systemctl disable firewalld    #永久关闭防火墙,需reboot重启

注意:在使用时要关闭防火墙,以便日志进入,而完成同步

测试:

发送方:

Linux之系统日志分析、时间同步

发送方配置文件内容:

Linux之系统日志分析、时间同步

接收方:

Linux之系统日志分析、时间同步

接收方配置文件:

Linux之系统日志分析、时间同步

清空日志文件以便查看日志是否同步:

Linux之系统日志分析、时间同步

发送方和接收方同步日志查看:

Linux之系统日志分析、时间同步

Linux之系统日志分析、时间同步

3、定义日志采集格式

在接受方:

vim /etc/rsyslog.conf

$template 格式名称,“日志采集格式"    #注意输入法,及空格

例:

$template hehe,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"

%timegenerated% #日志生成时间

%FORMHOST-IP% #日志来源主机的IP

%syslogtag% #日志生成程序

%msg% #日志内容

\n #换行

给显示日志的文件规定那一行后面加“;格式名称” #按格式进行显示

例:

*.info;mail.none;authpriv.none;cron.none                /var/log/messages;hehe

测试:

Linux之系统日志分析、时间同步

文件内容如下:

Linux之系统日志分析、时间同步

 4、journalctl    #日志查看工具,直接查看内存中的日志分析本机日志,不能远程同步日志,重启后重启之前的日志会清掉

-n 3    #显示最新的3行日志

-p err    #查看报错日志

Linux之系统日志分析、时间同步

-f     #实时监控日志,用ctrl+c结束监控

--since --until    #--since "[YYYY-MM-DD][hh:mm:ss]",查看从什么时间到什么时间的日志

Linux之系统日志分析、时间同步

-o verbose    #查看日志详细参数(执行后/PID=3226  #查看pid为3226的详细参数)

5、对 systemd-journald 管理

默认此程序只负责对日志进行查看而不对日志进行保存和采集

但是开机后再开机,对日志进行查看,只能查看到开机后的日志,系统之前的日志因为是保存在内存中的,所以关机后就被清空了,所以在开机后用 journalctl 看不到

1.让systemd-journald保存日志到硬盘,步骤如下:

mkdir /var/log/journal    #创建一个保存关机前日志的目录

chgrp systemd-journald /var/log/journal    #修改目录所属组

chmod g+s /var/log/journal    #只能看到目录权限(加粘制位)改变后新的日志

killall -1 systemd-journald    #对程序刷新

journalctl    #查看最新日志

date    #看关机前时间

reboot    #重启

journalctl    #查看是否有关机前的日志

测试:

Linux之系统日志分析、时间同步

二、时间同步

在服务器端共享时间

vim /etc/chrony.conf

29 local stratum 10    #开启时间共享功能,并设定共享级别,这个参数开启后本机不去同步别人的时间到本机

22 allow 172.25.254.0/24    #允许哪些客户端来访问本机的共享时间

systemctl restart chronyd    #重启

在客户端

vim /etc/chrony.conf

3 server 172.25.254.123 iburst    #同步ip为172.25.254.123的主机的时间

systemctl restart chronyd    #重启

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.123               10   6    17     7   -468ns[  -33us] +/-  148us

其中^代表服务,*代表同步是否成功,? 没有连接成功

注意:需要关闭服务端防火墙才可同步时间

测试:

服务端:

Linux之系统日志分析、时间同步

文件内容:

Linux之系统日志分析、时间同步

客户端:

Linux之系统日志分析、时间同步

文件内容:

Linux之系统日志分析、时间同步

查看是否同步成功:

Linux之系统日志分析、时间同步

1.时间设置

EDT    #bells时间

timedatectl    #查看现在的时间列表

Linux之系统日志分析、时间同步

timedatectl list-timezones    #查看各个时区列表

Linux之系统日志分析、时间同步

timedatectl set-timezone Asia/Shanghai    #设置时间为Asia/Shanghai时间

Linux之系统日志分析、时间同步

timedatectl set-time "2018-11-11 11:11:11"    #设置时间为2018-11-11 11:11:11

Linux之系统日志分析、时间同步

timedatectl set-local-rtc 0    #0表示使用UTC时间

timedatectl set-local-rtc 1    #1表示使用本地时间

vim /etc/adjtime    #查看使用时间

当使用本地时间时内容查看如下:

Linux之系统日志分析、时间同步