Linux日志分析
文章目录一、系统日志介绍一、系统日志介绍无论你的操作系统是 Windows 还是 Linux ,只要使用操作系统,就都会产生日志。日志可以说记录了你在PC上的一切操作。就像小时候写的日记。每天做了什么记录的清清楚楚。在现实生活中,记录日志是非常重要的,比如银行的转账记录,飞机上的黑盒子,那么将系统和应用发生的事件记录至日志中,以助于排错和分析使用...
一、系统日志介绍
无论你的操作系统是 Windows 还是 Linux ,只要使用操作系统,就都会产生日志。日志可以说记录了你在PC上的一切操作。就像小时候写的日记。每天做了什么记录的清清楚楚。
在现实生活中,记录日志是非常重要的,比如银行的转账记录,飞机上的黑盒子,那么将系统和应用发生的事件记录至日志中,以助于排错和分析使用。
日志记录的内容包括两部分:
- 历史事件:包括时间、地点、人物、事件
- 日志级别:事件的重要程度
sysklogd:
在CentOS 5 之前的版本,采用的是 sysklogd 日志管理系统服务,syslogd用于记录应用日志,klogd用于记录内核日志。但是,CentOS 5 以及之前版本的系统,已经快要随着时代的发展而退出舞台了。
rsyslog:
rsyslog是CentOS 6以后版本的系统管理服务:它提供了高性能,出色的安全性和模块化设计。当应用有限的处理时,RSYSLOG每秒可以将超过一百万的消息传递到本地目的地。即使在远程的目的地和更精细的处理中,性能通常也被认为是惊人的。
rsyslog 特性:
- 多线程
- UDP, TCP, SSL, TLS, RELP
- MySQL, PGSQL, Oracle实现日志存储
- 强大的过滤器,可实现过滤记录日志信息中任意部分
- 自定义输出格式
- 适用于企业级中继
二、rsyslog管理
日志等级:
消息 | 等级号 | 级别 | 说明 |
---|---|---|---|
EMERG | 0 | 紧急 | 会导致主机系统不可用的情况 |
ALERT | 1 | 警告 | 必须马上采取解决措施的问题 |
CRIT | 2 | 严重 | 比较严重的情况 |
ERR | 3 | 错误 | 运行出现错误,一般达到ERR等级的信息已经可以影响到服务成系统的运行了 |
WARNING | 4 | 提醒 | 可能会影响系统功能的事件 |
NOTICE | 5 | 注意 | 不会影响系统但需要注意 |
INFO | 6 | 信息 | 一般信息 |
DEBUG | 7 | 调试 | 程序或系统调试信息等 |
服务名称:
服务名称 | 说明 |
---|---|
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 可能会看的不完整。
此时,我们将配置文件改为正确的即可
更多推荐
所有评论(0)