Eri*_*tas 11 elasticsearch kibana kibana-4 elastic-stack
我正在将Elasticsearch和Kibana设置为我们办公室的集中式日志记录平台.
我们有许多自定义实用程序和插件,我想跟踪用户的使用情况以及用户是否遇到任何错误.更不用说还有我想跟踪的服务器和预定工作.
因此,如果我有许多不同的日志数据源,所有这些源都会转到同一个弹性搜索集群,那么它们如何组织成索引和文档类型的约定或最佳实践呢?
Logstash使用的默认索引值是"logstash-%{+YYYY.MM.dd}".所以看起来最好用当前日期后缀任何索引名称,因为这样可以很容易地清除旧数据.
但是,Kibana允许添加可以在UI中选择的多个"索引模式".然而,我读过的所有教程都只提到创建一个单一的模式logstash-*.
如何在实践中使用多种索引模式?我是否只为我的数据的所有来源命名?如:
BackupUtility-%{+YYYY.MM.dd}
UserTracker-%{+YYYY.MM.dd}
ApacheServer-%{+YYYY.MM.dd}
Run Code Online (Sandbox Code Playgroud)
我在一些具有弹性搜索目标的工具中使用nLog.nLog和其他类似日志框架的约定是为源代码中的每个类都有一个"记录器".这些记录器是否应该转换为弹性搜索中的索引?
MyCompany.CustomTool.FooClass-%{+YYYY.MM.dd}
MyCompany.CustomTool.BarClass-%{+YYYY.MM.dd}
MyCompany.OtherTool.BazClass-%{+YYYY.MM.dd}
Run Code Online (Sandbox Code Playgroud)
或者这对于弹性搜索索引名称来说太过细化了,最好只坚持应用程序的单个日期索引?
CustomTool-%{+YYYY.MM.dd}
Run Code Online (Sandbox Code Playgroud)
在我的环境中,我们正在解决一个类似的问题。我们混合了系统日志、来自Prometheus 的指标警报以及来自客户端和服务器应用程序的应用程序日志。此外,我们在客户端和服务器应用程序之间有一些共享变量,让我们可以将两者关联起来(例如,我们知道哪些服务器日志与向所述服务器发出请求的客户端上的某些操作相匹配)。我们正在试验以下方案来帮助 Kibana 为我们解答问题:
logs-system-{date}
logs-iis-{date}
logs-prometheus-{date}
logs-app-{applicationName}-{date}
Run Code Online (Sandbox Code Playgroud)
在哪里:
{applicationName} 是我们编写的某些应用程序的唯一名称(这些可能是客户端或服务器端){date} 是您用于索引的任何基于日期的方案通过这种方式,我们可以针对 logs-app-* 设置 Kibana 搜索,并在我们的任何应用程序中快速搜索日志。这对我们来说仍然是新的,但我们开始时没有这种类型的计划并且已经后悔了。它使得跨应用程序搜索相关日志比应有的要困难得多。
我不知道这样的约定,但对于我的环境,我们过去常常根据严重性级别创建两种不同类型的logstash-*索引logstash-shortlived-*。就我而言,我创建索引模式logstash-*,因为它将满足这两种索引。
由于这些索引将存储在 Elasticsearch 中并且 Kibana 会读取它们,我想它应该为您提供创建不同模式索引的选项。在您的本地计算机上尝试一下。logstash-XYZ如果您想要更多粒度,为什么不尝试一下,否则您始终可以使用自定义名称创建索引。
| 归档时间: |
|
| 查看次数: |
4980 次 |
| 最近记录: |