因此,我必须想出一种方法,让大量数据对用户"可读",并想知道是否有人能指出使用弹性搜索+kibana与使用MRTG之类的方法之间的区别。什么更适合于更关注趋势的数据分析?
您提到的两种方法适用于完全不同类型的数据。
如果您的数据由一系列有时间戳的常规度量值组成,例如来自路由器接口的5分钟流量率样本,或来自温度传感器的1分钟样本,那么MRTG(或者更确切地说,RRDTool,它是后端数据库)非常适合这样做。如果数据不规则,这仍然是可能的,尽管您需要在一定程度上自定义RRDTool数据库设置,以避免出现大的"未知"区域。RRDTool能够对您正在记录的指标进行趋势分析,尽管这不是通过MRTG完成的——您需要直接调用RRDTool函数。
如果你的数据是一个不规则的文本日志条目(事件)序列,可能有可解析的位置数据,并且在深入查看单个事件之前,你对事件的数量或速率更感兴趣,那么Logstash/Kibana就是最好的选择。他们会给你一段时间内事件发生率的图表,但我认为他们不能提供趋势分析。此外,它们不提供嵌入事件日志文本中的解析数据的图形分析。Logstash/kibana非常适合Syslog、Eventlog、应用程序日志(如Apache日志)等,在这些日志中,您更感兴趣的是查看一段时间内发生了多少与特定模式匹配的事件的模式。
您没有提供足够的信息来了解数据的实际性质,也没有提供用户需要什么样的"可读"分析,因此这必然是对功能的高级总结。
Elasticsearch对于存储结构化数据(如文本)非常有效。Logstash的用例是一个如何为有效查询构建数据的示例。
MRTG/RRD是一种用于测量时间间隔数据的工具。每X个时间单位,日志值Y。MRTG/RRD对存储文本无效,它的工作不涉及Elasticsearch的用例。
如果您已经安装并运行了Logstash,Graphite可能是一个需要考虑的工具。Logstash可以将事件激发到Graphite或Statsd,并将您的事件数据存储在ElasticSearch中。石墨/碳的好处在于,它不像MRTG那样与时间间隔挂钩。您可以随意或不频繁地将信息发送到Graphite中。
你在另一个答案中给出的用例将是石墨或类似工具的出色使用。您可以在Graphite中绘制和报告许多基于值的事件,然后使用Elasticsearch将数据关联回事件。(我的意思并不是说与ES和Graphite集成,只是说如果你使用Logstash来推送事件,时间会很容易找到。)