Linux中的日志管理
前言
实验环境:需要两台主机并保证这两台主机可以互相通信,一台作为服务器,一台作为客户端。为了保证正常通信,需要先关闭火墙systemctl disable --now firewalld。
日志:记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。系统日志包括系统日志、应用程序日志和安全日志。
一、journald服务
journald服务名为systemd-journald.service,是一个收集并存储各类日志数据的系统服务,借用该服务,我们可以通过journalctl命令对系统日志进行管理。
默认日志存放路径为:/run/log
1.journalctl 命令的用法
2.用journald服务永久存放日志
系统中默认日志在:/run/log/journal中
默认方式在系统重启后日志会被清理,要永久保存日志请完成以下操作:
mkdir /var/log/journal
chgrp systemd-journal /var/log/journal
chmod 2775 /var/log/journal
systemctl restart systemd-journald.service
更改新建目录的用户组的意义在于 :使systemd-journald.service服务能识别 /var/log/journal 下的文件!
当服务重启日志存放路径会被指定到/var/log/journal路径下。
测试:
(1)在操作以上步骤之前查看日志
(2)重启系统reboot
(3)再次查看日志
(4)可以看到日志是不会被保存下来的只能看到重启之后的日志
(5)完成以上操作后再次重启系统可以看到日志是被保存下来的
二、rsyslog服务管理日志
服务名称:rsyslog.service
配置文件:/etc/rsyslog.conf
将系统日志分门别类采集到指定位置,具体内容如下:
日志存放路径:
/var/log/messages ##系统服务日志/常规信息/服务报错
/var/log/secure ##系统认证信息日志
/var/log/maillog ##系统邮件日志
/var/log/cron ##系统定时任务日志
/var/log/boot.log ##系统启动日志
1.自定义日志采集路径
日志类型.日志级别 日志存放路径
*.* /var/log/westos ##把系统中所有级别的日志存放westos中
*.*;authpriv.none /var/log/westos ##把系统中所有级别的日志存放到westos中,但是authpriv不存放到westos中
实验:
(1)修改配置文件,重启服务,把系统中所有级别的日志存放在westos中
(2)从另一个shell里登录主机root用户,查看westos中的日志,此时日志中有服务认证信息
(3)修改配置文件,把系统中所有级别的日志存放在westos中,但authpriv不存放到westos中,重启服务,再次执行登录操作,此时日志中没有服务认证信息。
2、日志的远程同步
2…如何更改日志采集格式
通过在配置文件中 /etc/rsyslog.conf 编写日志格式相关内容从而自定义日志的采集格式
编写内容格式为:
$template WESTOS, "%timegenerated%
%syslogtag% %msg% %FROMHOST-IP%\n"
日志格式参数:
WESTOS ##格式名称(名称自定义但须大写)
timegenerated ##日志生成时间
syslogtag ##日志生成的服务
msg ##日志内容
FROMHOST-IP ##日志来源的主机IP
\n ##换行
(未完待续)