1.系统日志的含义
系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。系统日志包括系统日志、应用程序日志和安全日志(引用自百度百科)。
2.如何管理系统日志?
1.日志的采集:
vim /etc/rsyslog.conf #编辑配置文件
*.* /var/log/westos #设置采集规则和路径
如图:
2.日志的类型:
auth #用户登陆日志(pam产生日志)
authpriv #服务认证日志(sshd认证)
kern #内核日志
cron #定时任务日志
lpr #打印机日志
mail #邮件日志
news #新闻
user #用户相关程序日志
local 1-7 #用户自定义日志
3.日志的级别:
info #常规信息
warning #警告信息
err #报错(级别低,阻止了某个工作不能正常工作)
crit #报错(级别高,阻止了整个软件或整个系统不能正常工作)
alert #需要立即修改的信息
emerg #内核崩溃
none #不采集任何日志信息
*.* #记录所有系统日志
注:设置采集规则时可以自由搭配;
4.日志的远程发送:
发送方: vim /etc/rsyslog.conf 编辑发送对象
systemctl restart rsyslog.service 重启
> /var/log/messages 清空(更直观)
cat /var/log/messages 查看发现什么都没有
logger message 打印一个日志信息
cat /var/log/messages 再次查看
Oct 9 22:25:04 node1 root: message 有结果了
接受方: vim /etc/rsyslog.conf 打开接受端口
systemctl stop firewalld 关闭火墙
systemctl restart rsyslog.service
> /var/log/messages
cat /var/log/messages
可以看到来自远程主机的日志信息
如图:
5.设置日志打印格式:
vim /etc/rsyslog.conf
$template WESTOS, "%FROMHOST-IP% %timegenerated% %syslogtag% %msg%\n" #设置格式
*.info;mail.none;authpriv.none;cron.none /var/log/messages;WESTOS
也可以修改默认全局:
#$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$ActionFileDefaultTemplate WESTOS
%FROMHOST-IP% #主机ip
%timegenerated% #日志时间
%syslogtag% #日志信息
%msg% #日志内容
\n #换行
如图:在不改变日志打印格式的情况下先远程同步一次日志:
然后我们改变日志打印格式:
看看发送端的日志信息:
再看看接受端日志格式:
结果非常明显;
注:设置日志打印格式时,要在哪个终端上查看日志,就设置它的日志打印格式。
3.时间管理
1.
timedatectl #时间管理命令
Local time: Wed 2019-10-23 05:24:30 CST #本地时间
Universal time: Tue 2019-10-22 21 :24:30 UTC #格林威治时间
RTC time: Tue 2019-10-22 21 :24:28 #硬件(芯片)时间
Time zone: Asia/Shanghai (CST, +0800) #时区
NTP enabled: no #关闭同步网络事件
NTP synchronized: no #是否同步过网络时间
RTC in local TZ: no
DST active: n/a
2.管理系统时间:
timedatectl
status #显示当前时间信息
set-time #设定当前时间
set-timezone #设置时区
set-local-rtc 0 开启
1 关闭 #设定是否使用UTC时间
set-local-ntp 1 | true 开启
0 | false 关闭 #是否同步网络时间
list-timezones #查看支持的时区
注:在UTC开启的情况下才能同步网络时间
如图:
3.同步时间:
在服务端:
vim /etc/chrony.conf
22 29 行编辑允许同步的主机
重启服务
在客户端:
随意当前主机改变时间
vim /etc/chrony.conf
3 行编辑要同步的主机ip
关闭火墙
重启服务
测试:
chronyc sources -v
如图,服务端:
客户端:
测试:
4.journal管理日志
1.查看日志(在内存中)
journalctl #日志查看工具
-n 3 #查看最近三条日志
-p err #查看错误日志,p后也可跟其他
-o verbose #查看日志详细参数
--since #查看从某时间(包含)开始的日志
--until #查看从某时间之前的日志
图示:
2.用journal将日志保存到硬盘:
mkdir /var/log/journal 建立日志保存路径
chgrp systemd-journal /var/log/journal 设置日志保存路径所属组
chmod g+s /var/log/journal 这个目录下所有新建文件都属于journal的组
killall -1 systemd-journald 加载日志文件
ls /var/log/journal 查看日志文件路径下的id
journalctl 查看当前日志
reboot 重启
journalctl 查看日志,能看到重启之前的日志
图示:
重启:
查看:
(前一张图是由于上一个实验操作完没有重置虚拟机导致时间有错误,但通过第二张图重启后的时间和采集日志时间对比可以明显看出实验结果,所以整个实验的操作是没有问题的。)