你还用ES存请求日志?ClickHouse+Vector打造最强Grafana日志分析看板

为什么要做NGINX日志分析看板

Grafana官网的dashboards有NGINX日志采集到ES数据源的展示看板,也有采集到LOKI数据源的展示看板,唯独没有采集到ClickHouse数据源的展示看板。所以这个轮子是必须要造的。

为什么不使用ES存储

ElasticSearch是全文检索引擎的文档数据库,对于业务日志、异常日志、多行日志这类,非结构化、半结构化的日志数据,经常需要做关键字查询,模糊匹配等操作,非常适合使用es,使用倒排索引实现快速全文搜索。

ClickHouse是一个列式存储数据库,尤其擅长处理结构化的大规模的SQL查询和聚合分析操作,所以针对NGINX这类结构化的请求日志,在处理多维分析、聚合查询、分组统计等操作速度极快,并且压缩比极高,存储成本比ES低10倍,CPU、内存的占用也有巨大优势。

NGINX日志采集架构

  • 基础架构

在这里插入图片描述

  • 完整架构

在这里插入图片描述

Grafana请求日志分析看板预览

该看板是基于 ClickHouse + Vector 的NGINX请求日志分析看板。包括请求与耗时分析、异常请求分析、用户分析、地理位置分布图、指定接口分析、请求日志明细。

尤其在异常请求分析方面,总结多年异常请求分析经验,从各个角度设计大量异常请求的分析图表。

  • 整体请求与耗时分析
    在这里插入图片描述

  • NGINX异常请求分析

在这里插入图片描述

  • 用户请求数据分析

在这里插入图片描述

  • 地理位置数据分析

在这里插入图片描述

  • 指定接口明细分析

在这里插入图片描述

  • 请求日志详情分析

在这里插入图片描述

导入NGINX请求日志分析的Grafana看板

Grafana看板ID:22037

下载地址:

https://grafana.com/grafana/dashboards/22037

注意:

  • 在Grafana中增加ClickHouse数据源时,注意点开Additional settings右边的箭头,配置Default database为存放日志的默认库,如上的:nginxlogs。
  • 如果你保存日志的表名不是access结尾的,项目菜单会没有数据,需要点击看板右上角的设置-变量-project,在下方的Regex项,输入你需要展示的日志表的正则,或者留空,展示默认库的所有表。
posted @ 2024-11-02 15:02  StarsL  阅读(73)  评论(1编辑  收藏  举报