在下面的教程中,我们将分析Linux中的特定日志文件和Windows Event Viewer中的日志。另外一章将通过Systemd进行日志分析。
Linux日志文件
不幸的是,分发之间的差异很大,可以从特定的日志文件中提取信息。在下文中,我们将分析Debian 8和centos 7.2的日志文件结构。查找日志文件的第一个位置应始终为/ var / log /。根据它们的配置,apache,nginx或类似的应用程序也会将日志文件写入此文件夹。系统日志规范和位置可以在文件/etc/rsyslog.conf中找到。
Debian 8:
/var/log/auth.log
可以在此日志文件中找到对系统进行的成功和失败身份验证的日志。当用户通过sudo调用命令时,也会记录该日志。
/ var / log / messages
该文件包含常规系统信息的日志条目,此外,您还将找到系统新贵日志。
/ var / log / dmesg或dmesg
可以使用dmesg读取内核环形缓冲区。您将根据系统的硬件和软件找到有关系统启动,运行时内核模块消息以及许多其他消息的信息。默认情况下,dmesg显示完整的环形缓冲区。但是,可以通过添加特定参数来自定义输出。完整的文档可在手册页(man dmesg)中找到。
/ var / log / syslog
通常,这是最重要的日志文件之一。通过实现syslog接口,每个Linux进程均可自由登录到syslog。它还记录系统新贵和执行的cron-jobs。
centos 7.2:
由于日志文件的结构与Debian 8的非常相似,因此我们将仅提及它们之间的区别。
/ var / log / secure
该日志文件等效于Debian系统中的/var/log/auth.log。各种身份验证都记录在这里。
/ var / log / messages
在centos中,没有将/ var / log / messages和/ var / log / syslog分开,可以在此处找到实现syslog接口的进程的所有系统日志。
/ var / log / cron
Cron特定的日志文件不像Debian中那样是syslog的一部分。它们可以在上述文件中找到。
通过Systemd进行日志分析
Systemd基本上是当今几乎所有主要Linux发行版的标准Init系统。自从至少2015年4月,当Debian和Ubuntu切换到Systemd以来,每个Linux管理员或用户都已经与Systemd联系。由于Systemd是一个复杂的系统,因此我们只会研究提供的日志分析功能。Systemd中的每个进程都被标识为一个单元。可以通过以下命令显示所有活动单位:
systemctl列表单位
附加参数–all时,此命令还将显示所有非活动单位。
由Systemd创建的日志在所谓的日志中进行管理。可以通过journalctl二进制文件访问这些日志。如果没有任何参数调用journalctl,它将打印出整个Journal。但是,也可以仅输出特定单元的日志条目。在以下示例中,我们将分析apache Web服务器的日志文件。
journalctl -u httpd
也可以使用参数–since和–until限制输出。
journalctl -u httpd –自“ 2016-11-01 20:00:00” –直到“ 2016-11-03 20:00:00”
上面的命令将在2016-11-01 20:00:00和2016-11-03 20:00:00之间输出apache日志条目。也可以使用“今天”或“昨天”之类的关键字。
您还可以同时输出多个单位的日志文件。在以下示例中,我们将输出自昨天以来记录的所有apache和nginx日志条目。
journalctl -u httpd -u nginx –从昨天开始
如果使用参数-f,则会实时显示所有所需的日志条目。
上面只是对journalctl的可能性的简要介绍,在手册页(man journalctl)上有其他有用的功能。
通过Windows Event Viewer进行日志分析
在左侧导航栏中的上图中,您可以看到“ Windows Logs”条目。以下条目是最??重要的。
应用
此项将显示本地安装的应用程序的事件。
安全
在这里,您可以看到成功和失败的登录尝试。
系统
通过条目“自定义视图”->“服务器角色”->“远程桌面服务”,您可以看到与RDP相关的事件和错误。
可以通过“应用程序和服务日志”->“硬件事件”来识别潜在的硬件问题。
对于错误分析有用的概述也可以通过“概述和摘要”->“管理事件摘要”看到,它提供了系统状态的摘要概述。