当前位置:首页 > 代码 > 正文

日志管理系统开源代码(日志系统 开源)

admin 发布:2022-12-19 08:23 102


今天给各位分享日志管理系统开源代码的知识,其中也会对日志系统 开源进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

企业开源指南:开源项目管理工具

为了让开源项目办公室顺利运行,您需要正确的工具。这些关键的任务工具将用于追踪各部门的目标与指标,从工程部门和法律部门到行政领导部门、公关部门与营销部门,同时给予员工收集数据、提供开源软件运行快照和管理公司内部开源软件日常使用所需要的全部资源。

-- Todo

开放源代码的战略性应用之路,起始于一个精心策划、组织与授权的开源项目办公室,以指导和管理开源的创建、分发和使用。但这仅仅只是第一步。为了让开源项目办公室顺利运行,您需要正确的工具。这些关键的任务工具将用于追踪各部门的目标与指标,从工程部门和法律部门到行政领导部门、公关部门与营销部门,同时给予员工收集数据、提供开源软件运行快照和管理公司内部开源软件日常使用所需要的全部资源。

本指南提供了如何开始您的开源工具集建设的详细信息和场景,包括用于跟踪和管理您的开源项目的最重要工具的信息。指南中提及的许多工具已由Linux基金会和该领域的其他领导者创建并开放源代码,可以免费且便捷地为您的项目所使用。您还可以找到一个仪表盘安装程序的示例,该程序融合并展示了多种工具的信息。

一旦您的开源项目办公室启动运行,就应该同时收集合适的软件工具,这些工具允许您的开发团队管理、跟踪、指导和推进其开源项目、开源贡献与开源发布。

在您开始您的开放源代码之路时,使用正确的目标工具还将使开发人员和其他员工的工作更为轻松,也将提供更好的结果,并将成为公司开源项目的成功协作与沟通的基础。

公司所需的开源工具有哪些?早期的讨论大多认为,这取决于公司的业务、产品和服务,以及公司如何服务它的客户和员工。由于开源项目办公室制定了规划流程和战略地图,因此可以选择那些能整合进公司的目标、流程和基础架构的工具。

最终,知道您将需要使用哪些工具的唯一方法,就是了解您想要对开放源代码进行何种操作。

以下是开源项目办公室选择所需管理工具的基本步骤:

这些工具一旦被选定,在落地使用之前,还需要一些额外的准备:

当您在选择工具时,实施操作有助于记忆,当然这也可能会影响您的决定。例如,具有陡峭学习曲线的工具可能需要更多的培训。

在认识到达成组织的目标上你团队的需求,以及自身情况和基础架构的潜在限制之后之后,接下来要做的就是要 探索 并了解那些已准备就绪且可供您使用现有工具。由于大多数工具本身就是开源的,所以如果它们一开始并不能满足您的确切需求,您的开发团队可以联系这些工具的开发者,看看他们是否可以协作根据新的用途添加一些特性。

讽刺的是,许多开源项目办公室并不经常直接使用其他公司开发的工具,或与其他公司合作来开发他们管理开源项目所需的工具。通常,他们想要这样做,但包括 Facebook 和微软在内的许多企业已经拥有现有的工具套件,这些工具套件在真正成为一个合作议题之前就已经实现。由于他们已经拥有了自己的工具集并进行了投资,他们似乎并没有很大意愿采用其他公司的工具。

这就是现在才刚开始构建自己的开源项目的公司具有显著优势的地方。由于他们现在正在建立自己的开源项目办公室并进入开源领域,因此他们不必为受到这样的限制而烦恼。

相反,他们可以聪明地利用别人的成功经验与失败教训,并利用近年来领先的公司所创建的成熟工具来构建自己的开源工具箱。 Linux 基金会的开源行业组织,TODO Group,一直致力于组装一个装满工具的 “Open Source Program Office in A Box” 入门套件,这将使公司能够通过一套紧密结合的预先组装工具开展开源工作。入门套件目前尚未开发完善,但希望最终可以让公司付出更少的初始努力,更轻松地部署和配置他们所需的工具。从事这个项目的 TODO Group 成员包括 Adobe、Capital One、Comcast、Facebook、谷歌、eBay、IBM、微软、三星和 Twitter。

除了适当的工具之外,公司还应该有中央仪表板,以便他们实时监控和跟踪他们的开源项目和开发情况。许多公司可能已经拥有了用于现有开发工作和应用程序的仪表板,并且能够将现有仪表板与其开源工作整合在一起。否则,他们应该创建或采用新的仪表板来改进其开源部署的管理。

