结合Logstash和Graylog进行日志管理
了解如何结合使用Logstash和Graylog来创建企业级的灵活、可扩展和访问控制的日志管理系统。
1.在经典IT基础架构中工作时,您经常会遇到开发人员只能访问测试或开发环境而不能
访问生产环境的问题。为了修复错误或查看生产中运行的系统,需要访问日志文件。由于安全要求,这通常是不可能的。这种情况的结果是运维人员需要将这些文件提供给开发人员,这可能需要一定的时间。
2.解决这些问题的方法是提供一个日志管理服务器并通过UI授予开发人员访问权限。尽
管有一些商业工具,如Splunk,它是该领域事实上的市场领导者,但仍有一些非常有前途的开源解决方案可以很好地扩展,并且可能提供足够的功能来完成工作。
3.使用开源技术的优势在于您可以订阅。此外,Splunk和Log Analysis等软件有定价计划,
具体取决于您每天发送的日志数量。问题是,如果由于提高日志级别以帮助分析生产中的一些错误,或者只是因为部署了更多服务而导致日志量增加,则您必须支付更多费用。
4.最后但同样重要的是,当然还有像Loggly这样的云解决方案。您基本上可以将您的日
志事件发送到云服务,然后由它处理其余的事情。您不必自己提供任何基础设施。这是一个非常好的解决方案,除非您的组织的安全策略禁止将数据传送到云。
5.当然,这个概述是不完整的。我只是挑选了一些工具进行简要介绍。如果您认为缺少某
些内容,请随时在博客上发表评论或发表评论。
6.开源日志管理
7.著名的ELK-Stack
8.目前,最著名的开源日志管理解决方案可能是ELK-Stack。之所以称为堆栈,是因为它
不是一个软件包,而是众所周知的开源工具的组合。组件是:
9.Elasticsearch是一个针对搜索优化的面向文档的数据库。它易于扩展,可以管理大量数
据。
10.Logstash是一个具有许多功能的日志转发器。有许多类型的输入、过滤器和输出。此外,
小s曾宝仪logstash可以处理一堆编解码器,例如JSON。
11.最后,Kibana是UI,您可以在其中查看日志条目并创建非常复杂且彩丰富的仪表板。
12.尽管ELK-Stack有很多优点,但也有一些缺点,这在某些情况下可能不是最好选择。
13.Kibana没有用户管理。接下来,没有Elasticsearch数据库的内务管理。Logstash为每天
创建一个索引。如果您不再需要它,则必须手动将其删除。
魔方怎么还原14.Graylog是一个替代的日志管理平台,它解决了ELK堆栈的缺点,并且相当成熟。它提
供了一个UI和一个服务器部分。此外,Graylog使用Elasticsearch作为日志消息的数据库以及MongoDB用于应用程序数据。
15.UI基本上完成了UI的工作。它使数据可以在网络浏览器中访问。
网站制作合同
16.服务器部分提供对日志文件的一致管理。Graylog服务器具有以下功能:
17.几个输入:HTTP、TCP、SYSLOG、AMQP、……
18.日志消息(流)的分类
19.定义流的用户管理和访问控制
20.从流创建的简单仪表板
21.Elasticsearch中的内务管理
22.输出以转发特定流的消息
23.此外,Graylog可以轻松部署在集环境中,从而获得高可用性和负载分布。
24.为了创建一个完整的解决方案,将Graylog与Logstash结合起来,对Logstash进行一点
修补和自定义Graylog插件是合适的。
25.作为日志事件的标准,Graylog促进了Graylog扩展日志格式(GELF)的使用。这基本上是
一种JSON格式,包含以下信息:
26.时间戳(Unix):日志事件的时间甜心辣舞3
27.主机:事件发起的主机
28.短消息:消息
29.GELF消息可以包含许多其他可选字段以及用户定义的字段。时间戳对于查看按日志消
息创建时间而非进入系统时间排序的日志消息非常重要。
30.把它们放在一起
31.不幸的是,让Logstash与Graylog对话有点困难,反之亦然。主要问题是Graylog希望
以NULL分隔符结束消息,而Logstash创建\n.Logstash还期望\n在接收日志消息时以及Graylog发送带有NULL分隔符的日志消息。
32.从Logstash向Graylog发送消息
33.使用像RabbitMQ这样的消息代理。Logstash可以写入RabbitMQ,Graylog可以读取。
此解决方案将两个应用程序解耦,以便在Logstash仍在生成日志消息时关闭Graylog服
网上怎样订火车票务器。赠汪伦的意思
34.使用Graylog中的HTTP输入来接收来自Logstash的消息。该解决方案有一些缺点。可
能是如果Graylog已关闭,Logstash会在发送尝试失败后丢弃该消息。
35.使用GELF TCP输入并修补Logstash。不幸的是,无法更改Logstash“json_lines”编解码器
中的行分隔符。这可以在当前作为拉取请求打开的补丁中完成。希望它会尽快合并。使用Logstash TCP输出的优势是Logstash将无法发送的消息排队并重试发送它们。
36.从Graylog向Logstash发送消息
37.首先,将消息从Graylog发送到Logstash可能没有意义。但是,如果您考虑在NAS或
AWS S3上创建基于文件的日志文件存档,那么它可能是有意义的。
38.如上所述,即使行尾出现问题。幸运的是,Graylog提供了一个插件API。所以我创建了
一个插件,可以将日志消息转发到Logstash实例。该实例随后可以写入日志文件。39.该插件托管在Github上,并在APL 2.0下获得许可。
结论
40.如本文所述,您可以毫不费力地将Logstash和Graylog结合起来,以构建企业级的灵活、
可扩展和访问控制的日志管理系统。Graylog和Elasticsearch作为中心组件能够扩展所描述的设置并可
以处理大量数据。
41.Graylog、Logstash和Elasticsearch都是三个高质量的开源工具,拥有强大的社区和众多
用户。所有这些产品也得到了它们背后的公司的商业支持。
42.最后,对于所有Kibana爱好者来说,有一个重要的注意事项。当然,也可以将Kibana
与Graylog并行部署。然后,您可以使用Kibana构建漂亮的仪表板,并在Graylog中拥有用户管理和Elasticsearch Housekeeping等功能。