一、系统日志介绍

无论你的操作系统是 Windows 还是 Linux ,只要使用操作系统,就都会产生日志。日志可以说记录了你在PC上的一切操作。就像小时候写的日记。每天做了什么记录的清清楚楚。

在现实生活中,记录日志是非常重要的,比如银行的转账记录,飞机上的黑盒子,那么将系统和应用发生的事件记录至日志中,以助于排错和分析使用。

日志记录的内容包括两部分:

  1. 历史事件:包括时间、地点、人物、事件
  2. 日志级别:事件的重要程度

sysklogd:
在CentOS 5 之前的版本,采用的是 sysklogd 日志管理系统服务,syslogd用于记录应用日志,klogd用于记录内核日志。但是,CentOS 5 以及之前版本的系统,已经快要随着时代的发展而退出舞台了。

rsyslog:
rsyslog是CentOS 6以后版本的系统管理服务:它提供了高性能,出色的安全性和模块化设计。当应用有限的处理时,RSYSLOG每秒可以将超过一百万的消息传递到本地目的地。即使在远程的目的地和更精细的处理中,性能通常也被认为是惊人的。

rsyslog 特性:

  • 多线程
  • UDP, TCP, SSL, TLS, RELP
  • MySQL, PGSQL, Oracle实现日志存储
  • 强大的过滤器,可实现过滤记录日志信息中任意部分
  • 自定义输出格式
  • 适用于企业级中继

二、rsyslog管理

日志等级:

消息等级号级别说明
EMERG0紧急会导致主机系统不可用的情况
ALERT1警告必须马上采取解决措施的问题
CRIT2严重比较严重的情况
ERR3错误运行出现错误,一般达到ERR等级的信息已经可以影响到服务成系统的运行了
WARNING4提醒可能会影响系统功能的事件
NOTICE5注意不会影响系统但需要注意
INFO6信息一般信息
DEBUG7调试程序或系统调试信息等

服务名称:

服务名称说明
auth(LOG_AUTH)安全和认证相关消息 (不推荐使用authpriv替代)
authpriv(LOG_AUTHPRIV)安全和认证相关消息(私有的)
cron (LOG_CRON)系统定时任务cront和at产生的日志
daemon (LOG_DAEMON)与各个守护进程相关的曰志
ftp (LOG_FTP)ftp守护进程产生的曰志
kern(LOG_KERN)内核产生的曰志(不是用户进程产生的)
Iocal0-local7 (LOG_LOCAL 0-7)为本地使用预留的服务
lpr (LOG_LPR)打印产生的日志
mail (LOG_MAIL)邮件收发信息
news (LOG_NEWS)与新闻服务器相关的日志
syslog (LOG_SYSLOG)存syslogd服务产生的曰志信息(虽然服务名称己经改为reyslogd,但是很多配罝依然沿用了syslogd服务的,所以这里并没有修改服务名称)
user (LOG_USER)用户等级类别的日志信息
uucp (LOG_UUCP)uucp子系统的日志信息,uucp是早期Linux系统进行数据传递的协议,后来也常用在新闻组服务中

通常的日志文件的格式:

日志文件有很多,如: /var/log/messages,cron,secure等,基本格式都是类似的。

格式:事件产生的日期时间 主机 进程(pid):事件内容

在这里插入图片描述rsyslog 相关文件:

  • 程序包:rsyslog
  • 主程序:/usr/sbin/rsyslogd
  • CentOS 6:/etc/rc.d/init.d/rsyslog {start|stop|restart|status}
  • CentOS 7,8:/usr/lib/systemd/system/rsyslog.service
  • 配置文件:/etc/rsyslog.conf,/etc/rsyslog.d/*.conf
  • 库文件: /lib64/rsyslog/*.so

rpm -q rsyslog 查看有没有安装rsyslog,没有就yum安装

rsyslog 配置文件:/etc/rsyslog.conf

由三部分组成:

  • MODULES:相关模块配置
  • GLOBAL DIRECTIVES:全局配置
  • RULES:日志记录相关的规则配置

三、实践

1.将ssh服务日志单独存放

在这里插入图片描述
在这里插入图片描述
编辑rsyslog.conf文件
在这里插入图片描述
在这里插入图片描述
:wq保存退出
在这里插入图片描述
:wq保存退出

注:修改完服务的配置文件,需要将服务重启!!!一定要!!!
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.远程日志

远程日志,即通过网络,将本地的日志远程备份到另一台机器,这样,就算本机系统崩溃,我们可以查看另一台机器备份的日志,来排查故障。

我们可以先来理一下思路:

假设机器一需要将日志备份到机器二,那么机器一是发送方,他在rsyslog的配置文件中需要添加机器二的地址;机器二作为接收方,需要开启一个固定的端口来接收机器一发送的数据。

在这里插入图片描述
在这里插入图片描述
这里默认是将机器一的日志备份到机器二上的 /var/log/messages文件中
在这里插入图片描述
再次强调:修改完服务的配置文件,需要将服务重启!!!一定要!!!
在这里插入图片描述

在这里插入图片描述
多台机器在这里就不演示了,原理一样的,给大家放一张图参考即可。
在这里插入图片描述

3.排错

我们需要注意,如果配置文件中某些配置写错了,在重启服务的时候,会导致服务直接起不来。我们使用第1个将ssh服务日志另外备份为例
在这里插入图片描述
在这里插入图片描述
systemctl status 服务名 ,这条命令只会提示我们服务有错,而不会显示具体问题。所以,我建议使用 journalctl -xe命令,我们可以将其导入一个文件中,去cat文件,因为直接journatctl -xe 可能会看的不完整。
在这里插入图片描述
在这里插入图片描述
此时,我们将配置文件改为正确的即可
在这里插入图片描述
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