正在出现越来越多的用于管理和报告开源项目的工具,这一趋势已经非常明显。如果您的开源项目刚刚开始,那么将您的研究集中在几个您启动和运行所需的基本工具上会更有帮助。

随着您的项目不断发展,以及使用这些工具的经验越来越丰富,您可以开始采用新的工具,来帮助自动化并简化您的流程,响应业务需求的增长。切记,新选择的工具将用于内部文化和流程的补充和支持——而不是引导它们。

以下章节列出了几个基本的工具类别,几乎所有开源项目日常使用的工具都可以划分到这些类别。这有助于您对该研究有系统性的认识。

为满足公司的更多需求,自动化工具变得越来越庞大且规模化。它们可以准确地告诉您谁正在为您的项目做出贡献,并且可以帮助您消除那些减慢项目进度的程序摩擦。

据微软表示,在其开源项目办公室里,大约有 8000 个仓库在 GitHub 上托管,涉及约 11,000 名贡献者,而在 2016 年约有 40,000 个内部请求应用于开源项目。为了管理这些请求,以及所创建的代码和正在更新的代码版本,公司转而使用可以自动化解决混乱的工具。不仅如此,由于数百个项目中很可能会共用同一段代码,因此必须对其进行仔细跟踪,以便在出现安全错误时,可以快速绘制并修复所有的软件影响。在如此大规模的情况下,自动化非常关键,手动更新几乎是不可能的。

那些有助于管理关键任务的工具,也是需要考虑和获取的。例如用于项目管理、跟踪项目质量状况,以及确保开发人员、开源社区和其他公司内部人员之间的清晰且快速沟通的。

大多数通过开源项目办公室开发的企业软件项目都使用 GitHub 作为其集中托管和开发的平台。

GitHub 是一个在线源代码管理站点,它允许开源开发人员在一个中央“存储库”或存储空间中管理和存放他们的代码,参与者可以协作并开发他们的代码。如今,大约有 6400 万个开源代码项目在 GitHub 上托管,涉及大约 2300 万个开发人员。

GitHub 用户可以添加代码、查看已提交的代码、申请更改、获取并提供反馈,以及使用该服务提供项目管理。GitHub 使用 Git Version Control System ,这是由 Linux 创建者 Linus Torvalds 开发的开放源代码项目,为代码和合作开源人员提供了组织机构。每位“贡献者”都有他们正在处理的项目存储库的副本,他们可以在自己计算机中的副本里进行更改,然后将其提交回项目以供未来纳入。然后,“ 拉取请求(pull request)”( 示例 )或代码贡献会被项目组织者审查、讨论、修改,最后批准或拒绝。

代码扫描和合规工具也很重要,它们有助于追踪代码起源和许可要求。关注被引入自身基础架构、产品和服务中的开放源代码以确保符合许可证的要求,对于公司来说是很重要的。

例如,您的应用程序可能包含数千个开源组件。为了保护您的公司免于法律纠纷,了解这些细节是至关重要的。在风险较高的情况下,用户必须根据其业务在风险谱中的所处位置,深入了解代码,从而深入地审核并验证他们所说的许可证。(请参阅我们关于使用和分发开放源代码的指南。)

如前所述,GitHub 是服务于目前大多数开源项目办公室的专业源代码管理系统。但是 GitHub 本身并不能满足项目代码管理的所有需求——特别是当您大规模发展的时候。

开源世界中所使用的一些工具旨在通过添加欠缺的功能来改进GitHub本身,例如支持检查开发者原产地证书(DCO)语句,以确保代码可以被合法授权且应用于开源项目中。

GitHub 在代码审查方面也存在一些不足之处,所以有其他可用的工具可以自动将有问题的代码发回给创建它的贡献者,然后要求他们检查并做出必要的修改。GitHub 没有办法强迫任何人检查他们的代码,而这些聪明的工具解决了这一问题,使工作流程得以改善。

其他 GitHub 特定工具的功能用于提高 GitHub 的性能指标,这些功能通常针对特定项目,而不是提供给整个组织详细信息。对于在多个 GitHub 项目中维护许多开源代码库的公司而言,需要更好的工具来组织和汇总它们,使之有意义。亚马逊、Netflix 和微软提供了大量这样的工具来帮助完成这些任务。

以下是一些最流行和实用的源代码管理工具,可以简化并帮助您的 GitHub 运作:

