实验环境
服务端:172.25.254.123(13,网桥)
客户端:172.25.254.223(12)
实验过程的注意事项:关闭防火墙
systemctl stop firewalld
journald
服务名称:systemd-journald.service
默认日志存路径:/run/log
systemctl status systemd-journald.service
实验一:journalctl命令的用法
(1)指定时间显示日志
#日志最新的3条记录
journalctl -n 3
#显示23点之后的日志
journalctl --since "23:00:00"
#显示日志到11点之后
journalctl --until "11:00:00"
#显示从23:30到23:40的日志记录
journalctl --since "23:30:00" --until "23:40:00"
(2)指定日志的显示方式
#经典模式
journalctl -o short
#显示日志的全部字节
journalctl -o verbose
#适合传出和备份的二进制格式
journalctl -o export
#Java的方式显示日志
journalctl -o json
(3)-p 显示日志级别
journalctl -p 0 #emereg,系统崩溃,系统的严重问题日志
journalctl -p 1 #alert,系统中立即要更改的信息,系统崩溃
journalctl -p 2 #crit,异常,严重级别会导致系统软件不能工作
journalctl -p 3 #err,程序报错
journalctl -p 4 #warning,程序警告
journalctl -p 5 #notice,重要信息的普通正常日志
journalctl -p 6 #普通信息
journalctl -p 7 #debug,程序排错信息
(4)-F PRIORITY 查看日志可用级别
#查看日志可用级别
journalctl -F PRIORITY
(5)-u xxxxx 指定查看服务
#查看sshd的服务日志
journalctl -u sshd
(7)–disk-usage 查看日志大小,用了多少硬盘
journalctl --disk-usage
(8)日志回滚vacuum
#设定日志存放的大小,超过2G,则删除
journalctl --vacuum-size=2G
#设定日志在系统中最长的存放时间,超过一周w,则删除
journalctl --vacuum-time=1W
(9)-f 监控日志(比如:查看谁登陆了服务端)
journalctl -f
(10) 指定内容查看日志
(通过junrnalctl -o verbose 查看_后面可以跟什么内容)
#查看某一进程日志
journalctl _PID=xxxx
#查看系统某一服务日志
journalctl _systemd_unit=sshd.service
journalctl _BOOT_ID=.......
实验2:用journald服务永久保存日志
重启系统后,日志会更新(之前的内容清除),想要永久保存日志,可以将日志保存到硬盘
mkdir /var/log/journal
chgrp systemd-journal /var/log/journal
chmod 2775 /var/log/journal
ls -ld /var/log/journal
ls /var/log/journal
在linux主机里
用超级用户,打开第二个主机
设定ip(nm-connection-editor)
关闭防火墙,在2机里面ping1
虚拟机开启时,不要更改系统网卡设置,会损坏硬件
实验3:虚拟机的journald服务
rsyslog 服务器开启:将日志采集到硬盘
systemctl restart sshd
tail /var/log
> /var/log
cat
- 服务名称:rsyslog.service
日志目录 | 注释 |
---|---|
/var/log/messages | 系统服务日志,常规信息,服务报错 |
/var/log/secure | 系统认证信息日志 |
/var/log/maillog | 系统邮件日志信息 |
/var/log/cron | 系统定时任务信息 |
/var/log/boot.log | 系统启动日志信息 |
-
配置文件:/etc/rsyslog.conf
-
日志类型.日志级别
xxxx.xxxx
ssh:服务认证
日志类型 | 注释 |
---|---|
auth | 用户认证 |
authpriv | 服务认证 |
cron | 时间任务 |
kern | 内核类型 |
邮件 | |
news | 系统更新信息 |
user | 用户 |
日志级别 | 注释 |
---|---|
debug | 程序排错信息 |
info | 程序常规运行信息 |
notice | 重要信息的普通日志 |
warning | 程序警告 |
err | 程序报错 |
crit | 严重级别会导致系统软件不能正常工作 |
alert | 系统中立即要更改的信息 |
emerg | 系统的严重问题日志 |
none | 不采集 |
实验一:自定义日志采集路径
(* .* /var/log/westos (所有类型的文件放在westos中)
authpriv.none /var/log/westos (authpriv不存放在westos)
node2 去远程登录 node1
node1的日志记录了下来
实验二:日志的远程同步(如何查看很多服务器的日志)
step1:实验环境:node1负责接受,node2负责推送日志(发送方,@172.25.254.223)
man 5 conf #查看用法
/romote
step2:传送自己的日志时,不需要确定接受主机是否在,只负责投递,因此,采用UDP协议
传输协议 | 特点 |
---|---|
TCP | 稳定,三次握手 |
UDP | 只负责发信息,传输信息,传输快 |
RELP | 保存在本机 |
#关闭防火墙
systemctl disable --now firewalld
step3:修改配置文件,打开UDP端口
vim /etc/rsyslog.conf
#删除19,20行的注释符
#在接受方node1开启UDP端口514
step4:接收方和发送方都清空日志
step5:用logger在接收方node2生成日志
#生成日志传输
logger test
step6:监控接收方
#用tail -f messages 监控node1
watch -n 1 'tail -f messages'
实验三:如何更改日志采集格式
step1:更改接受方的日志采集规则
WESTOS “格式”
timedatectl
远程登陆2台虚拟机node1和node2,可以 init 3 关闭图形
- 查看时间:timedatectl
local time Unversral time事实
RTC 硬件时间bios的时间
UDC方式计算时间,系统时间是在硬件时间加上时区值
- timedatectl 的用法
#修改系统时间
timedatectl set-time "2021-1-21 9:25:00"
#显示所有时区
timedatectl list-timezones
#修改时区,默认"Asia/Shanghai"
timedatectl set-timezone "Asia/Tokyo"
#是否使用本地RTC时间,0:用 UTC,1:使用,有风险,因为认证有时间戳
tiemdatectl set-local-rtc 0|1
时间同步服务
服务名称:shronyd.service
配置文件:/etc/chrony.conf
实验:同步两台主机的时间
方法:时间不好统一,可以由一台主机共享时间
node1:获取时间,作为客户端
node2:共享时间,作为服务端,需要关闭防火墙
step1:服务端 :在时间服务其中编辑文件
vim /etc/chrony.conf
在该文件第23行,allow 0.0.0.0/0(允许所有用户访问,我改成了172.25.254.123/0,仅允许node1查看node2的时间)
在该文件第26行,10 表示当前主机服务器的时间级别,本地作为其他主机的时间源
step2:客户端node1 :需要编辑同样的文件
vim /etc/chrony.conf
第3行:pool xxxxxxxxxx(网址) ibrust
将网站写成自己的(将获得时间源的地址改成服务端node2的地址172.25.254.223)
客户端再次查看是否同步时间 chronyc sources -v
^:服务端的IP地址
*:已经同步
step3:实验可能存在的问题,修改RTC时间
#把系统时间同步到硬件
clock -w
#把硬件时间同步到系统
clock -s