目录
首先systemctl stop firewalld
1.journald
服务名称:systemd-journald.service 如果关掉不能采集日志
查看服务状态确认开启
journalctl ##日志分析工具
默认日志存放路径: /run/log
如果删除system.journal 如果重启服务会重新生成 机器码
实验1 journalctl命令的用法
journalctl
-n 3 ##日志的最新3条
--since "2020-05-01 11:00:00" ##显示11:00后的日志
--until "2020-05-01 11:05:00" ##显示日志到11:05
-o ##设定日志的显示方式
# short ##经典模式显示日志
# verbose ##显示日志的全部字节(全部信息)
# export ##适合传出和备份的二进制格式
# json ## js格式显示输出(一般用专用软件分析时需要的的格式)
-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=894 查看日志sshd.service
实验2 用journald服务永久存放日志
系统中默认日志在:/run/log/journal中
默认方式在系统重启后日志会被清理要永久保存日志请完成以下操作:
mkdir /var/log/journal ##建立一个目录
chgrp systemd-journal /var/log/journal ##改变拥有组
chmod 2775 /var/log/journal ##让新建的文件都自动归属到这个组
systemctl restart systemd-journald ##重启服务
当服务重启日志存放路径会被制定到: /var/log/journal
测试:
1.在操作以上步骤之前查看日志
2.重启系统
3.再次查看日志
4.可以看到日志是不会被保存下来的只能看到重启之后的日志
5.完成以上操作后再次重启系统可以看到重启之前日志是被保存下来的
2.rsyslog 日志采集工具
服务名称:rsyslog.service
日志存放:
/var/log/messages #系统服务日志,常规信息,服务报错
/var/log/secure #系统认证信息日志
/var/log/maillog #系统邮件日志信息
/var/log/cron #系统定时任务信息
/var/log/boot.log #系统启动日志信息
重启之后会重新生成 ;若关闭服务之后则查看不到
配置文件:/etc/rsyslog.conf
####实验1.自定义日志采集路径######
vim /etc/rsyslog.conf
日志类型.日志级别 日志存放路径
*.* (任意类型任意级别日志) /var/log/westos ##把系统中所有级别的日志存放到westos中
*.*;authpriv.none /var/log/westos ##把系统中所有级别的日志存放到westos中
##但是authpriv不存放到westos中
test1:
vim /etc/rsyslog.conf 写入任意类型任意级别日志放在 /var/log/westos
重启服务,让/var/log/westos文件变空,使用100的主机连接一次就会有记录出现
然后vim /etc/rsyslog.conf 写入任意类型任意级别日志放在 /var/log/westos但是authpriv不存放到westos中
重启服务之后连接此主机就会发现没有服务认证消息出现
日志类型 "."前面的
auth #用户认证
authpriv #服务认证
cron #时间任务
kern #内核类型
mail #邮件
news #系统更新信息
user #用户
日志级别" .“后面的
debug #程序排错信息
info #程序常规运行信息
notice #重要信息的普通日志
waring #程序警告
err #程序报错
crit #严重级别会导致系统软件不能正常工作
alert #系统中立即要更改的信息
emerg #系统的严重问题日志
none #不采集
实验2.日志的远程同步
.1)在100主机中设定接受所有人的日志
在接收端100 中 vim /etc/rsyslog.conf 打开udp的设置 (利用网络发送)不需要确定目的主机用udp
19 module(load="imudp") ##打开日志接受插件
20 input(type="imudp" port="514") ##指定插件使用接口
重启systemctl restart rsyslog.service
systemctl stop firewalld
查询端口:
然后> /var/log/messages
2)在发送端200中 vim /etc/rsyslog.conf 写入
*.* @172.25.254.100 ##把系统中的所有日志通过网络发送给172.25.254.100
重启systemctl restart rsyslog.service
@ 表示使用udp传输日志
@@ 表示使用tcp传输日志
@172.25.254.100 把本机日志用udp的传输方式发送到172.25.254.100主机
test:
在主机200中 > /var/log/messages
logger westos test ##写入信息
cat /var/log/messages 查看
在接收方100主机中可以接受到200产生的日志
实验3.如何更改日志采集格式
1定义日志采集格式
$template WESTOS, "%FROMHOST-IP% %timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
WESTOS: 格式名称
#%FROMHOST-IP%: 日志来源主机IP
#%timegenerated%: 日志生成时间
#%syslogtag%: 日志生成服务
#%msg%: 日志内容
#\n: 换行
2设定日志采集格式应用
vim /etc/rsyslog.conf (把messages日志类型的保存形式改成WESTOS形式)
显示日志来源主机的ip
vim /etc/rsyslog.conf
显示日志生成时间,主机Ip.服务内容
更改默认 #vim /etc/rsyslog.conf
module(load="builtin:omfile" Template="WESTOS") ##默认采用WESTOS格式(注释掉原来的)是把所有的日志类型的保存形式改成WESTOS形式
保存之后 systemctl restart rsyslog.service,写入westos以WESTOS格式显示
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)
##0表示使用utc时间计算方式
chronyd.service 时间同步服务
设定系统时间之前systemctl stop chronyd.service
Local time: Sat 2021-10-30 15:34:01 CST ##当前系统时间
Universal time: Sat 2021-10-30 07:34:01 UTC ##世界时间
RTC time: Sat 2021-10-30 07:34:02 ##系统中硬件时间
Time zone: Asia/Shanghai (CST, +0800) 时区
System clock synchronized: no ##当前时间是否同步过时间同步服务器
NTP service: active ##时间服务器是否打开
RTC in local TZ: no ##当前时间是否作为硬件时间
timedatectl set-timezone "Asia/Shanghai"
4.时间同步服务
服务名称: chronyd.service
#配置文件: /etc/chrony.conf
目的:让主机200同步100上面的时间
1)在服务主机100上 vim /etc/chrony.conf
写入 allow 0.0.0.0/0 ##允许0.0.0.0网段主机同步时间
local stratum 10 ##开启时间同步服务器功能并设定级别为10
执行systemctl restart chronyd.service
2)在测试主机200上 vim /etc/chrony.conf
修改 pool 172.25.254.119 iburst
systemctl restart chronyd.service
chronyc sources -v 使用chronyc 命令查看时间效果:
与服务主机时间同步