日志管理工具是为了在生产环境中,有效管理日志数据而提供的灵活、经济、有效的解决方案。现在来盘点下常见的 22 种 日志管理工具(ManageEngine EventLog Analyzer、Graylog、Logcheck、Logwatch、ELK/Logstash、OpenObserve、Grafana Loki、SigNoz、Syslog-ng、Highlight.io、Filebeat、LogDNA、Datadog/DataLog、Fluentd、Splunk、ManageEngine Log360、LOGalyze、SolarWinds Log & Event Manager、PRTG Network Monitor、Papertrail、XpoLog、EventTracker),调研下它们各自的特点、优缺点、管理架构、效果等,以便可以为业务选择合适的解决方案。
现将 日志管理工具 相关的处理 分为7个部分,分别是:各类数据源、数据转换、数据清洗、日志中心、第三方可视化工具、业务系统、其他系统。
序号 | 名称 | 主要特点 | 优点 | 缺点 | 价格 |
---|---|---|---|---|---|
1 | ManageEngine EventLog Analyzer | 全面日志管理和安全信息与事件管理 SIEM 解决方案。专为企业设计,旨在提高网络安全性、合规性和操作效率。能够集中管理和分析来自各种设备和应用程序的日志数据,帮助企业及时发现并应对潜在的网络威胁。免费版和高级版 | 端到端的日志管理;自定义日志解析;带有报表和警报的完整日志分析;强大的日志搜索引擎和灵活的日志归档选项的代理;无代理方法 | 收费,免费版最多支持5个日志源,而高级版支持多达1000个日志源 | 免费版/商业版 |
2 | Graylog | 一个开源的日志聚合、分析、审计、展现和预警工具。功能上和ELK类似,但又比ELK要简单,依靠着更加简洁,高效,部署使用简单的优势很快受到许多人的青睐 | 在一个软件包中满足大多数集中式日志管理用例的需求;轻松扩展存储 (Elasticsearch) 和获取通道 | 可视化能力有限;不能使用整个ELK生态系统 | 免费开源,也有企业版 |
3 | Logcheck | 一种作为 cron 作业运行的开源日志监控工具。它筛选数千个日志文件以检测触发的违规或系统事件 | 性能非常高;筛选违规事件;报警摘要详细;邮件通知 | 无可视化界面,只适用于命令行,无界面无可视化能力,功能欠缺 | 免费开源 |
4 | Logwatch | 一个开源且高度可定制的日志收集和分析应用程序。它解析系统和应用程序日志,并生成有关应用程序运行情况的报告。 | 简洁、快速、效率高、配置简单,报告通过命令行或专用电子邮件地址发送; | 无界面无可视化能力,功能欠缺 | 免费开源 |
5 | ELK/Logstash | 一种开源服务器端数据处理管道,接受来自多种来源的数据,包括本地文件或S3等分布式系统。它会处理日志将它们传送到Elasticsearch等平台,并进行分析和存档。因为它可以从多个应用程序中提取大量日志,然后将它们同时输出到不同的数据库或引擎 | 可伸缩性,弹性,可过滤对事件字段执行常规转换,可扩展插件生态系统,提供超过200个插件 | Logstash耗资源较大,运行占用CPU和内存高。另外没有消息队列缓存,存在数据丢失隐患 | 免费开源 |
6 | OpenObserve | 一个开源的云原生可观测性平台,官方声称与 Elasticsearch 相比,存储成本降低了约 140 倍,笔者理解是在没有索引和没有高可用带来的重复数据(底层存储负责)的情况下。使用搜索进行日志查询,没有索引,后端是对象存储(parquet列存储) | 占用空间相对较少,不需要索引文件,支持SQL;存储成本低;存储分离,扩展容易,内置前端 | 查询效率不高;缺乏文档,缺失案例 | 免费开源 |
7 | Grafana Loki | 用于时序数据的事实上的仪表盘解决方案。它支持近百个数据源。 Grafana Labs 想从一个仪表盘解决方案转变成一个可观察性 (observability) 平台,成为你需要对系统进行调试时的首选之地 | 强大的可视化功能;独特的索引策略,存储和处理日志的成本较低;强大的报警系统;支持多种部署 | 日志搜索功能不如其他平台简单直接;需要学习新的查询语言 LogQL | 免费开源 |
8 | SigNoz | 一个日志收集和分析工具,可以管理各种来源的日志、指标、跟踪和异常。为使用 OpenTelemetry 检测应用程序提供本机支持,防止供应商锁定,将收集到的数据存储在 ClickHouse 中,然后在用户友好的仪表板中聚合和可视化数据 | 全面的解决方案,包括指标、追踪和日志;可以轻松地与你的应用程序集成;开箱即用地提供图表和可视化功能;自动计算重要的指标;可以轻松设置动态警报阈值,并及时发送通知 | 文档可能不够清晰,因为它主要涵盖存储和保留期配置;升级有时会导致问题;定制性有限 | 免费开源 |
9 | Syslog-ng | 一个开源的日志管理解决方案,主要用于收集和处理日志数据。它可以从多种源收集日志,包括系统日志、网络设备日志和第三方应用日志。然后将日志解析、分类、重写和关联到统一格式中,然后将其存储或安全地传输到不同的系统 | 性能非常高;快速搜索和故障排除;支持多种消息格式;传输安全;不同数据库无缝对接 | 学习和理解配置语法可能需要一些时间 | 免费开源 |
10 | Highlight.io | 一个开源的日志管理工具,专为开发者和运维团队设计,用于收集、索引和分析日志数据。它使用 Elasticsearch 作为其后端存储,提供了一个强大的搜索和分析功能 | 设置简单快捷;警报功能非常高效;直观的用户界面和强大的搜索功能;与所有流行的框架无缝协作 | 没有像其他工具那样经过实战考验 | 免费开源 |
11 | Filebeat | 轻量级并且易使用;模块可用于常见用例(例如 Apache 访问日志)。您可以使用它们来设置 Filebeat、Ingest 和 Kibana 仪表板,只需几个命令。 | 没有任何依赖;它占用资源极少;可靠性很高;资源使用率低;良好的性能;轻量级并且易使用 | 应用范围十分有限;有限的解析和功能 | 免费开源 |
12 | LogDNA | 是日志管理领域的新成员。LogDNA可作为SaaS和内部使用,提供所有日志基础:通过syslog和HTTP(S)以及全文搜索和可视化,提供基于代理和无代理的日志收集,并提供清晰且具有竞争力的价格 | 用于搜索日志的简单 UI,类似于 Papertrail;易于理解的计划 | 免费版无存储;可视化能力有限;保留期取决于计划;用户数量也取决于计划 | 免费版/商业版 |
13 | DataLog | 一种 SaaS,最初是作为监控 (APM) 工具,后来还添加了日志管理功能。用于解析和丰富日志的服务器端处理管道,自动检测常见的日志模式,可以将日志归档到 AWS/Azure/Google Cloud 存储并在以后重新使用它们 | 容易搜索,良好的自动完成(基于facet);与DataDog指标和跟踪的集成;对于短期保留和/或如果你依靠存档进行一些搜索 | 现场不可用;一些用户抱怨成本失控(由于定价灵活),可以设置每日处理配额 | 商业版 |
14 | Fluentd | DevOps 的最爱,特别是对于 Kubernetes 部署,因为它具有丰富的插件库。与 Logstash 一样,它可以将数据结构化为 JSON,并涉及日志数据处理的所有方面:收集、解析、缓冲和输出跨各种来源和目的地的数据 | 良好的性能和资源使用;良好的插件生态系统;易于使用的配置;良好的文档;与库和Kubernetes的良好集成,大量的内置插件,很容易编写新的 | 解析前没有缓冲,可能会导致日志管道出现背压;对转换数据的支持有限 | 免费开源 |
15 | Splunk | 最早的商业日志集中工具之一,也是最受欢迎的。用于搜索和分析的强大查询语言,搜索时字段提取(在摄取时解析之外),自动将经常访问的数据移动到快速存储,将不经常访问的数据自动移动到慢速存储 | 成熟且功能丰富;对于大多数用例来说,良好的数据压缩(假设有有限的索引,正如推荐的那样);日志和度量在一个屋檐下 | 对于较长的时间范围,查询速度较慢(建议使用有限的索引);用于度量存储的效率低于专注于监控的工具 | 商业版 |
16 | ManageEngine Log360 | 一种SIEM或安全分析解决方案,可帮助您应对本地、云端或混合环境中的威胁。可以帮助组织遵守 PCI DSS、HIPAA、GDPR 等合规性要求。您可以自定义解决方案以满足您独特的用例并保护您的敏感数据 | 自动日志收集;自定义日志解析;实时分析提高可见性;可扩展性强;超快速的日志搜索;安全的日志存档以确保合规性;事件响应 | 收费贵;不支持中文;国内文档相对较少 | 商业版 |
17 | LOGalyze | 一个强大的网络监控和日志管理工具,可以收集和解析来自网络设备、Linux 和 Windows 主机的日志。它最初是商业性的,但现在可以完全免费下载和安装,没有任何限制 | 日志记录自定义;可用于本机和自定义应用程序;可以通过关联趋势,了解模式和单个事件管理来分析他们的日志记录数据;可以标记每个事件并创建单独的类别 | 只能登录后使用;中文支持较差;国内文档相对较少 | 商业版 |
18 | SolarWinds Log & Event Manager | 是Windows的日志分析工具,可提供集中的日志监控体验。由SolarWinds Log&Event Manager处理的数据在传输过程中会进行加密,未经授权无法读取 | 分析Windows日志更专业,效率高处理快。提供事件时间检测,帮助用户快速检测问题所在 | 只作用于Windows,跨平台性差,中文支持不好,不开源 | 商业版 |
19 | PRTG Network Monitor | 一个网络监控平台,包括Windows事件日志传感器和Syslog接收传感器。Windows事件日志传感器监控Windows系统和应用日志文件。该系统日志接收传感器记录的由设备在网络中发送的每秒系统日志文件的数量和过滤 | 监控Windows日志更专业,主要用于网络监控,支持显示日志消息的速率;过滤器可自定义,因此可以确定哪些活动将触发警报 | 国内文档相对较少;跨平台性差,只作用于Windows,中文支持较差 | 商业版 |
20 | Papertrail | Windows的日志分析器,可自动扫描日志数据。扫描日志数据时,可以选择希望扫描结果显示的信息 | 扫描Windows日志更专业,主要用于日志扫描和显示。可以选择扫描是否包含IP地址,电子邮件地址, GUID/UUID,HTTP(s)URL,域,主机,文件名和引用文本 | 只作用于Windows,功能相对单一,中文支持不好,不开源 | 商业版 |
21 | XpoLog | 可以通过网络收集和分析来自设备的日志。XpoLog实时监控日志以发现性能问题并创建警报。用户可以定义警报规则并实施自己的过滤规则 | 功能相对较丰富。Basic版本是免费的,每天支持1GB,5天数据保留 | 中文支持较差,在用户体量多时,要商用收费 | 商业版 |
22 | EventTracker | 可以收集和分析Windows事件,Syslog和W3C/IIS日志文件中的日志数据。该程序可以实时检测安全事件。EventTracker的实时日志分析功能使其成为事件检测和响应的理想选择 | 实时事件警报为日志活动提供了额外的可见性。有提供数百种不同的警报外的开箱与EventTracker。警报包括取证分析,以便你在对安全事件的解决方案进行故障排除时可以使用其他数据 | 只作用于Windows,跨平台性差,中文支持不好,中文学习资料较少 | 商业版 |
为了了解系统和不同应用程序的状态以及它们如何工作,系统管理员必须每天在生产环境中检查日志文件。可以想象必须查看多个系统区域和应用程序的日志文件,这就是日志记录系统派上用场的地方。它们有助于监控、审查、分析,甚至根据系统管理员配置的不同日志文件生成报告。日志管理包含日志数据存储、处理、分析和可视化,通过利用日志管理工具,可以监控性能趋势、解决问题、检测异常并优化整体系统性能。
当系统崩溃或应用程序出现故障时(有时会发生这种情况),您需要追根究底并找出故障原因。日志文件记录系统活动并深入了解错误和后续故障的可能来源。他们给出了一个详细的事件序列,包括一个详细的时间戳,引发或导致了一个事件。
无论前端系统,还是后端系统的诊断和恢复都从查看系统日志开始。分析日志文件可以帮助运营团队找到可疑活动的证据,例如指向安全漏洞的未经授权的登录。它可以帮助数据库管理员调整他们的数据库以获得最佳性能,还可以帮助开发人员解决他们的应用程序问题并编写更好的代码。
ManageEngine EventLog Analyzer 是基于Web的日志分析报表解决方案,它不光能够收集日志,还支持使用高效的分析引擎,对存储的日志进行分析、解析,并通过专门的报表工具生成报表。
EventLog Analyzer 可以对来自企业和组织中的所有IT资源(包括网络、系统和应用)产生的安全信息(包括日志、告警等)进行统一的实时监控、历史分析,对来自外部的入侵和内部的违规、误操作行为进行监控、审计分析、调查取证、出具各种报表报告,实现IT资源合规性管理的目标,同时提升企业和组织的安全运营、威胁管理和应急响应能力。
EventLog Analyzer能够支持一切人类可读格式的日志。如 - Windows/Linux/Unix主机的事件日志;路由器及交换机等Syslog的设备;IIS网络服务器、IIS FTP服务器、MS SQL服务器、Oracle 服务器、DHCP - Windows和DHCP - Linux服务器的应用日志。
官网地址:https://www.manageengine.cn/products/eventlog/
EventLog Analyzer 拥有无代理架构,它使用内置的系统日志和事件日志服务器存储,从所有配置的设备中获得的事件日志和系统日志,提供全面的事件、合规和自定义报表。这有助于网络管理员分析系统问题,提高网络安全性,并减少服务器、工作站、域控制器、交换机和企业网络路由器的停机时间,解析收集的日志并生成报表。
分布式版
EventLog Analyzer - 分布式版 采用分布式部署方式。这个架构由一个管理服务器和N个被管服务器组成。被管服务器安装在不同的地理位置(每个局域网环境一个),并连接到管理服务器。这让网络管理员可以在中心地点远程查看不同主机/应用程序日志的详细信息。所有的报表、告警和其他主机/应用程序信息都可以通过一个控制台访问。这种架构有益于拥有全球范围的不同分支机构的大型企业管理者进行管理。这对安全服务提供商(MSSP)来说是一个利好。他们可以在一个地点监控客户不同位置安装的被管服务器。
在统一控制台中收集和分析来自所有终端设备的记录。
系统日志管理:收集和分析来自各种设备的日志,并帮助管理员通过报告和图表深入了解网络中发生的情况。
全面的日志收集:EventLog
Analyzer可以从不同的操作系统或应用程序、数据库、路由器等各种来源收集日志。
管理事件日志:通过收集、分析和分类各类日志,方便以后搜索。
收集带或不带代理的日志:您可以从带或不带代理的设备收集事件日志。
监控所有应用程序服务器并查看特定应用程序。
监控应用程序日志:如 IIS、Apache 和数据库程序,如 Microsoft SQL Server 等。
查看服务器和数据库活动:包括对帐户的访问和更改,以及服务器启动和关闭、备份和恢复 等等
Microsoft IIS Web 服务器分析:EventLog Analyzer 监控访问、使用、错误和任何尝试的服务器渗透的行为。
网络设备主要负责传输重要信息,因此 EventLog 充当看门狗,以防止任何信息泄漏。
审核 VPN 日志:获取用户的 VPN 使用详情,包括登录信息。
监控路由器和交换机日志:使用EventLog Analyzer,您可以分析和监交换机网络和 HP 路由器用户的活动,并识别威胁网络安全的异常事件。
IDS/IPS 监控:获取有关网络威胁、攻击类型、使用的设备等的信息。
合规管理以符合最佳国际标准的条件要求。
资源审计:符合各种标准,包括 ISO、GPG、GDPR、HIPAA、SOX、ISLP 等。
定制报告:根据您的工作环境和要求准备报告以跟进标准。
跟踪安全事件,并通过高级分析获得综合洞察力。
系统日志监控:优化网络和中央服务器活动的监控。
监控 Windows 设备上的事件日志并获取详细报告和安全警报。
保存和搜索:通过保存搜索查询来了解最新的安全事件。
通过检测威胁并加以缓解,保护网络免受黑客攻击和信息盗窃的风险。
Windows 威胁监控:保护 Windows 环境中的安全工具,例如漏洞扫描程序等。
文件完整性监控:EventLog Analyzer跟踪重要的文件更改,例如文件和文件夹的删除、创建、权限、修改和重命名。
保护 Linux 系统文件:突出显示 Linux 系统文件中的更改。
跟踪用户活动:尤其是特权用户,因为该程序会检测到可疑的事情,例如重复登录失败或在正式工作时间之外尝试登录。
通过对模式和类型的分类和识别,快速检测安全威胁。
智能反威胁:关于恶意流量、被阻止 IP 地址或 URL 黑名单活动的警报。
通过对所有环境(如操作系统、云计算系统和漏洞管理)使用适当的报告模型来满足审计和审计需求。
与 VMWare Server 等虚拟环境交互,EventLog 将能够在其中管理此类设备的日志。
还跟踪和审核不同的设备,例如 Syslog 和 Windows。
graylog是一个开源集中式日志管理系统,提供日志收集、存储、分析、展现和告警的功能,为网络工程师提供一个令设备日志信息变得可聚合、可管理、有意义的工具。作为一位合格的后端开发程序员,说起ELK,即便没用过肯定也听说过这玩意了,在后端是真的流行。而GrayLog 可以算是轻量级ELK。GrayLog是一个轻量型的分布式日志管理平台,一个开源的日志聚合、分析、审计、展示和预警工具。在功能上来说,和 ELK类似,但又比 ELK要简单轻量许多。依靠着更加简洁,高效,部署使用简单的优势很快受到许多公司的青睐。
GrayLog包含 Elasticsearch、MongoDb 和 Graylog三个模块。其中,Elasticsearch用来持久化存储和检索日志文件数据,MongoDb 用来存储关于 Graylog的相关配置,而 Graylog用来提供 Web 界面和对外接口。
官网地址:https://graylog.org/
单机
集群
Logcheck用来分析庞大的日志文件,过滤出有潜在安全风险或其他不正常情况的日志项目,然后以电子邮件的形式通知指定的用户。Logcheck是一个软件包,用于自动运行和检查系统日志文件,查看是否存在安全违规和异常活动。Logcheck使用一个名为logtail的程序,该程序会记住它在日志文件中读取的最后一个位置,并在后续运行中使用该位置来处理新信息。这个软件包有一些功能,但可能更容易使用,因为它不需要一个持续运行的程序,并且可以将许多系统的所有结果发送回单个位置。此外,它还报告您以前可能没有见过的任何异常系统消息,这是一个明显的优势,因为通常不可能知道可能从守护程序进入日志的每个可能的系统日志消息。
该日志系统开发了三种不同级别的日志文件过滤,包括:
Logcheck 还能够将要报告的消息分类为三个可能的层,包括安全事件、系统事件和系统攻击警报。系统管理员可以根据过滤级别选择报告系统事件的详细级别,但这不会影响安全事件和系统攻击警报。
Logwatch是一个开源且高度可定制的日志收集和分析应用程序。它解析系统和应用程序日志,并生成有关应用程序运行情况的报告。报告通过命令行或专用电子邮件地址发送
您可以通过修改/etc/logwatch/conf路径中的参数轻松地根据您的喜好自定义 Logwatch 。它还以预先编写的 PERL 脚本的方式提供了一些额外的东西,使日志解析更容易。
Logwatch采用分层方法,配置详细信息定义在 3 个主要位置:
所有默认设置都在/usr/share/logwatch/default.conf/logwatch.conf文件中定义。推荐的做法是保持此文件不变,而是通过复制原始配置文件然后定义您的自定义设置,在/etc/logwatch/conf/路径中创建您自己的配置文件。支持直接使用journalctl查询systemd日志。如果您买不起专有的日志管理工具,Logwatch会让您高枕无忧,因为它知道所有事件都会被记录下来,并在出现问题时发送通知。
Logstash是一个数据同步工具,在ELK(Elasticsearch + Logstash + Kibana)技术栈中解决数据同步问题。日常项目中数据主要存储在MYSQL、日志文件中,通过Logstash可以将MYSQL、日志文件、redis等多种数据源的数据同步到ES,这样就可以通过ES搜索数据。是一种分布式日志收集框架,开发语言是JRuby,与Java平台对接,经常与ElasticSearch,Kibana配置,组成著名的ELK技术栈,非常适合用来做日志数据的分析。
简单来说logstash就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端;
同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供很多功能强大的滤网以满足你的各种应用场景。
它可以单独出现,作为日志收集软件,收集日志到多种存储系统或临时中转系统,如MySQL,Redis,Kakfa,HDFS, Lucene,Solr等,并不一定是ElasticSearch。
官网:https://github.com/elastic/logstash
数据源–>input–>fliter–>output–>目的地
因为数据往往分散的存储在不同的数据源(数据库)中,数据源可以为mysql\redis\kafka\HDFS,Logstash 支持各种输入选择 ,可以在同一时间从众多常用来源捕捉事件。能够以连续的流式传输方式,轻松地从源头日志、指标、Web 应用、数据存储采集数据。
fliter过滤器:用于在将event通过output发出之前对其实现某些处理功能。
grok:用于分析结构化文本数据。
目前是logstash中将非结构化数据日志数据转化为结构化的可查询数据的不二之选
Logstash同步数据,主要有三个核心环节:inputs → filters → outputs,流程如下图
inputs模块负责收集数据,filters模块可以对收集到的数据进行格式化、过滤、简单的数据处理,outputs模块负责将数据同步到目的地,Logstash的处理流程,就像管道一样,数据从管道的一端,流向另外一端。
提示:inputs/filters/outputs是通过插件机制扩展各种能力。
inputs ,inputs可以收集多种数据源的数据,下面是常见的数据源:
filters,filters是一个可选模块,可以在数据同步到目的地之前,对数据进行一些格式化、过滤、简单的数据处理操作。
常用的filters功能:
outputs,Logstatsh的最后一个处理节点,outputs负责将数据同步到目的地。
下面是常见的目的地:
(1)每个Input启动一个线程,从对应数据源获取数据
(2)Input会将数据写入一个队列:默认为内存中的有界队列(意外停止会导致数据丢失)。为了防止数丢失Logstash提供了两个特性:
Persistent Queues:通过磁盘上的queue来防止数据丢失
Dead Letter Queues:保存无法处理的event(仅支持Elasticsearch作为输出源)
(3)Logstash会有多个pipeline worker, 每一个pipeline worker会从队列中取一批数据,然后执行filter和output(worker数目及每次处理的数据量均由配置确定)
OpenObserve 是一个基于 Rust 的开源平台,可以通过支持日志、指标和追踪来满足你所有的可观察性需求。它的目标是提供一个平台,该平台可以替代 Prometheus 用于指标、Elasticsearch 用于日志、Jaeger 用于链路追踪、Grafana 用于仪表板等,并且他还可以和 S3、GCS、Minio、Azure Blob 等对象存储服务兼容使用,比 Elasticsearch 低 140 倍的存储成本。
使用 OpenObserve,你不需要学习新的查询语言来查询日志,因为它支持 SQL 作为其主要的日志和追踪查询语言,以及 PromQL 用于查询指标数据。它也非常容易安装和操作,由于其基于 Rust 来编写的,所以它只需要很少的资源来运行。
它还提供了一个直观且易于使用的 UI 界面,允许你管理和可视化你正在收集的各种可观察性数据。在摄取或查询时,你可以丰富、解析、删除敏感数据,并删除日志的不需要的部分,以便只留下相关的部分。
OpenObserve 还提供了一个内置的报警机制,可以将警报发送到 Slack、Microsoft Teams 和其他渠道。它还支持团队成员之间的协作,并使用基于角色的访问控制来根据团队成员的级别控制对数据的访问,确保你的数据的整体安全。
OpenObserve 可以在单节点下运行,也可以在集群中以 HA 模式运行。单节点模式也分几种架构,主要是数据存储的方式不同,主要有如下几种:
如果你只需要进行简单使用和测试,或者对高可用性没有要求,可以使用此模式。当然你仍然可以在一台机器上每天处理超过 2 TB 的数据。在我们的测试中,使用默认配置,Mac M2 的处理速度为约 31 MB/秒,即每分钟处理 1.8 GB,每天处理 2.6 TB。该模式也是运行 OpenObserve 的默认模式。
该模式和 OpenObserve 的默认模式基本上一致,只是数据存在了对象存储中,这样可以更好的支持高可用性,因为数据不会丢失。
该模式是使用 Etcd 来存储元数据,数据仍然存储在对象存储中。
OpenObserve 可以在单节点下运行,也可以在集群中以 HA 模式运行。HA 模式不支持本地磁盘存储,集群模式下 OpenObserve 会运行多个节点,每个节点都是无状态的,数据存储在对象存储中,元数据存储在 Etcd 中,这样可以更好的支持高可用性,因为数据不会丢失。
在该模式下 OpenObserve 主要包括 Router、Querier、Ingester 和 Compactor 四个组件,这些组件都可以水平扩展;Etcd 用于存储用户、函数、报警规则和集群节点信息等元数据;对象存储(例如 s3、minio、gcs 等等)存储 parquet 文件和文件列表索引的所有数据。
Loki 是由 Grafana 团队制作的一个日志管理系统,它根据开源 AGPLv3 许可证发布。由于其日志存储机制,它是独一无二的,只对每个日志流的标签和元数据进行索引,而不是日志的内容。这使它需要更少的存储空间,也可以更快地处理日志消息。然而,这种方式的缺点是,与其他平台相比,它在日志搜索功能上就不那么好用了。
它使用 Promtail(专门为 Loki 构建的日志收集器)通过 HTTP API 拉取日志。然后将日志分组成流并用标签进行索引,但是为了提高性能和降低存储成本,日志的文本并未被索引。一旦日志在 Loki 中,它们可以使用 Loki 的查询语言 LogQL 进行检索。它还与 Grafana 无缝集成,用于通过其可定制的仪表板显示从日志数据生成的各种数据。
Loki 还提供了一个强大的报警系统,你可以创建在满足某些条件时将触发的规则,然后将它们发送到 Prometheus AlertManager,然后将它们路由到适当的目的地,这确保了能够快速识别并及时解决关键问题。
官网地址:https://github.com/grafana/loki
根据 Grafana Labs 建立和运行 Cortex 的经验–作为服务运行的 Prometheus 的水平可扩展的分布式版本–想出了以下架构:
指标和日志之间的元数据匹配对我们来说至关重要,Grafana Labs 最初决定只针对 Kubernetes。想法是在每个节点上运行一个日志收集代理,用它来收集日志,与 kubernetes 的 API 对话,为日志找出正确的元数据,并将它们发送到一个中央服务,可以用它来显示在 Grafana 内收集的日志。
该代理支持与 Prometheus 相同的配置(relabelling rules),以确保元数据的匹配。我们称这个代理为 promtail。
深入 Loki —— 可扩展的日志收集引擎:
写入路径和读取路径(查询)是相互脱钩的,分开说明:
说到 ingester,它是一个有状态的组件,但 Loki 已经将完整的分片和重新分片的生命周期纳入其中。当 rollout 工作完成后,或者当 ingester 被扩大或缩小时,环形拓扑结构会发生变化,ingester 会重新分配它们的块,以匹配新的拓扑结构。这主要是取自 Cortex 的代码,它已经在生产中运行了 5 年多。
SigNoz 是一个日志收集和分析工具,可以收集和管理来自各种来源的日志、指标、跟踪和异常。它为使用 OpenTelemetry 检测应用程序提供本机支持,以防止供应商锁定,将收集到的数据存储在 ClickHouse 中,然后在用户友好的仪表板中聚合和可视化数据。借助 SigNoz,您可以使用其查询生成器、PromQL 或 ClickHouse 查询轻松设置警报的动态阈值。其查询生成器简化了搜索和过滤日志的过程,任何触发的警报都会通过 Slack、PagerDuty 等渠道向您发送通知。SigNoz 还支持与流行框架和技术的集成,使其与广泛的应用程序堆栈兼容。这使您能够主动监控和优化各种服务,以提高其性能、更快地排除故障和修复问题,并增强其整体可靠性。
SigNoz 采用模块化架构构建,可以轻松扩展以满足您不断增长的需求。您可以灵活地定义自己的保留期和采样率,仅根据应用程序负载优化数据存储成本。
官网地址:https://github.com/SigNoz/signoz
SigNoz自身不提供采集器,完全复用 OpenTelemetry 的能力,不过 Otel Collector 这块它在架构图里冠以 SigNoz,不知道是否对社区的 Collector 做了二次开发,存储使用 ClickHouse,SigNoz 自己用 Go 开发了 Query Service 组件和 Alert Manager 组件,前端使用 React 开发。
从数据流上来讲,应用程序埋点推送监控数据给 Otel Collector,Otel Collector 对数据做初步处理,之后直接写入 ClickHouse,写入链路就算完事了。前端和 Alert Manager 对 ClickHouse 的查询会统一发给 Query Service,Query Service 会把 HTTP 请求转换为 ClickHouse 的 TCP 查询语句。
1、开箱即用的应用程序指标
2、从指标到跟踪以找出某些问题发生的原因的方法
3、可观察性的三大支柱:指标、跟踪和日志平台集成性
4、根据不同的标签和过滤器过滤追踪
5、能够为警报设置动态阈值
6、若商业化,定价尽可能透明
Syslog-ng 是一个开源的日志管理解决方案,主要用于收集和处理日志数据。它可以从多种源收集日志,包括系统日志、网络设备日志和第三方应用日志。然后将日志解析、分类、重写和关联到统一格式中,然后将其存储或安全地传输到不同的系统(如 Apache Kafka 或 Elasticsearch)。这消除了您部署多个代理的需要,因为它允许您在一个地方执行所有数据管理过程。
Syslog-ng 提供快速搜索和故障排除功能,并使用正则表达式和布尔运算符进行复杂过滤,使您能够轻松实时定位、过滤和解析日志消息。这有助于快速提取关键信息,并因此加快故障排除和问题解决速度。通过利用其多线程处理结构,Syslog-ng 可以实现卓越的性能,在配置依赖下每秒处理超过 500k 条日志消息。
通过使用 C、Python、Java、Lua 或 Perl 编写的插件,可以扩展其功能以适应任何用例。Syslog-ng 支持 RFC3164、RFC5424、JSON 和 Journald 等不同的消息格式。它可以在多个操作系统和架构上运行,包括 Linux、Solaris 和 BSD。它还支持 UDP、TCP、TLS 和 RELP 等各种日志传输协议,实现安全可靠的日志传输。
官网地址:https://github.com/syslog-ng/syslog-ng
syslog-ng的配置基于下面的架构:
LOG STATEMENTS『SOURCES - FILTERS -DESTINATIONS』
消息路径 『消息源 - 过滤器 - 目的站』
也就是说,通过定义多个消息源,把匹配上若干个过滤器的消息导向到指定的目的地,从而组成一个消息路径。
1、可靠的日志传输。syslog-ng 允许你发送日志到远程的日志服务器上。传输过程使用 TCP ,区别于 syslog 的 UDP ,可以确保不会丢失数据
2、通过使用 SSL/TLS 来加密日志传输过程。不过这个功能只有在 premium 版本才提供。
3、基于磁盘的缓冲。syslog-ng 可以在网络连接失效时先把日志写入硬盘,等网络连接恢复时再传输到日志服务器上,而且确保日志的顺序不会混乱。不过这个功能也是 premium 版本才提供的。
4、直接数据库访问。能够把日志直接存入数据库,以便进行搜索及配合日志分析应用程序。支持 MySQL、Oracle、PostgreSQL、SQLIife ,同样也是 premium 才支持
5、支持多种操作系统。包括 Linux、Unix、BSD、Solaris、HP-UX、AIX 等。甚至还可以通过代理和 Windows 主机进行通信
6、过滤器和归类。syslog=ng 应用程序可以根据收的喔的日志的内容进行排序、或者根据源ip、应用程序、优先级等。可以通过宏自动建立目录、文件、数据库。支持 regex 和布尔表达式,确保只转发你想要的内容
7、支持 ipv4 和 ipv6
Highlight.io 是一个开源的日志管理工具,专为开发者和运维团队设计,用于收集、索引和分析日志数据。它使用 Elasticsearch 作为其后端存储,提供了一个强大的搜索和分析功能。
Highlight 是一个全栈监控平台,不仅提供日志管理,还提供会话重放和错误监控,利用 ClickHouse 进行数据存储和检索。它旨在使您能够跟踪应用程序的行为、识别错误或错误、分析日志并轻松找到性能问题的根本原因。
只需两行代码,您就可以在安装此工具后开始使用它进行日志记录。它将立即开始从您的应用程序收集日志。然后可以轻松搜索和查询这些日志消息和属性。它还允许您将警报设置为当日志达到指定阈值时所需的频率。您将通过支持的渠道收到通知,包括电子邮件、Slack、Discord 或 webhooks。
Highlight 与所有流行的现代框架无缝集成,例如 Python、Golang、Node.js、React、Rails 等等。它允许您以可理解和可操作的方式可视化基础设施的每个部分,从用户点击到服务器错误。它提供免费计划以及灵活的即用即付定价计划,您当然可以自行托管。
官网地址:https://www.highlight.io/
Filebeat是一种轻量型日志采集器,内置有多种模块(auditd、Apache、NGINX、System、MySQL 等等),可针对常见格式的日志大大简化收集、解析和可视化过程,只需一条命令即可。之所以能实现这一点,是因为它将自动默认路径(因操作系统而异)与 Elasticsearch 采集节点管道的定义和 Kibana 仪表板组合在一起。不仅如此,数个 Filebeat 模块还包括预配置的 Machine Learning 任务。另一点需要声明的是:根据采集的数据形式不同,形成了由多个模块组成的Beats。Beats是开源数据传输程序集,可以将其作为代理安装在服务器上,将操作数据发送给Elasticsearch,或者通过Logstash,在Kibana中可视化数据之前,在Logstash中进一步处理和增强数据。
Beat日志采集流程图:
官网地址:https://www.elastic.co/cn/beats/filebeat
工作流程如下:
当启动 Filebeat 程序时,它会启动一个或多个查找器去检测指定的日志目录或文件。对于查找器 prospector 所在的每个日志文件,FIlebeat 会启动收集进程 harvester。 每个 harvester 都会为新内容读取单个日志文件,并将新日志数据发送到后台处理程序,后台处理程序会集合这些事件,最后发送集合的数据到 output 指定的目的地。
除了图中提到的各个组件,整个 filebeat 主要包含以下重要组件:
filebeat 的整个生命周期,几个组件共同协作,完成了日志从采集到上报的整个过程。
? Filebeat 由两个主要组件组成:harvester 和 prospector。
harvester(采集器): 主要职责是读取单个文件的内容。读取每个文件,并将内容发送到 the output。 harvester 负责打开和关闭文件,这意味着在运行时文件描述符保持打开状态。如果文件在读取时被删除或重命名,Filebeat 将继续读取文件。
?prospector(查找器): 主要职责是管理 harvester 并找到所有要读取的文件来源。如果输入类型为日志,则查找器将查找路径匹配的所有文件,并为每个文件启动一个 harvester。
? 注:Filebeat prospector只能读取本地文件, 没有功能可以连接到远程主机来读取存储的文件或日志。
LogDNA成立于2013年,是一家美国日志管理应用程序提供商,可以收集和分析来自各个渠道的日志,并且通过Syslog、代码库或其他代理发送日志。
LogDNA的特色在于它可以从30多个业界最流行的环境收集多个部署的日志,每秒可处理数十万个日志事件,每个客户每天可处理超过20 TB的日志事件,同时提供SOC2,HITECH,PCI-DSS和HIPAA兼容的日志记录。
LogDNA是一种现代的云原生日志管理和分析解决方案,旨在简化日志管理。它为开发人员和运维团队提供了一个云原生、易于使用的平台,用于轻松地收集、分析和监视分布式应用程序的日志数据
官网地址:https://github.com/logdna
Datadog 是一种 SaaS,最初是作为监控 (APM) 工具,后来还添加了日志管理功能。
可以通过 HTTP(S) 或 syslog,通过现有的日志传送器(rsyslog、syslog-ng、Logstash 等)或通过 Datadog 自己的代理发送日志。
它的特点是 Logging without Limits?,这是一把双刃剑:更难预测和管理成本,但您可以获得即用即付定价(见下文)以及您可以存档和从存档中恢复的事实。
使用Datadog可以记录和搜索来自各种设备和应用程序的日志数据。Datadog的可视化以图形的形式显示日志数据,因此可以看到网络性能随时间的变化情况。
如果需要进一步自定义,则可以通过拖放创建唯一的日志分析仪表板。可以实时和历史地查看日志数据。一旦Datadog记录了日志数据,就可以使用过滤器来确定列出的信息。
为了防止日志数据泄露,Datadog使用集中存储,以便服务器上不会留下任何数据。集中存储的主要好处是你的数据在发生中断时受到保护。
还有智能警报使用机器学习来检测异常日志模式和错误。警报可以通过Slack和PagerDuty等工具发送。
Datadog提供14天免费试用版。
Fluentd 是一个免费,而且完全开源的日志管理工具,简化了日志的收集、处理、和存储,你可以不需要在维护编写特殊的日志处理脚本。
Fluentd为处理数据流设计,有点像 syslogd(syslogd可以负责记录系统运作中,kernel或应用程式产生的各种讯息。这些讯息被写入到系统的纪录档中,让管理人员,进行故障排除、追踪尝试非法入侵的使用者) ,但是使用JSON作为数据格式。它采用了插件式的架构,具有高可扩展性高可用性,同时还实现了高可靠的信息转发。
据 分(Y)析(Y),Fluentd是由Fluent+d得来,d生动形象地标明了它是以一个守护进程的方式运行。官网上将其描述为data collector,在使用上,我们可以把各种不同来源的信息,首先发送给Fluentd,接着Fluentd根据配置通过不同的插件把信息转发到不同的 地方,比如文件、SaaS Platform、数据库,甚至可以转发到另一个Fluentd。
官网文档:https://docs.fluentd.org/
1)安装方便
2)占用空间小
3)半结构化数据日志记录
4)灵活的插件机制
5)可靠的缓冲
6)日志转发
使用Fluentd前,日志系统的状态:
使用Fluentd后,日志系统的状态:
Splunk 是最早的商业日志集中工具之一,也是最受欢迎的。尽管它也作为服务提供 (Splunk Cloud),但典型的部署是本地部署 (Splunk Enterprise)。您可以将日志和指标发送到 Splunk 并一起分析它们。
Splunk 是一款功能完善、强大的数据和日志分析平台,涵盖机器数据收集、索引、搜索、监控、分析、可视化、告警等功能。
Splunk经过多年的发展,功能已经十分强大且灵活。它允许用户在其上自定义应用(App),目前提供的官方和非官方应用多达数百个,且大多数均可以免费下载并使用。同时,Splunk还提供了强大API集,开发人员可以使用Python、Java、JavaScript、Ruby、PHP、C# 编程语言开发应用程序。
为确保不会遗漏任何重要内容,Splunk会提供实时警报。警报可以通过电子邮件或RSS发送。警报具有可配置的阈值和触发条件,因此可以确定将生成通知的活动。警报中包含的支持信息可帮助你缩短事件解决时间。
Splunk可在Windows,Mac OS和Linux上使用。Splunk有三种版本:Splunk Enterprise,Splunk Cloud和Splunk Free。Splunk Enterprise每天支持用户和量的数据。Splunk Cloud是一种云服务,支持用户和数据。
Splunk Free是免费提供的,每位用户最多可以支持500 MB的数据。
除了出色的监控,安全响应是 Splunk ES 的另一个强项。该系统使用 Splunk 所称的自适应响应框架( ARF ),该框架集成了超过 55 家安全供应商的设备。ARF 执行自动响应,加速手动任务。这会让你迅速占据上风。再加上一个简单而整洁的用户界面,您就有了一个成功的解决方案。其他有趣的功能包括显示用户可自定义警报的 Notables 功能和用于标记恶意活动并防止进一步问题的资产调查员。
Splunk ES 是真正的企业级产品,这意味着它带有企业级价格标签。遗憾的是,无法从 Splunk 的网站上轻松获得定价信息。您需要联系销售部门以获得报价。如果您想试用该产品,联系 Splunk 还可以让您享受免费试用。
ManageEngine Log360是一种SIEM或安全分析解决方案,可帮助您应对本地、云端或混合环境中的威胁。
它还可以帮助组织遵守 PCI DSS、HIPAA、GDPR 等合规性要求。您可以自定义解决方案以满足您独特的用例并保护您的敏感数据。
借助Log360,您可以监控和审核在 Active Directory、网络设备、员工工作站、文件服务器、数据库、Microsoft 365 环境、云服务等中发生的活动。
Log360关联来自不同设备的日志数据,以检测复杂的攻击模式和高级持续性威胁。该解决方案还带有基于机器学习的行为分析,可以检测用户和实体行为异常并将它们与风险评分相结合。
安全分析以 1000 多个预定义的可操作报告的形式呈现。可以执行日志取证以找到安全挑战的根本原因。
内置的事件管理系统允许您通过智能工作流和与流行的票务工具的集成来自动执行补救响应。
该解决方案可以在本地安装,也可以在云端作为 Log360 Cloud 使用。通过电话、电子邮件和其他在线资源提供支持。
LOGalyze是一款面向企业用户的开源日志分析器和网络监控工具。该产品支持具有实时事件检测功能的设备,Windows主机和Linux / Unix服务器。收集日志数据后,可以使用程序的搜索功能查找所需的信息。
用户还可以定义自己的警报。提出警报后,可以创建故障单以记录问题,直到问题得到解决。还有一些预定报告形式的文档,可以使用它们查看有关网络状态的定期更新。报告符合PCI-DSS,SOX等。
作为一种低成本替代方案,LOGalyze提供了日志监控体验,可以胜任此列表中的任何专有工具。该工具特别适合寻求经济实惠的日志管理解决方案的小型企业。
SolarWinds 是网络监控领域的通用名称。它的旗舰产品称为 Network Performance Monitor,是可用的最佳 SNMP 监控工具之一。该公司还以其众多免费工具而闻名,例如高级子网计算器或免费 SFTP 服务器。
谈到 SIEM,SolarWinds 的产品是 SolarWinds Security Event Manager。该工具以前称为 SolarWinds Log & Event Manager,最好将其描述为入门级 SIEM 工具。然而,它是市场上最好的入门级系统之一。该工具几乎具有您对 SIEM 系统的所有期望。这包括出色的日志管理和关联功能以及令人印象深刻的报告引擎。
免费试用: SolarWinds 安全事件管理器
官方下载链接: https://www.solarwinds.com/security-event-manager/registration
该工具还拥有出色的事件响应功能,无可挑剔。例如,详细的实时响应系统将积极应对每一个威胁。由于它基于行为而非签名,因此您可以免受未知或未来的威胁和零日攻击。
除了令人印象深刻的功能集之外,SolarWinds Security Event Manager 的仪表板可能是它最好的资产。凭借其简单的设计,您可以轻松找到使用该工具的方法并快速识别异常情况。
该工具的起价约为 4500 美元,物超所值。
如果您想试用它并了解它在您的环境中如何工作,可以下载功能齐全的免费 30 天试用版。
PRTG Network Monitor是一个网络监控平台,包括Windows事件日志传感器和Syslog接收传感器。Windows事件日志传感器监控Windows系统和应用日志文件,并显示日志消息的速率。该系统日志接收传感器记录的由设备在网络中发送的每秒系统日志文件的数量和过滤。过滤器是可自定义的,因此可以确定哪些活动将触发警报。
PRTG Network Monitor提供的通知系统具有高度可定制性。可以确定是否要通过电子邮件,短信或推送通知来接收。警报选项范围意味着你几乎可以在任何设备上从PRTG接收网络性能更新。
它的免费版本最多支持100个传感器,之后你必须使用付费版本。
它也提供30天的免费试用。
Papertrail是Windows的日志分析器,可自动扫描日志数据。扫描日志数据时,可以选择希望扫描结果显示的信息。例如,可以选择扫描是否包含IP地址,电子邮件地址, GUID/UUID,HTTP(s)URL,域,主机,文件名和引用文本。
Papertrail的一个重点是事件的解决。为了帮助你更快地找到安全事件的原因,可以按时间,来源或选择的自定义字段筛选日志事件。以这种方式过滤日志可以消除不相关的数据,并专注于最重要的数据。
Papertrail提供的另一种类似过滤选项允许你检测日志数据的趋势。可以按源,数据,严重性级别,工具或消息内容过滤事件。过滤后的搜索完成后,你将能够在屏幕底部查看结果图表。
Papertrail易于部署的日志分析器的理想选择。它提供免费的计划,允许你每月监控多达100 MB的数据。
XpoLog可以通过网络收集和分析来自设备的日志。XpoLog实时监控日志以发现性能问题并创建警报。用户可以定义警报规则并实施自己的过滤规则。
XpoLog能脱颖而出的一个特点是它的AI驱动的错误检测。AI可以发现错误,安全风险,并区分表明性能不佳的日志模式。错误检测用于自动化日志管理,并确保你不会错过任何有问题的活动。但是,如果想仔细查看,可以使用自动日志搜索功能在运行手动搜索时查看。
XpoLog的价格取决于你需要的用户数,保留数和数据量。Basic版本是免费的,每天支持1GB,5天数据保留。
流行的网络监控工具WhatsUp Gold背后的团队IpSwitch也有一个名为EventTracker的日志管理解决方案。EventTracker可以收集和分析Windows事件,Syslog和W3C/IIS日志文件中的日志数据。该程序可以实时检测安全事件。EventTracker的实时日志分析功能使其成为事件检测和响应的理想选择。
实时事件警报为日志活动提供了额外的可见性。有提供数百种不同的警报外的开箱与EventTracker。警报包括取证分析,以便你在对安全事件的解决方案进行故障排除时可以使用其他数据。
为了让团队了解事件日志的发展,EventTracker会自动将报告分发给关键员工,经理和相关者。报告符合HIPAA,Sarbanes,OXLEY,PCI DSS,NISPOM,MiFID和FISMA。有超过1500种不同的报告供选择。使用这些报告中的信息有助于确定网络中是否存在需要解决的漏洞。
如果你正在寻找易于使用的Windows日志管理解决方案,那么EventTracker值得试试。