随着开源项目的发展和成熟,监控和跟踪开源项目的整体质量是企业开源项目的核心任务。为了实现这一目标,您必须收集相应的工具,这些工具应当能够反映单独的开源项目的执行过程并反映单独的开源项目在数十、数百甚至数千个项目中被它们的社区接收的过程。同时,这些工具还必须兼具转化能力, 能够将收集的数据转化为体现整个开源组合中整体项目性能的有意义的、实用的且可操作的信息。

这其中的关键是,您收集到的数据应当可以转化为关键且有用的信息 – 而不是些无用的指标,例如详细说明项目已记录了多少“观察者”明星,自项目开始以来有多少贡献者参与了该项目,亦或是缺乏重要背景资料的其他指标。

最好的项目质量监测工具还必须帮助项目团队对支持他们工作的社区做出回应,同时鼓励贡献开发者的参与和多样化。这意味着这些工具可以帮助保持人员快速响应社区成员发布的问题或反馈,以便他们保持热情参与,且不会感到厌倦并转向其他项目。

一些开源社区有大量的贡献者,而其他一些开源社区则成员较少。项目质量监测工具需要能够适用于各种规模的项目。

以下是一些最受欢迎且实用的项目数据统计和项目质量跟踪工具:

TODO Group 还提供了一个 很好的附加工具列表 :

当然,开源的发展并不仅仅关于代码的开发。它还需要在企业内外部从事项目工作的不同群体之间以及公司开源项目办公室的工作人员之间建立良好的沟通与合作。

为了达到上述目标,开发人员可以依靠他们可能已经应用于其他项目的工具,例如 Internet Relay Chat(IRC) ,开发人员可以发布 与开源开发相关的问题并快速收到回复 。另一个例子是 TWiki ,它是一个开源企业 Wiki 和 Web 协作的平台,开发人员可以在其中讨论代码和项目及相关主题。

此外,企业还可以通过社交媒体平台,门户网站,开源项目存储库和其他能够进行输入、提问和讨论的平台促进沟通交流。

其他有用的工具还包括 Facebook 公司的 mention-bot ,它可以通过自动关联潜在审查者来获得拉取请的快速输入周转以审查代码。当 GitHub 目变得太大导致社区成员无法订阅项目的所有通知时,这一工具尤其值得推荐。

然后是 Slack ,这是一个在线团队项目管理与沟通平台,在这一平台中用户可以访问和共享消息和文件,管理工作流程,搜索信息等等。Slack可以通过设置接收支持请求、代码签入、错误日志和其他任务的通知。

除此之外,当谈到公司参与和支持开源时,不要忘记您公司的公关与营销人员。包括 Twitter、Reddit、Facebook、LinkedIn、Google+ 等网站在内的社交媒体帐户以及企业内外部的博客和网站的使用都是非常重要的。客户关系管理(CRM)软件以及电子邮件群发和新闻简报可以帮助公司让客户了解他们的开源进展。

当谈到企业为开源项目提供并应用的工具时,按理说最重要的是那些帮助企业管理自身企业规模 GitHub 操作的工具。GitHub 是一个可以提供许多操作的完美平台,但对于谷歌、微软、脸书、Twitter、LinkedIn 等大型的复杂公司而言,使用标准的 GitHub 产品可能会有很多限制。

大型企业通常需要更多的功能,包括如身份管理、设置和权限管理,安全性和双重身份验证执行,以及深入理解和跟踪代码存储库的方法。

因此,这些大型企业常需要构建专门的自动化工具来处理诸如入职、离职、安全策略执行以及给予开发人员请求的存储库访问权限等任务。

为满足自身的特殊需求,微软构建了自己的工具来处理诸如此类的任务,以简化和改进其开源项目。微软在 GitHub 上运行良好 ,拥有约 1,345 个存储库,迄今为止涉及约 3,580 名开发人员。

微软创建了一款定制的自助服务—— GitHub management and onboarding portal ,用于组织其项目、存储库和团队。在其最简单的层次上,基于 Web 的门户允许开发人员将他们的微软公司ID映射到他们的GitHub ID,这可以提高系统安全性并帮助简化参与大量重要项目的大量开发人员的组织工作。

该门户还允许员工使用 GitHub 和微软进行身份验证。其创建了员工身份的一个“虚拟链接”,以便根据他们的工作角色向他们提供任务所需权限以完成工作。如果员工离开公司,可根据需要调整系统以删除或重新分类其访问权限。

