通过nginx访问日志快速展示/分析平台使用量(Filebeat+Elasticsearch+Grafana)-1

280 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第15天,点击查看活动详情

简介

对于一个平台的使用量信息,部分是可通过db里的数据统计出来的,而另外一部分如果没有在接口进行数据埋点的话(例如一些GET请求,可能没有对DB或其他存储做任何操作),则统计起来会比较困难。这个时候能想到的就是日志,而通常只关心用户的操作的话,nginx的access日志是最好的选择,本文以后端接口调用的nginx访问日志为源,使用Filebeat+Elasticsearch+Grafana快速搭建针对平台使用量(可用于系统压力分析,用户行为分析,热点功能分析等)的数据可视化展示。

概览

本着快速搭建的目标,整体结构尽可能简单,下图中橘色的部分即本文介绍的重点。

image.png

搭建部署

由于ES作为数据源要在Grafana中添加,同时作为日志数据的中间存储,也需要配置到Filebeat进行数据推送,所以下面先搭建ES(如果使用已有ES集群,请注意与Filebeat的版本匹配,Elastic的全家桶推荐同版本配合使用,否则请先测试兼容性)

ElasticSearch

ES用于存储解析后的nginx访问日志,作为数据源供Grafana生成可视化数据图表。如果使用已有集群,可跳过此节

官方下载(本文使用版本为7.13.2)

www.elastic.co/downloads/e…

安装配置(linux环境)

下载

如果只是本地进行测试,基本上不需要配置,直接启动即可(只能本地访问),但如果是需要对外提供服务,需要进行配置(本文只做简单的单节点服务配置)

配置监听地址(允许外部访问)

  • vi config/elasticsearch.yml
  • 找到network.host进行配置:network.host: 0.0.0.0
  • 保存

启动xpack安全认证

  • vi config/elasticsearch.yml
  • 添加如下配置
    • xpack.security.enabled: true
    • xpack.security.transport.ssl.enabled: true
  • 保存

配置为单节点模式(本文只简单启动一个单节点ES,如果需配置集群请参考ES文档)

  • vi config/elasticsearch.yml
  • 添加 discovery.type: single-node
  • 保存

初始化ES的keystore

  • ./bin/elasticsearch-keystore create

初始化ES账户密码(自行设置密码或自动生成密码, 需要先启动服务)

  • ./bin/elasticsearch -d
  • ./bin/elasticsearch-setup-passwords interactive
  • [可选自动生成密码]./bin/elasticsearch-setup-passwords auto
  • 重启服务