[英]Right tools to implement logging and monitoring
我和我的团队最近开始着手一个新项目。 我们的项目分为 3 层 - 客户端(Winforms 应用程序)、中间件(.NET Core 3.0 Web API)、数据库(PostgreSQL)。 我被指派寻找实现日志记录和监控系统的最佳方法。
我们需要的是记录每个异常(当然),以及我们的中间件对数据库执行的每个查询以及一些审计日志。 请记住,这些日志会经常出现,因为用户同时超过 200 个。
起初我的搜索是从 noSQL 数据库开始的。 我正在考虑选择 MongoDb、Cassandra 或 ElasticSearch,因为它们速度很快,不需要特定的模式并在那里记录所有内容。 但后来我偶然发现了 Nick Craver 的这篇很棒的博客文章——Stack Exchange 的架构负责人。 在那里他提到了StackExchange.Exceptional的使用,我认为这是我们真正需要的。 但我不确定如何实际使用它,以及尼克为我的用例提供的所有出色解决方案中的哪一个。
所以我问:
如果你问我,我将使用 ELKB 堆栈。 我没有使用过OPServer。 所以我不打算对此发表评论。 但我想分享一下我对 elasticsearch 如何实现您的用例的看法。
据我了解,您需要记录两件事:
ELKB 堆栈仅针对这些用例而设计。 那里会有河流般的流动。 您的日志将继续存储在 Elasticsearch 中。
以下是如何实现用例的几个步骤:
第 1 步:设置 Elasticsearch。 为此,您无需成为任何专业人士。 只需按照他们拥有的精彩文档即可。
第 2 步:设置 Logstash / Filebeat,它将实时读取您的日志文件并继续插入 Elasticsearch。
第 3 步:在 elasticsearch 上设置 Kibana。 您将获得数据日志的完整视图。
第 4 步:只需在您的应用程序中添加日志点,您将在其中获得异常或您想要记录其他内容。
优点:
您可以在 Internet 上找到很多 pron。
缺点:
以下是我想分享的几个用例。 我相信它会帮助你理解:
Dream11 : https://medium.com/@D11Engg/elasticsearch-dream11-30328d913cd5
优步: https://eng.uber.com/elk/
易趣: https://www.elastic.co/blog/monitoring-petabytes-of-logs-at-ebay-with-beats
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.