门户运行在一台或多台云服务器上,并依靠缓存来帮助进行会话和减少 GitHub API 的压力。微软门户平均每天可提供约 1000 名独立用户作为其工程师的工具,这是该公司不断发展的开源工作的一部分,该工作现在包括超过 10,000 名正在使用、贡献和发布开放源代码的工程师。

没有人认为使公司进入开源世界是一件简单的事情。但其他许多公司,包括微软和谷歌等巨头已经在您前面这样做了,而且已提供了详细的路线图、代码和建议等,这将使您自己的开源旅程变得更加轻松。

开源项目办公室的创建和选择一系列关键工具来开始开源工作,选择权掌握在您手中。它们很可能已经激发了开发人员的极大期望,开发人员中的许多人可能已经自发为开源项目做贡献(或在工作中,隐秘地)。

通过开源项目的合作并邀请其他人与您合作,您的公司可以获得不可估量的收益,且能通过节能和创新推动公司发展。

拥有正确的工具对于授权贵公司的开放创新至关重要。

使用ELK开源日志分析系统的好处有哪些?

现在的集群所需要解决的问题不仅仅是高性能、高可靠性、高可扩展性,还需要面对易维护性以及数据平台内部的数据共享性等诸多挑战。

系统运维数据既能实现数据平台各组件的集中式管理,方便系统运维人员,提升运维效率,又能反馈系统运行状态给系统开发人员。

Wazuh简介

Wazuh是一个安全检测、可视化和安全合规开源项目。它最初是OSSEC HIDS的一个分支,后来与Elastic Stack和OpenSCAP集成在一起,发展成为一个更全面的解决方案。下面是这些工具的简要描述以及它们的作用:

1.1OSSEC HIDS

OSSEC HIDS是一种基于主机的入侵检测系统(HIDS),用于安全检测、可见性和遵从性监控。它基于一个多平台代理,将系统数据(如:日志消息、文件散列和检测到的异常)转发给一个中央管理器,并在其中对其进行进一步分析和处理,从而产生安全警报。代理将事件数据通过安全且经过身份验证的通道传递给中央管理器,以便进行分析。

此外,OSSEC HIDS提供了一个集中的syslog服务器和一个无代理的配置监视系统,该系统提供了对防火墙、交换机、路由器、接入点、网络设备等无代理设备上的事件和更改的安全洞察。

1.2OpenSCAP

OpenSCAP是一种OVAL(开放漏洞评估语言)和XCCDF(可扩展配置检查表描述格式)解释器,用于检查系统配置和检测脆弱应用程序。

这是一种众所周知的工具,用于检查安全合规性和使用工业标准安全基线对企业环境的加固。

1.3Elastic Stack

Elastic Stack是一个软件套件(Filebeat、Logstash、Elasticsearch、Kibana),用于收集、解析、索引、存储、搜索和显示日志数据。它提供了一个web前端,该前端提供事件的高级仪表板视图,支持深入到事件数据存储的高级分析和数据挖掘。

二、组件

Wazuh的主要组件是运行在每个受监控主机上的代理,以及分析从代理和syslog等无代理源接收到的数据的服务器。此外,服务器将事件数据转发到一个Elasticsearch集群,在这里对信息进行索引和存储。

2.1Wazuh agent

Wazuh代理运行在Windows、Linux、Solaris、BSD和Mac操作系统上。它用于收集不同类型的系统和应用程序数据,这些数据通过加密和经过身份验证的通道转发给Wazuh服务器。为了建立这个安全通道,使用了一个包含唯一预共享密钥的注册过程。

代理可以用来监视物理服务器、虚拟机和云实例(例如Amazon AWS、Azure或谷歌云)。预编译的代理安装包可用于Linux、HP-UX、AIX、Solaris、Windows和Darwin (Mac OS X)。

在基于Unix的操作系统上,代理运行多个进程,这些进程通过本地Unix域套接字相互通信。其中一个进程负责向Wazuh服务器发送通信和数据。在Windows系统上,只有一个代理进程使用互斥对象运行多个任务。

不同的代理任务或过程以不同的方式监视系统(例如,监视文件完整性、读取系统日志消息和扫描系统配置)。

下图表示在代理级别上发生的内部任务和流程:

所有代理进程都有不同的目的和设置。以下是他们的简要说明:

Rootcheck:这个过程执行多个与检测rootkit、恶意软件和系统异常相关的任务。它还对系统配置文件运行某些基本的安全检查。

