日志管理和时间同步
一、实验环境
1、需要提前关闭防火墙
systemctl disable firewalld
systemctl stop firewalld
本节实验将以两台主机为例子
ck1 172.25.42.1
ck2 172.25.42.2
二、日志journald
一、journald
journald服务名称为systemd-journald.service,我们可以通过journalctl命令对系统日志进行管理。
服务名称:systemd-journald.service
命令:journalctl
默认日志存放路径: /run/log
二、 journalctl命令的用法
一、基本命令
journalctl ##显示系统日志
-n 3 ##显示日志的最新3条
--since "2020-05-01 11:00:00" ##显示11:00后的日志
--until "2020-05-01 11:05:00" ##显示11:05前的日志
-F PRIORITY ##查看可控日志级别
-u sshd ##指定查看服务
--disk-usage ##查看日志大小
--vacuum-size=1G ##设定日志存放大小
--vacuum-time=1W ##日志在系统中最长存放时间
-f ##监控日志
_PID= ##查看指定进程号日志
二、测试
日志的最新3条:
1、查看最新的三条
journalctl -n 3
2、显示11:00后的日志:
journalctl --since "2020-04-21 11:00:00"
3、显示日志11:00到11:05:
journalctl --since "2020-04-21 11:00:00" --until "2020-05-01 11:05:00"
内容为空
三、journalctlde的高级用法
1、设定显示方式
journalctl -o ##设定日志的显示方式
short ##经典模式显示日志
verbose ##显示日志的全部字节
export ##适合传出和备份的二进制格式
json ##字典格式显示输出
列如
2、设定显示的级别
journalctl -p 显示制定级别的日志
0 #emerg 系统的严重问题日志
1 #alert 系统中立即要更改的信息
2 #crit 严重级别会导致系统软件不能正常工作
3 #err 程序报错
4 #warning 程序警告
5 #notice 重要信息的普通日志
6 #info 普通信息
7 #debug 程序拍错信息
-F PRIORITY ##查看可控日志级别
-u sshd ##指定查看服务
--disk-usage ##查看日志大小
--vacuum-size=1G ##设定日志存放大小
--vacuum-time=1W ##日志在系统中最长存放时间
-f ##监控日志
journalctl _PID=10924 _SYSTEMD_UNIT=sshd.service
例如查看重要信息的普通日志
journalctl -p 5
四、设置journald服务永久存放日志
系统中默认将日志存放在 /run/log/journal中,这种默认方式在系统重启后日志会被清理,要永久保存日志需要完成以下操作
1、查看节点号,便于与最后的实验效果对比
2、在硬盘目录下新建journal目录储存文件
3、将原本的日志采集的组赋予给新目录journal
4、更改权限,使得目录下新产生的文件的组都归属于journal的组
5、删除journal里面的多余文件
6、重启原本的日志服务
1、查看节点号,便于与最后的实验效果对比
重启后发现节点号变了,只记录了重启后的日志,说明日志不会被保留下来。
2、进行如下操作
3、查看此时的效果
4、查看重启后的的效果,发现时间和节点号都没有变化。
三、rsyslog
rsyslog服务名称为 rsyslog.service,系统内核和许多程序会产生各种错误信息、警告信息和其他的提示信息,这些信息对用户了解系统的运行状态是非常有用的,所以需要把它们保存到对应的日志文件中,以便后续进行分析和监控系统或软件的状态。Linux 系统拥有非常灵活和强大的日志功能,几乎可以保存所有的操作记录,并可以从中检索出我们需要的信息,完成这个工作的守护进程就是 rsyslog。
配置文件为/etc/rsyslog.conf
,作用是定义了将系统日志分门别类采集到指定位置
一、日志存放地址
一、日志存放地址
/var/log/messages #系统服务日志,常规信息,服务报错
/var/log/secure #系统认证信息日志
/var/log/maillog #系统邮件日志信息
/var/log/cron #系统定时任务信息
/var/log/boot.log #系统启动日志信息
配置文件:/etc/rsyslog.conf
二、修改存放日志地址
我们可以通过编辑rsyslog.service服务的配置文件 /etc/rsyslog.conf来自定义日志采集路径,即在配置文件中添加下列语句:
vim /etc/rsyslog.conf
日志类型.日志级别 日志存放路径
*.* /var/log/westos
##把系统中所有级别的日志存放westos中
*.*;authpriv.none /var/log/westos
##把系统中所有级别的日志存放到westos中
##但是authpriv不存放到westos中
///
二、日志类型
auth #用户认证
authpriv #服务认证
cron #时间任务
kern #内核类型
mail #邮件
news #系统更新信息
user #用户
三、日志级别
debug #程序排错信息
info #程序常规运行信息
notice #重要信息的普通日志
waring #程序警告
err #程序报错
crit #严重级别会导致系统软件不能正常工作
alert #系统中立即要更改的信息
emerg #系统的严重
四、rsyslog同步日志
一、利用rsylog命令,将ck1的日志同步传输到ck2 (采取udp传输)
首先在接收端ck2设置接收的udp格式,然后重启配置好的rsylog文件,关闭火墙,清空日志内容便于查看。具体如下
1、做好ck2接受端的准备
[root@ck2 ~] vim /etc/rsyslog.conf 图1、设置配置文件
[root@ck2 ~] systemctl restart rsyslog.service
[root@ck2 ~] systemctl disable --now firewalld
[root@ck2 ~] netstat -antlupe|grep rsyslog 图2、查看UDP端口是否开启
[root@ck2 ~] > /var/log/messages 清空日志方便查看信息
图1
图2
2、在发送方ck1设置传输文件类型以及发送地址,清空日志方便查看
vim /etc/rsylog.conf
systemctl restart rsyslog.service
> /var/log/messages
> logger hello
3、在发送端输入hello字符,在接收端查看效果
发送端
接收端
二:设定特定接受内容
将发送端的ip,日志生成时间,日志生成服务,日志内容同步到接送端。
日志采集格式
#WESTOS_FORMAT 格式名称
#%FROMHOST-IP% 日志来源主机IP
#%timegenerated% 日志生成时间
#%syslogtag% 日志生成服务
#%msg%: 日志内容
#\n: 换行
1、在接受端做如下设置
vim /etc/rsyslog.conf
systemctl restart rsylog.conf`
2、发送端
logger tset message
3、接收端查看效果
3.timedatectl
设定系统时间
timedatectl set-time "2020-02-13 10:41:55"
显示系统的所有时区
timedatectl list-timezones
设定系统时区
timedatectl set-timezone "Asia/Shanghai"
设定系统时间计算方式
timedatectl set-local-rtc 0|1
##0表示使用utc时间计算方式
1、查看当前时间、设置时间
注意:使用timedatectl命令更改时间设置时,需要关闭chronyd.service,否则无法设置
这里是因为为没有安装这个服务
4.时间同步服务
#服务名称: chronyd.service
#配置文件: /etc/chrony.conf
用ck1作为时间源,让ck2同步ck1时间
1、ck1时间同步端口
在ck1时间提供端口中
vim /etc/chrony.conf
///
allow 172.25.254.0/0 ##允许所有网段主机同步时间
local stratum 10 ##开启时间同步服务器功能并设定级别为10
///
systemctl restart chronyd.service
systemctl stop firewalld
2、在ck2主机时间同步接受端
vim /etc/chrony.conf
/
pool 172.25.254.100 iburst
systemctl restart chronyd
chronyc sources -v 查看同步的效果