为什么要做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
项,输入你需要展示的日志表的正则,或者留空,展示默认库的所有表。