文章目录
前言:我们都知道,在系统中,日志是非常重要的,因为系统不会讲话,所以会将重大事件用文字记录下来,在日志程序中体现出来,日志分为很多种级别,日志是由各个程序生成的,日志的采集是由journald或rsyslog这两个程序采集的,不同程序采集日志的方式是不一样的,在rhel7之前,只有rsyslog这一个采集程序,而在rhel7及之后由rsyslog和journald负责日志采集。
实验环境
两台虚拟机:
rhel7的ip:192.168.0.116
rhel8的ip:192.168.0.115
在rhtl7虚拟机中去连接rhtl8(ssh root@192.168.0.115 ),从而得到rhtl8的环境
一、journald
日志的服务名称: systemd-journald.service
查看journald服务状态:systemctl status systemd-journald.service
默认日志存放路径:“/run/log/”,每次重启系统后会清空
日志查看命令:journalctl,该命令查看的默认文件在“/run/log/”下
实验一、journalctl命令的用法
1、journalctl #直接查看日志
2、journalctl -n 3 #查看日志的最新三条
3、journalctl --since “2020-02-13 17:00” #显示17:00后的日志
4、journalctl --since “2020-02-13 17:00” --until “2020-02-13 17:00”
#显示17:00~17:01的日志
5、journalctl -o 参数 #设定日志的显示方式
short #经典模式显示日志(也是默认的显示方式)
verbose #显示日志的全部字节
export #适合传输和备份的二进制格式
json #js格式显示日志
6、journalctl -p #显示指定级别的日志
级别有:
0 emerg 系统的严重问题日志
1 alert 系统中立即要更改的信息
2 crit 严重级别会导致系统软见不能正常工作
3 err 程序报错
4 warning 程序警告
5 notice 重要信息的普通日志
6 info 普通信息
7 debug 程序排错信息
例如:journalctl -p emerg/0 #查看系统崩溃日志
7、journalctl -F PRIORITY #查看可控日志级别
8、journalctl -u #指定查看服务
例如:journalctl -u sshd #查看sshd服务的日志
9、journalctl --disk-usage #查看日志大小
10、journalctl --vacuum-size=1G #设定日志存放大小
11、journalctl --vacuum-time=1W #设定日志在系统中最长存放时间
注意:10、11两条命令可以让日志回滚,但都是临时的,当系统重启以后会消失
永久设置需要修改系统的配置文件,“vim /etc/systemd/journald.conf”
12、journalctl -f #实时监控日志
1、直接查看日志
2、查看日志的最新三条
3、查看2020-02-15 6:15后的日志
4、显示6:30到6:31之间的日志
5、显示日志的全部字节
6、显示适合传输和备份的二进制格式
7、js格式显示日志
8、journal -p 显示指定级别的日志(级别0~7)
journal -p 0=journal -p emerg
9、查看可控日志级别
10、指定查看sshd服务的日志
11、查看日志大小
12、查看日志存放大小和在系统中最长存放时间(回滚,但是此设定是暂时的,重启以后会失效)
12、要永久设置回滚需要修改系统文件,“vim /etc/systemd/journald.conf”,部分配置文件如下:
13、指定条件查看日志:
(1)、journal -o verbose查看日志的全部字节
(2)、journal PID=10722 SYSTEMD UNIT=sshd.service查看进程id为10722的ssh服务的日志
实验二、用journalctl服务永久存放日志
系统中默认日志存放在:/run/log/journal中
默认方式:在系统重启后日志会被清理,要永久保存日志需要完成以下操作:
1、建立一个目录:mkdir /var/log/journal #日志存在该文件夹下可以将它存到硬盘
2、对目录的权限进行修改:
chgrp systemd-journal /var/log/journal
#修改文件的拥有组为systemd-journal,保证这个目录中所有的文件都归属于目录的使用者
chmod 2774 /var/log/journal
3、systemctl restart systemd-journald.service
#重启服务,当服务重启日志存放路径会被指定到:/var/log/journal
测试:
4、reboot
#重启系统后,用journalctl命令查看日志,如果能看到文件建立时间到关机时间的日志,
说明日志永久保留成功
二、rsyslog
服务名称: rsyslog.service
查看rsyslog服务:systemctl status rsyslog.service
日志存放:rsyslog在采集日志时将日志分类存放
默认日志存放在以下文件中:
/var/log/messages #存放服务日志,常规信息,服务报错
/var/log/secure #系统认证信息日志
/var/log/maillog #系统邮件日志信息
/var/log/cron #系统定时任务信息
/var/log/boot.log #系统启动日志信息
注意:1、这些日志可以直接用cat命令查看,rsyslog没有对外提供
第二个类似于systemd查看工具去查看,而是直接用文件的查看方式去查看
2、rsyslog命令的管理都是依赖于rsyslog的配置文件
配置文件存放位置:/etc/rsyslog.conf
实验一、自定义日志采集路径
1、vim /etc/rsyslog.conf #修改日志配置文件
修改格式:日志类型.日志级别 日志存放路径
例如:*.* /var/log/westos #把系统中所有类型所有级别的日志存放到westos文件中
日志类型主要有:auth #用户认证
authpriv #服务认证
cron #时间任务
kern #内核类型
mail #邮件
news #系统更新信息
user #用户
日志级别有:
emerg #系统的严重问题日志
alert #系统中立即要更改的信息
crit #严重级别会导致系统软见不能正常工作
err #程序报错
warning #程序警告
notice #重要信息的普通日志
info #普通信息
debug #程序排错信息
none #什么都不记录
例如:*.*;authpriv.none
#把系统中所有级别的日志存放到westos中,但是不存放authpriv
1、修改日志配置文件,文件部分内容如下:
vim /etc/rsyslog.conf
2、给配置文件的第55行添加内容:
*.* /var/log/westos #把系统中所有类型所有级别的日志存放到westos文件中
3、重启服务,然后查看/var/log/messages文件和/var/log/westos文件的内容,发现两个文件里会产生同样的日志
systemctl restart rsyslog.service
cat /var/log/messages
cat /var/log/westos
实验二、如何更改日志采集格式
1、查看默认的日志采集格式如下图:cat /var/log/messages
2、修改日志格式:
例如:
$template WESTOS,“%timegenerated% %FROMHOST-IP% %stslogtag% %msg%\n”
#这种格式的名字为WESTOS(随便起),该名字所代表的格式为
“日志生成时间 生成日志的主机IP 生成日志的服务名称 日志内容 ”
指定哪个文件使用这种采集格式,
例如:此处修改“/var/log/messages”文件采用这种格式
3、修改后的日志格式如下图所示:
三、timedatectl
设置系统时间
1、
timedatectl #查看时间
Local time:当前时间(本地时间)
Universal time:伦敦时间
RTC time:系统的硬件时间
2、修改当前系统时间
timedatectl set-time “时间”
例如:timedatectl set-time "2020-02-15 15:25:30"
3、列出所有系统可用的时区
timedatectl list-timezones
4、设定时区
timedatectl set-timezone "America/New_York" #设定时区为纽约
5、设定系统时间计算方式
1、vim /etc/adjtime #可以看到时间模式的设定
2、timedatectl set-local-rtc 1 #使硬件时间使用的是本地时间(使用普通时间计算方式)
timedatectl set-local-rtc 0 #使硬件时间使用的是世界时间(使用UTC时间计算方式)
6、
四、时间同步服务
怎样才能使所有主机中的时间保持一致,我们可以把其中一台主机的时间共享出来,其他主机去看该主机共享的时间,并且同步到自己的主机中,让这些主机的时间保持一致,这样在做认证和日志分析的时候才能不受时间影响
服务名称:chronyed.service
配置文件:/etc/chrony.conf
实验一、远程同步时间
1、可以看到rhel7中的时间为 15:37:26,而rhel8主机中的时间为 23:37:52,怎样才能使这两台主机的时间保持一致。使rhel7作为时间源,让rhel8主机去同步rhel7的时间
2、在rhel7中修改配置文件:
1、vim /etc/chrony.conf
2、修改第26行、29行
26:允许主机ip的前三位和该行指定的前三位相同,那么该主机就可以来同步rhel7的时间
29:开启时间同步服务器功能并设定级别为10
修改前:
修改后:
4、关闭rhel7的防火墙并重启服务
5、在rhel8中:
1、systemctl start chronyd.service #开启chrony服务
2、chronyc source -v #查看rhel8同步了哪台主机的时间
6、编辑配置文件
编辑前:
编辑后:图中的iburst表示当服务重启的时候立即同步时间到本台主机
7、重启服务,可以看到时间已经变成了rhel7中的时间,并且可以看到同步了rhel7的时间