日志收集器 Log Collector :此代理组件用于读取操作系统和应用程序日志消息,包括平面日志文件、标准Windows事件日志甚至Windows事件通道。还可以将其配置为定期运行并捕获特定命令的输出。

Syscheck:这个过程执行文件完整性监视(FIM),也可以监视Windows系统上的注册表项。它能够检测文件的内容、所有权和其他属性的变化,以及记录文件的创建和删除。虽然它在默认情况下执行定期的FIM扫描,但它也可以配置为与操作系统内核通信,以便实时检测文件更改并生成文本文件的详细更改报告(diffs)。

OpenSCAP:该模块使用已发布的OVAL(开放漏洞评估语言)和XCCDF(可扩展配置检查表描述格式)基线安全概要。通过定期扫描系统,它可以找到不符合众所周知的标准的脆弱的应用程序或配置,例如在CIS(互联网安全中心)基准测试中定义的那些。

代理守护进程 Agent Daemon :这个进程接收所有其他代理组件生成或收集的数据。它通过经过身份验证的通道将数据压缩、加密并交付给服务器。这个进程运行在一个独立的“chroot”(更改根)环境中,这意味着它对被监视系统的访问是有限的。这提高了代理的整体安全性,因为它是连接到网络的唯一进程。

2.2Wazuh server

服务器组件负责分析从代理接收的数据,并在事件匹配规则时触发警报(例如检测到入侵、文件更改、配置不符合策略、可能的rootkit等)。

服务器通常运行在独立的物理机器、虚拟机或云实例上,并运行代理组件,其目的是监视服务器本身。以下是主要服务器组件列表:

注册服务 Registration service :通过提供和分发每个代理特有的预共享身份验证密钥来注册新代理。此流程作为网络服务运行,支持通过TLS/SSL和/或通过固定密码进行身份验证。

远程守护进程服务 Remote daemon service :这是从代理接收数据的服务。它使用预共享密钥来验证每个代理的身份,并加密代理和管理器之间的通信。

分析守护进程 Analysis daemon :这是执行数据分析的进程。它利用解码器识别正在处理的信息类型(如Windows事件、SSHD日志、web服务器日志等),然后从日志消息(如源ip、事件id、用户等)中提取相关数据元素。接下来,通过使用规则,它可以识别解码后的日志记录中的特定模式,这些模式可能触发警报,甚至可能调用自动对策(主动响应),比如防火墙上的IP禁令。

RESTful API RESTful API :这提供了一个接口来管理和监视代理的配置和部署状态。它也被一个Kibana应用程序Wazuh web界面所使用。

2.3Elastic Stack

Elastic Stack是一个流行的用于日志管理的开源项目的统一套件,包括Elasticsearch、Logstash、Kibana、Filebeat等。与Wazuh解决方案特别相关的项目有:

Elasticsearch :一个高度可伸缩,全文搜索和分析引擎。弹性搜索被分配,意味着数据(索引)被分成shard,并且每个shard可以具有零个或更多个副本。

Logstash:收集和解析要保存到存储系统中的日志的工具(例如,Elasticsearch)。收集到的事件还可以使用输入、过滤和输出插件进行丰富和转换。

Kibana:一个灵活和直观的web界面,用于挖掘、分析和可视化数据。它运行在一个Elasticsearch集群上索引的内容之上。

Filebeat:一种轻量级转发器,用于在网络中传送日志,通常用于Logstash或Elasticsearch。

Wazuh与Elastic Stack集成,提供已解码的日志消息提要,这些日志消息将由Elasticsearch索引,以及用于警报和日志数据分析的实时web控制台。此外,Wazuh用户界面(运行在Kibana之上)可用于管理和监视您的Wazuh基础设施。

Elasticsearch索引是具有某些相似特征(如某些公共字段和共享数据保留需求)的文档集合。Wazuh每天使用多达三种不同的索引来存储不同的事件类型:

Wazuh -alerts:每当事件触发规则时,Wazuh服务器生成警报的索引。

wazuh-events:从代理接收的所有事件(归档数据)的索引,无论它们是否触发规则。

wazuh-monitoring:索引与代理状态相关的数据。web接口使用它表示单个代理处于或已经处于“活动”、“断开”或“从未连接”的情况。

索引是由文档组成的。对于上面的索引,文档是单个警报、归档事件或状态事件。

