介绍:此项目将nginx日志导入es,并用grafana做看板分析nginx日志

一、grafana接入es数据源

  1. Add data source
    在这里插入图片描述
  2. select Elasticsearch 数据源
    在这里插入图片描述
  3. 填写es数据源地址等信息
  • name:数据源名称。(自行填写)
  • URL:es数据源地址
  • Index name:es索引名称。
  • Time field name:时间字段 (和es数据字段保持一致)
    在这里插入图片描述

二、新建dashboard

  1. create new dashboard
    在这里插入图片描述
  2. 设置dashboard 名称等
    在这里插入图片描述
  3. 修改名称并加入对应文件夹
    在这里插入图片描述

三、创建面板(panel)

  1. 绘制panel前,可以自定义一些变量
  • 创建数据源变量database,并支持多选和全选
    在这里插入图片描述
  • 创建domain变量:引用刚才创建的$database变量,并通过query语句 {“find”:“terms”,“field”:“http_host”} ,查询出所有的域名
    在这里插入图片描述
  • 以此类推,创建需要创建的变量
    (1)状态码 $status
    (2)nginx主机 $proxy
    (3)获取数据的时间间隔 $inter
    在这里插入图片描述
  • 变量创建效果如下:
    在这里插入图片描述

在这里插入图片描述
2. 绘制面板

(1)绘制域名流量面板
在这里插入图片描述
Query:Lucence查询语法,过滤出所选域名
Alias:设置为别名
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)绘制域名接口流量看板
在这里插入图片描述
(3)绘制域名接口延时
在这里插入图片描述
在这里插入图片描述
(4)过滤出4xx日志,以nginx维度展示。同理接口维度和upstream维度以此类推
在这里插入图片描述

  • 绘制过程中的一些坑点
    (1)域名中带特殊符号,设置别名展示时会转义
    例:test-aa.bb.com 别名设置(Alias): ${domain} 展示效果为test\-aa.bb.com
    解决方法:${domain:raw}
    (2)Min Doc Count = 0 会将强制读取所有结果,发现分组过滤的数据有问题时,可以尝试不设置此参数
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