当Linux等操作系统运行时,会发生许多事件和在后台运行的进程,以实现系统资源的高效可靠的使用。这些事件可能发生在系统软件中,例如 init 或 systemd 进程或用户应用程序,例如 Apache、MySQL、FTP 等。
为了了解系统和不同应用程序的状态以及它们如何工作,系统管理员必须每天在生产环境中检查日志文件。
您可以想象必须查看多个系统区域和应用程序的日志文件,这就是日志记录系统派上用场的地方。它们有助于监控、审查、分析,甚至根据系统管理员配置的不同日志文件生成报告。
在本文中,我们将了解当今 Linux 中最常用的四个开源日志管理系统,当今大多数(如果不是全部)发行版中的标准日志记录协议是 Syslog。
1. ManageEngine EventLog Analyzer
ManageEngine EventLog Analyzer 是一款本地日志管理解决方案,专为信息技术、健康、零售、金融、教育等各个行业的各种规模的企业而设计。该解决方案为用户提供基于代理和无代理的日志收集、日志解析功能、强大的日志搜索引擎和日志归档选项。
借助网络设备审核功能,它使用户能够实时监控其最终用户设备、防火墙、路由器、交换机等。该解决方案以图表和直观报告的形式显示分析数据。
EventLog Analyzer 的事件检测机制(例如事件日志关联、威胁情报、MITRE ATT&CK 框架实施、高级威胁分析等)有助于在安全威胁发生时立即发现它们。
实时警报系统会向用户发出有关可疑活动的警报,以便他们可以优先处理高风险的安全威胁。借助自动事件响应系统,SOC 可以减轻潜在威胁。
该解决方案还帮助用户遵守各种 IT 合规标准,例如 PCI DSS、ISO 27001、GLBA、SOX、HIPAA、CCPA、GDPR 等。根据监控日志源的数量提供订阅服务。通过电话、产品视频和在线知识库为用户提供支持。
2. Graylog 2
GrayLog是领先的开源和健壮的集中记录管理工具,可广泛用于在包括测试和生产环境在内的各种环境中收集和审查日志。它易于设置,强烈建议小型企业使用。
Graylog 可帮助您轻松从多个设备收集数据,包括网络交换机、路由器和无线接入点。它与 Elasticsearch 分析引擎集成,并利用 MongoDB 存储数据,收集的日志提供深入的见解,有助于排除系统故障和错误。
借助 Graylog,您将获得一个整洁而昏昏欲睡的 WebUI,其中带有很酷的仪表板,可帮助您无缝跟踪数据。此外,您还可以获得一组实用的工具和功能,有助于合规性审核、威胁搜索等。您可以启用通知,以便在满足特定条件或发生问题时触发警报。
总体而言,Graylog 在整理大量数据并简化数据搜索和分析方面做得相当好。最新版本是 Graylog 4.0,提供了新功能,例如深色模式、与 slack 和 ElasticSearch 7 的集成等等。
3. Logcheck
Logcheck 是另一个开源日志监控工具,作为 cron 作业运行。它会筛选数千个日志文件以检测违规或触发的系统事件。然后,Logcheck 将警报的详细摘要发送到配置的电子邮件地址,以向操作团队发出未经授权的破坏或系统故障等问题的警报。
该日志系统中开发了三种不同级别的日志文件过滤,其中包括:
- Paranoid:适用于运行尽可能少的服务的高安全性系统。
- 服务器:这是 logcheck 的默认过滤级别,其规则是为许多不同的系统守护进程定义的。偏执级别下定义的规则也包含在该级别下。
- 工作站:它用于受保护的系统,有助于过滤大部分消息。它还包括在偏执和服务器级别下定义的规则。
Logcheck 还能够将要报告的消息分类为三个可能的层,包括安全事件、系统事件和系统攻击警报。系统管理员可以根据过滤级别选择报告系统事件的详细级别,但这不会影响安全事件和系统攻击警报。
Logcheck提供以下功能:
- 预定义的报告模板。
- 一种使用正则表达式过滤日志的机制。
- 即时电子邮件通知。
- 即时安全警报。
4. Logwatch
Logwatch 是一个开源且高度可定制的日志收集和分析应用程序。它解析系统和应用程序日志并生成有关应用程序运行情况的报告。该报告通过命令行或专用电子邮件地址发送。
您可以通过修改 /etc/logwatch/conf 路径中的参数,轻松根据自己的喜好自定义 Logwatch。它还以预先编写的 PERL 脚本的方式提供了一些额外的功能,使日志解析更加容易。
Logwatch 采用分层方法,有 3 个主要位置定义配置详细信息:
- /usr/share/logwatch/default.conf/*
- /etc/logwatch/conf/dist.conf/*
- /etc/logwatch/conf/*
所有默认设置均在 /usr/share/logwatch/default.conf/logwatch.conf 文件中定义。建议的做法是保持此文件不变,而是通过复制原始配置文件,然后定义自定义设置,在 /etc/logwatch/conf/ 路径中创建您自己的配置文件。
Logwatch的最新版本是7.5.5版本,它支持直接使用journalctl查询systemd日志。如果您买不起专有的日志管理工具,Logwatch 会让您高枕无忧,因为您知道所有事件都会被记录下来,并会在出现问题时发出通知。
5. Logstash
Logstash 是一个开源服务器端数据处理管道,它接受来自多个源的数据,包括本地文件或 S3 等分布式系统。然后,它会处理日志并将其传输到 Elasticsearch 等平台,随后在其中进行分析和存档。它是一个非常强大的工具,因为它可以从多个应用程序获取大量日志,然后同时将它们输出到不同的数据库或引擎。
Logstash 构建非结构化数据并执行地理位置查找、匿名化个人数据以及跨多个节点进行扩展。您可以让 Logstash 监听管道的大量数据源,包括 SNMP、心跳、Syslog、Kafka、puppet、Windows 事件日志等。
Logstash 依赖于“beats”,它们是轻量级数据传送器,将数据提供给 Logstash 进行解析和结构化等。然后数据被发送到其他目的地,例如 Google Cloud、MongoDB 和 Elasticsearch 进行索引。 Logstash 是 Elastic Stack 的关键组件,允许用户整理任何形式的数据、解析数据并在交互式仪表板上可视化。
更重要的是,Logstash 享有广泛的社区支持和定期更新。