将Elasticsearch索引分成一个或多个shard,并且每个shard可以选择性地具有一个或多个副本。每一主和副本shard是单个的Lucene索引。因此,一个Elasticsearch索引是由许多Lucene索引组成的。当搜索在Elasticsearch索引上运行时,将并行地对所有shard执行搜索,并合并结果。将Elasticsearch索引分成多个shard和复制品用于多节点的弹性搜索集群,目的是缩小搜索和获得高可用性。单节点Elasticsearch集群通常每个索引只有一个shard,没有副本。

三、体系结构

Wazuh架构基于运行在受监视主机上的代理,这些主机将日志数据转发到中央服务器。此外,还支持无代理设备(如防火墙、交换机、路由器、接入点等),并可以通过syslog和/或其配置更改的定期探针主动提交日志数据,以便稍后将数据转发到中央服务器。中央服务器对输入的信息进行解码和分析,并将结果传递给一个Elasticsearch集群进行索引和存储。

一个Elasticsearch集群是一个或多个节点(服务器)的集合,这些节点(服务器)相互通信,对索引执行读写操作。小型Wazuh部署(50个代理)可以由单节点集群轻松处理。当存在大量受监控系统、预期会有大量数据和/或需要高可用性时,建议使用多节点集群。

当Wazuh服务器和Elasticsearch集群在不同的主机上时,Filebeat可使用TLS加密将Wazuh警报和/或存档事件安全地转发到Elasticsearch服务器。

下图说明了Wazuh服务器和Elasticsearch集群在不同主机上运行时组件是如何分布的。注意,对于多节点集群,将有多个Elastic堆栈服务器,Filebeat可以将数据转发到这些服务器:

在较小的Wazuh部署中,使用单节点Elasticsearch实例的Wazuh和Elastic堆栈都可以部署在单个服务器上。在这个场景中,Logstash可以直接从本地文件系统读取Wazuh警报和/或归档事件,并将它们提供给本地Elasticsearch实例。

四、通信与数据流

4.1代理-服务器通信

Wazuh代理使用OSSEC消息协议通过端口1514 (UDP或TCP)将收集到的事件发送到Wazuh服务器。然后,Wazuh服务器解码并使用分析引擎对接收到的事件进行规则检查。触发规则的事件会被添加警告数据,如规则id和规则名称。根据规则是否触发,可以将事件存储到以下一个或两个文件:

文件/var/ossec/logs/archives/archives.json包含所有事件,不管它们是否触发了规则。

文件/var/ossec/logs/alerts/alerts.json只包含触发规则的事件。

Wazuh消息协议使用的是192位Blowfish加密,完全实现了16轮,或者AES加密,每块128位,密钥256位。

4.2Wazuh-Elastic通信

在大型部署中,Wazuh服务器使用Filebeat使用TLS加密将警报和事件数据发送到弹性堆栈服务器上的loghide (5000/TCP)。对于单主机架构,Logstash可以直接从本地文件系统读取事件/警报,而无需使用Filebeat。

Logstash对输入的数据进行格式化,并可选择在将数据发送到Elasticsearch(端口9200/TCP)之前丰富GeoIP信息。一旦数据被索引到Elasticsearch,就会使用Kibana(端口5601/TCP)来挖掘和可视化信息。

Wazuh APP运行在Kibana内部,不断查询RESTful API (Wazuh管理器上的端口55000/TCP),以便显示服务器和代理的配置和状态相关信息,并在需要时重新启动代理。此通信使用TLS加密,并使用用户名和密码进行身份验证。

五、所需端口

对于安装Wazuh和Elastic堆栈,必须有几个网络端口可用并打开,以便不同组件之间能够正确通信。

六、档案数据存储

除了发送到Elasticsearch之外,警报和非警报事件都存储在Wazuh服务器上的文件中。这些文件可以是JSON格式(. JSON)和/或纯文本格式(日志-没有解码字段,但更紧凑)。这些文件每天使用MD5和SHA1校验和进行压缩和签名。目录和文件名结构如下:

建议根据Wazuh Manager服务器的存储容量对归档文件进行轮换和备份。通过使用cron作业,您可以很容易地安排只在管理器上保留一个特定的存档文件时间窗口(例如,去年或过去三个月)。

另一方面,您可以选择完全不存储归档文件,而仅仅依赖于Elasticsearch来存储归档文件,特别是在运行定期的Elasticsearch快照备份和/或具有碎片副本的多节点Elasticsearch集群以获得高可用性时。您甚至可以使用cron作业将快照索引移动到最终的数据存储服务器,并使用MD5和SHA1算法对其进行签名。

