软件的不断升级,提供的服务和功能也越来越强大,日志服务是Linux系统的重要服务,rsyslog服务是日志服务的一种,但它存在诸多的问题。因此,journal服务开始不断替代rsyslog服务,它提供了将日志存放在硬盘中等诸多功能。下面让我们看一下journal服务。
一、rsyslog中日志格式的设定
日志的接受方和发送方的日志同步可以看一下上一篇系统日志管理
vim /etc/rsyslog.conf ##更改配置文件
systemctl restart rsyslog ##重启服务
- 更改日志配置文件
设定日志的格式,其中日志格式的名称可以任意取,同时设置接收的所有日志信息的格式为此格式
$temlate 名称, "%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
显示日志时间 日志来源的ip 日志记录目标 日志信息 换行
$ ActionFileDefautlTemplate 名称
*.* /var/log/文件名称;名称
从下图我们可以看出接收方的日志格式,已经变成我们设定的格式,需要注意的是,接收方查看的日志文件为/var/log/westos,因为在之前我们已经设定好所有发送方的日志信息在/var/log/westos文件中接受。
> /var/log/messages ##清空日志信息
logger test ##产生日志信息
cat /var/log/messages ##查看日志信息
查看系统接受日志信息的文件,格式已经修改成我们设置的样式
二、时间同步服务
服务名称chronyd
- 服务端
vim /etc/chrony.conf ##更改配置文件
allow ip地址 ##允许那台主机同步时间
local stratum 10 ##本机不同步任何主机的时间,只作为时间源
systemctl restart chronyd ##重启服务
systemctl stop firewalld ##关闭防火墙,避免数据包被阻挡
2. 客户端
vim /etc/chrony.conf ##更改配置文件
server ip地址 iburst ##本机立即同步服务端的时间
systemctl restart chronyd ##重启服务
chronyc sources -v ##查看同步是否成功
3. 测试
使用date命令将服务端的时间修改,让客户端的时间同步服务端
注意:如果修改的时间未同步,可以查看服务端的防火墙是否关闭,防火墙可以将外部的数据包拦截,会影响实验。重启一下chronyd服务,再次使用date命令查看时间,时间已同步。date命令修改时间不会同步到硬件上,要将硬件上的时间也修改可以使用timedatectl命令。
三、timedatectl命令
timedatectl status ##显示当前时间信息,status可以省略
timedatectl set-time ##设定当前时间
timedatectl set-timezone ##设定当前时区
timedatectl list-timezones ##查看支持的所有时区
timedatectl set-local-rtc 1|0 ##设定是否使用utc时间
四、journal日志服务
- journalctl命令管理日志
journalctl ##日志查看工具
journalctl -n 3 ##查看最近3条日志
journalctl -p err ##查看错误的日志
journalctl -o verbose ##查看日志详细参数
journalctl --since ##查看从什么时间开始的日志
journalctl --until ##查看到什么时间为止的日志
journalctl --since 时间 --until 时间 ##查看从什么时间开始到什么时间结束的日志
journalctl _PID=86 _COMM=systemd-journal ##查看具体为某一信息的日志
- 将日志信息保存到硬盘中
默认systemd-journald是不能将系统日志保存到硬盘的,那么关机后再次开机,之前的日志信息将会被清除,我们只能看到本次开机后产生的日志。那么,我们该怎样解决这样的问题呢?
(1)创建一个存放日志信息的目录,并且将所有的日志信息都归属到systemd-journal中
(2)开启systemd-journald服务,通过ls /var/log/journal/我们可以看到,日志信息存放的硬盘id
(3)查看最近3条的日志信息,记住这个时间,通过reboot命令重启虚拟机
(4)开机后,journalctl查看所有日志信息,我们可以看到关机之前的日志信息,则证明我们已经将日志信息存放到硬盘中