ElasticSearch 和索引策略

ElasticSearch and index strategy

我们目前正在设置一个 ELK 堆栈来使用我们的各种日志。目前我们每天只使用一个索引,并且只有来自我们开发的各种应用程序的日志(大约 1 亿文档)。下一步是查看其他类型的日志,例如IIS、来自网络设备 (nlb) 的事件日志以及可能 post 将文档处理成统计数据。所以现在的问题是我们应该使用什么样的索引策略。

  1. 在将文档post 处理成统计数据方面,我最初的想法是为每个应用程序创建一个索引(可能每个 year/month 取决于数据量)。有道理吗?
  2. 关于 IIS 日志和各种事件日志,我们可以只附加到日常应用程序日志(目前每天 20k 日志)。但是我不确定混合日志类型是不是一个好主意,尽管更容易维护。另一种策略是为不同的日志类型(应用程序、iis、事件日志)创建单独的索引。

非常感谢任何对优秀博客 posts/info 的推荐或参考。

不同的日志类型我推荐不同的ES Type。结构化日志记录很重要,例如,您需要以不同于 Elmah 错误日志的方式查询 IIS 日志。您可能还想更改特定字段的索引设置以使其 not_analyzed。

您可以将所有内容保存在同一个滚动 daily/weekly/monthly 索引中,并按类型将它们分开。像这样的每日索引示例:

PUT 20150227

PUT 20150227/iis/_mapping
{
  "properties": {
    "value1": {
      "type": "string"
    }
  }
}

PUT 20150227/errors/_mapping
{
  "properties": {
    "value2": {
      "type": "string"
    }
  }
}