日志分析产品日志易与开源系统ELK相比,有什么优势

开源了就意味着大家都可以提高改进代码,有利于软件的自我完善和发展,比如牛逼的linux。劣势就是你对开源软件缺乏掌控力,对于盈利来说很重要

开源日志管理最全对比

日志是系统监控和分析重要数据来源。大部分软件日志是系统运维和监控的唯一来源。那么,开源软件中有哪些提升日志管理软件和项目哪些?又有哪些重量级的产品哪?本文会解决以上问题。

日志包括系统日志、应用程序日志和安全日志。每条日志都记载着时间戳、主机名、使用者及操作行为等相关的描述,系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,及时分析问题、追查错误根源。

网上一个有意思的日志管理图。 与2004年比起来,2014年日志统一采集和管理大幅提升了用户的好感度。那么,好感度从哪里来哪?现在日志管理有哪些构成的哪?一个成熟日志管理系统用于支持运维和系统诊断包括如下功能:

日志管理是日志接入、处理、存储和可视化的过程。如日志数据流程图每个过程都涉及到一些开源软件,下面分别说明。

数据接入也是数据采集。采集源包括系统日志、应用日志、移动App日志等。

采集是对日志进行过滤、转换、聚合、分析、路由、缓存过程,完成采集后非结构化日志变成结构化数据,用于持久化和数据可视化,用于支持运维和故障诊断等。

采集方式分为:

我们列举的软件都是和应用无关。也就是使用非侵入式采集。数据采集现今发展很蓬勃,下文列举热门又好用的采集工具。

上述软件满足了采集层的基本功能,仅列举特色功能。

商业化的BI呈现和分析工具在大数据时代大行其道。在开源领域也有一股清流,为我们BI探索提供实用化实践机会。它是日志管理系统和用户沟通的桥梁,当前又有哪些优秀的开源可视化工具哪?

整理出来可视化工具对比:

值得庆幸的是,大量的开源数据可视化工具能够从空间和表格中获取到独特数据,并通过使用高级图形和图表向用户呈现信息。让数据分析变得容易,用户更专注数据分析和挖掘层面。

上文从数据采集和数据可视化2个角度对比开源的工具集合。构建日志管理系统需要选型,全功能日志管理工具帮助我们解决选项的难题。我们称它是日志管理工具界的 泥石流 。让我们看看都包括哪些?

日志管理随不同业务需求工具会不同,文中涉及开源软件解决大部分日志管理系统的需求场景。

ios开源项目之cocoalumberjack日志框架

CocoaLumberjack是Mac和iOS上一个集快捷、简单、强大和灵活于一身的日志框架。CocoaLumberjack类似于流行 的日志框架(如log4j),但它是专为Objective-C设计的,利用了多线程、GCD(如果可用)、无锁原子操作Objective-C运行时的 动态特性。

快速

在大多数用例中,Lumberjack比NSLog快了一个数量级。

简单

当应用程序启动时,只需一行加单的代码就可配置Lumberjack。然后用DDLog语句简单地取代NSLog语句。 并且DDLog宏与NSLog的有完全相同的格式和语法,所以超级简单。

强大

一个日志语句可以被发送到多个logger,意味着你可以同时记录文件和控制台。此外,还可以创建自己的logger,将日志语句发送到网络、数据库或者分布式文件系统中。没有任何限制。

灵活性

配置你自己想要的日志框架。修改每个文件的日志级别(尤其是测试时)。修改每个logger的日志级 别(详细的控制台,但是简洁的日志文件)。修改每个Xcode配置的日志级别。为你的应用程序定制日志级别的数量。添加自己的精细的日志。在运行时动态修 改日志级别。 选择如何以及何时回滚你的日志文件。将日志文件上传至中心服务器。压缩存档日志文件来节省硬盘空间。

当你遇到一下情况是,你可以选择Lumberjack框架:

1.你想找到一种方式来跟踪在程序中不断出现的不可复制的bug;

2.你对iPhone上的简短日志感到很失望;

3.出于支持系统和稳定性的需要,你想将应用程序升级到下一级别;

4.为你的应用程序(Mac或者iPhone)寻找企业级的日志解决方案。

如何开始使用Lumberjack框架

开始

三步开始使用CocoaLumberjack框架:

1.将Lumberjack文件添加到你的项目中;

2.配置框架;

3.将NSLog指令转换为使用Lumberjack宏指令;

