使用Elastic / Kibana搜索日志条目频率模式?

时间:2017-02-02 13:59:16

标签: datetime elasticsearch statistics kibana analysis

我需要从日志中获取数百万个条目(跨越过去几年),并且不知何故,使用时间戳字段,确定哪些时段(使用星期几作为分组条件)显示最少的活动。 目标是表明,例如,在02:00和04:00之间的星期三历史上显示最低活动水平。 所以,我想象一个图表,在X轴上有时间段(00:00-00:14,00:15-00:29,00:00-00:44 ......或类似的...你得到想法)和Y轴上的日志活动的某种表示。它将显示7个图形线,一周中的每一天。这将使从图中确定哪个时期最安静变得微不足道。

我以前没有亲自使用Kibana,但据我所知,这似乎是用于此类任务的最佳工具。

是否有功能或插件,或具有此功能的?或者我是否需要为此开发自定义解决方案?

1 个答案:

答案 0 :(得分:0)

最后,我放弃了Kibana / Elastic。可能有一种方法,但我只是使用MySQL:

SELECT 
    t.bucket,
    COALESCE(SUM(total), 0) AS total
FROM
    tmp_time_bucket t
        LEFT JOIN
    (SELECT 
        DATE_FORMAT(FROM_UNIXTIME(FLOOR((UNIX_TIMESTAMP(launchtime)) / 300) * 300), '%H:%i:00') AS bucket,
            COUNT(launchtime) AS total
    FROM
        launchjobs
    WHERE
        launchtime <> '0000-00-00 00:00:00'
            AND DAYNAME(launchtime) = 'wednesday'
    GROUP BY FROM_UNIXTIME(FLOOR((UNIX_TIMESTAMP(launchtime)) / 300) * 300)
    ORDER BY launchtime ASC) m ON t.bucket = m.bucket
GROUP BY bucket
ORDER BY bucket ASC

...其中tmp_time_bucket是一个包含名为bucket的单个VARCHAR(8)列的表,其中包含24小时内所有288个5分钟的时间段("00:00:00", "00:05:00", ... "23:50:00", "23:55:00" ,你明白了)

我运行了7次,每天运行一次,并将结果集导出为CSV。然后我使用了http://plot.ly并导入了数据并制作了我需要的图表,如果你感兴趣的话可以在这里看到:https://plot.ly/~theplankmeister/7/?share_key=FZERWAphDIQsa1swGtixb7

查看图表,我可以很容易地看到我在数据中寻找的答案是星期四22:45到星期五00:55。

希望这可以帮助将来的某个人!