Linux系统日志管理

Linux系统日志管理教程

Linux 的系统日志详细地记录了在什么时间,哪台服务器、哪个程序或服务出现了什么情况。不管是哪种操作系统,都详细地记录了重要程序和服务的日志,只是我们很少养成查看日志的习惯。

日志是系统信息最详细、最准确的记录者,如果大家能够善用日志,那么当系统出现问题时,我们就能在第一时间发现问题,也能够从日志中找到解决问题的方法。

Linux系统日志详解

在 CentOS 6.x 中,日志服务已经由 rsyslogd 取代了原先的 syslogd。Red Hat 公司认为 syslogd 已经不能满足工作中的需求,rsyslogd 相比 syslogd 具有一些新的特点:

  • 基于 TCP 网络协议传输日志信息。
  • 更安全的网络传输方式。
  • 有日志信息的即时分析框架。
  • 后台数据库。
  • 在配置文件中可以写简单的逻辑判断。
  • 与 syslog 配置文件相兼容。

rsyslogd 日志服务更加先进,功能更多。但是,不论是该服务的使用,还是日志文件的格式,其实都是和 syslogd 服务相兼容的,所以学习起来基本和 syslogd 服务一致。

查看系统日志状态

语法

ps aux | grep "rsyslog" | grep -v "grep"

说明

我们使用 ps 命令,查看日志服务 rsyslog 的状态。系统中的绝大多数日志文件是由 rsyslogd 服务来统一管理的,只要各个进程将信息给予这个服务,它就会自动地把日志按照特定的格式记录到不同的日志文件中。也就是说,采用 rsyslogd 服务管理的日志文件,它们的格式应该是统一的。

在 Linux 系统中有一部分日志不是由 rsyslogd 服务来管理的,比如 apache 服务,它的日志是由 Apache 软件自己产生并记录的,并没有调用 rsyslogd 服务。但是为了便于读取,apache 日志文件的格式和系统默认日志的格式是一致的。

查看系统日志状态

语法

ps aux | grep "rsyslog" | grep -v "grep"

案例

我们使用 ps 命令,查看系统日志服务状态,具体命令如下:

ps aux | grep "rsyslog" | grep -v "grep"

运行后,终端输出如下:

01_Linux系统日志服务rsyslogd详解.png

我们看到,我们使用了 ps 命令查看了系统日志 rsyslog 的服务状态。

Linux系统日志管理总结

Linux 的系统日志详细地记录了在什么时间,哪台服务器、哪个程序或服务出现了什么情况。不管是哪种操作系统,都详细地记录了重要程序和服务的日志,只是我们很少养成查看日志的习惯。