把Lumberjack框架添加到你的项目

需要添加的主要文件有四个:

1.@DDLog(整个框架的基础)

2.@DDASLLogger(发送日志语句到苹果的日志系统,以便它们显示在Console.app上)

3.@DDTTYLoyger(发送日志语句到Xcode控制台,如果可用)

4.@DDFIleLoger(把日志语句发送至文件)

DDLog是强制性的,其余的都是可选的,这取决于你打算如何使用这个框架。例如,如果你不打算纪录到一个文件,你可以跳过DDFileLogger,或者你想跳过ASL以便更快的文件记录,你可以跳过DDASLLoger。

配置框架

首先,你想要在你的应用程序中配置这个日志框架,通常在applicationDidFinishLaunching方法中配置。

开始时,你需要下面两行代码:

[DDLog addLogger:[DDASLLogger sharedInstance]];

[DDLog addLogger:[DDTTYLogger sharedInstance]];

这将在你的日志框架中添加两个“logger”。也就是说你的日志语句将被发送到Console.app和Xcode控制 台(就像标准的NSLog)

这个框架的好处之一就是它的'灵活性,如果你还想要你的日志语句写入到一个文件中,你可以添加和配置一个file logger:

fileLogger = [[DDFileLogger alloc] init];

fileLogger.rollingFrequency = 60 * 60 * 24; // 24 hour rolling

fileLogger.logFileManager.maximumNumberOfLogFiles = 7;

[DDLog addLogger:fileLogger];

上面的代码告诉应用程序要在系统上保持一周的日志文件。

用DDLog替换NSLog语句

DDLog的头文件定义了你用来替换NSLog语句的宏,本质上看起来向下边这样:

// Convert from this:

NSLog(@"Broken sprocket detected!");

NSLog(@"User selected file:%@ withSize:%u", filePath, fileSize);

// To this:

DDLogError(@"Broken sprocket detected!");

DDLogVerbose(@"User selected file:%@ withSize:%u", filePath, fileSize);

我们看到DDLog宏和NSLog的语法完全相同。

所以你所要做的就是决定每个NSlog语句属于哪种日志级别。DDLog默认有四种级别的日志,分别是:

1.@DDlogError

2.@DDlogWarn

3.@DDlogInfo

4.@DDlogVerbose

(注意:你也可以自定义级别以及级别名或者添加更精细的控制来代替系统四个简单的等级。)

当然选择哪个NSLog语句取决于你的消息的严重程度。

下面的这些不同的日志等级也许正有你所需要的:

1.如果你将日志级别设置为 LOG_LEVEL_ERROR,那么你只会看到DDlogError语句。

2.如果你将日志级别设置为LOG_LEVEL_WARN,那么你只会看到DDLogError和DDLogWarn语句。

3.如果您将日志级别设置为 LOG_LEVEL_INFO,那么你会看到error、Warn和Info语句。

4.如果您将日志级别设置为LOG_LEVEL_VERBOSE,那么你会看到所有DDLog语句。

5.如果您将日志级别设置为 LOG_LEVEL_OFF,你将不会看到任何DDLog语句。

那么我在哪里设置日志级别呢,在整个项目中我只能使用一个日志级别吗?

当然不是,我们都知道正如调试或者添加新特性,如果你想详细纪录目前正在做的那部分,Lumberjack框 架提供了对每个文件的调试控制,你仅可以修改编辑中的文件的日志级别。

(注释:当然还有许多其他高级选项,比如全球日志级别,Xcode的每个配置级别,每个logger级别等,我们将在另一篇文章中讲到)。

以下是如何转换你的日志语句:

// CONVERT FROM THIS

#import "Sprocket.h"

@implementation Sprocket

- (void)someMethod

{

NSLog(@"Meet George Jetson");

}

@end

// TO THIS

#import "Sprocket.h"

#import "DDLog.h"

static const int ddLogLevel = LOG_LEVEL_VERBOSE;

@implementation Sprocket

- (void)someMethod

{

DDLogVerbose(@"Meet George Jetson");

}

@end

注意日志级别声明为常量,这意味着这意味着日志级别阈值以上的DDLog语句都将编译到你的项目中。

自动引用计数(ARC)

最新版本的Lumberjack使用ARC。如果你的项目没有使用ARC,你可以在ARC页面学习如何在Xcode中像ARC一样正确地标记Lumberjack文件。

关于日志管理系统开源代码和日志系统 开源的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/5189.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载