使用ELK监控Nginx日志实现接口流量访问统计
前段时间自己看书学习了一下elasticSearch,后面自己实践了使用elasticSearch、logStash、kibana搭建一个网站接口流量访问统计的监控看板。在这里做一些记录学习。
先看一下最终的结果:下面这个折线图就是我自己后台服务的访问接口的流量和总数,可以在右上角按照日期进行筛选查看
整个看板监控的实现过程很简单:主要使用logStash对Nginx的接口访问日志进行收集->存储到elasticSearch索引->在使用kibana对elasticSearch索引进行可视化分析,从而实现一个接口的流量访问统计的简单看板。
本文主要从三个部分讲解:
1、使用logStash对Nginx的接口访问日志进行收集
2、elasticSearch安装使用
3、使用kibana对elasticSearch索引进行可视化分析
PS:在这里我使用的是Windows环境、首先下载软件并准备好环境,注意版本号一定要统一,因为ES7.X的版本做了很多改动,移除了索引类型,客户端API的许多实现都和旧版本不一样。ELK的版本需要下载对应版本。在这里就不进行过多讲解。只讲解需要注意的事项。另外我自己写了一个简单的springboot项目,使用thymeleaf提供了几个简单的页面接口。我们最终将通过ELK实现对这几个接口的访问流量的监控。
- 使用logStash对Nginx的接口访问日志进行收集
logStash我使用的是6.8.1 ,安装成功后,需要在config中进行配置,如下图,需要新建一个patterns文件夹。作用下面会讲解。同时建立一个 logstash.conf文件,通过指令 “bin\logstash -f config\logstash2.conf” 指定 以logstash.conf配置启动,配置文件下面会进行讲解。
首先讲解一下logstash.conf的内容:
主要有三部分 input、output、filter
其中input和output是logstash配置日志收集输入源和输出源。
输入源input: 这里我配置的输入源就是 我Nginx的访问日志路径,start_position表示从开始读取。注意:input下面我使用的是file表示文件输入源。logstash还提供了许多输入源,包括stdin(控制台输入)、tcp网络输入、filebeat的方式等。
输出源output:这里我配置的是es的索引创建。hosts表示es的服务地址,其中es的9200端口表示 是ES节点与外部通讯使用的端口。它是http协议的RESTful接口,而9300表示ES节点之间通讯使用的端口。它是tcp通讯端口,集群间和TCPclient都走的它。index表示创建索引名称 %{}使用了logstash表达式,表示到天结束,意思就是每天都会有一个新的索引创建,这样我们后面使用kibana进行分析,也可以使用索引模式细化到每一天进行分析。例如:1号和2号就会创建两个索引cgg-nginx-logs-1999-01-01,cgg-nginx-logs-1999-01-02。
过滤器filter:表示logstash的过滤器插件,作用就是日志通过输入源到输出源,会先经过过滤器进行一次转换。filter我们使用的是grok正则表达式。pattern_dir表示正则的存放路径,对应的就是我们上面建立的正则文件patterns下面的nginx正则。grok正则的语法和我们平时使用的正则语法有些不一样,学习地址:http://doc.yonyoucloud.com/doc/logstash-best-practice-cn/index.html ,如果我们自己写的grok正则有问题,我们还可以使用kibana的grok debugger进行调式。发现问题。
- elasticSearch安装使用
上面讲解了将nginx的日志按天存到了es的索引,这里就主要讲一下es的安装,ES我们使用6.8.0。安装好后同样需要配置一下配置文件elasicsearch.yml和jvm.options。
这里说一下 es和kibana都是java语言编写的,logstash使用的是JRuby。启动es需要在yml配置一下启动集群和节点的参数。同时在jvm.options文件中配置jvm启动项,由于我使用的是个人电脑,我们在操作时候可以把初始化堆和最大堆内存设置小一点,避免内存不足启动失败。
yml配置:
jvm.options配置:
最后进入es bin目录使用命令elasticsearch进行启动即可
- 使用kibana对elasticSearch索引进行可视化分析
kibana我使用的版本是6.8.1,kibana的配置在kibana.yml中配置我们本地搭建的话,es和kibana都在一台机器上,yml中默认会配置es的url为本地的地址,就不需要特殊配置了。
启动kibana后,都是英文的操作提示,kibana提供了国际化的设置,我们可以在yml加上中文配置 i18n.locale: "zh-CN" ,这样方便学习。
最后进入kibana的bin目录直接双击启动kibana,进入kibana,我们下面进行可视化面板的配置。
1、首先创建索引模式,搜索我们刚才在logstash创建的索引,进行创建。
2、下一步后,我们选择使用时间戳进行筛选,最后完成创建。
3、创建完成索引模式后,新建可视化组件,这里我们新建一个折线图来观察接口的访问流量。选中折线图,索引模式选中cgg-nginx*对应我们logstash中创建的索引模式。*表示匹配所有,因为logstash是安装每天时间创建一个索引,使用*我们就可以匹配所有的nginx索引
4、添加折线图后,我们开始编辑折线图的各项指标,Y轴我们表示计数,对应索引模式中的文档个数,X轴我们选中日期,表示时间。时间间隔我们可以选择毫秒、秒等单位,具体看接口流量。然后点击三角表示生成折线图。最后我们点击保存组件。
5、最后进入仪表盘,创建仪表盘,点击添加可视化组件,把刚才创建的折线图添加进来。大功告成,我们通过postman或者jmeter批量调用我们的接口,然后点击右上角的刷新,就可以实时体现接口的访问流量了。
使用ELK监控Nginx日志实现接口流量访问统计的更多相关文章
- ELK监控nginx日志总结
ELK介绍 ELK即ElasticSearch + Logstash + kibana ES:作为存储引擎 Logstash:用来采集日志 Kibana可以将ES中的数据进行可视化,可以进行数据分析中 ...
- ELK对nginx日志进行流量监控
ELK对nginx日志进行流量监控 一.前言 线上有一套ELK单机版,版本为5.2.1.现在想把nginx访问日志接入到elk里,进行各个域名使用流量带宽的统计分析.要把nginx日志传输到elk上, ...
- 利用 ELK系统分析Nginx日志并对数据进行可视化展示
一.写在前面 结合之前写的一篇文章:Centos7 之安装Logstash ELK stack 日志管理系统,上篇文章主要讲了监控软件的作用以及部署方法.而这篇文章介绍的是单独监控nginx 日志分析 ...
- ELK系统分析Nginx日志并对数据进行可视化展示
结合之前写的一篇文章:ELK日志分析平台搭建全过程,上篇文章主要讲了部署方法.而这篇文章介绍的是单独监控nginx 日志分析再进行可视化图形展示. 本文环境与上一篇环境一样,前提 elasticsea ...
- 使用Docker快速部署ELK分析Nginx日志实践(二)
Kibana汉化使用中文界面实践 一.背景 笔者在上一篇文章使用Docker快速部署ELK分析Nginx日志实践当中有提到如何快速搭建ELK分析Nginx日志,但是这只是第一步,后面还有很多仪表盘需要 ...
- 使用Docker快速部署ELK分析Nginx日志实践
原文:使用Docker快速部署ELK分析Nginx日志实践 一.背景 笔者所在项目组的项目由多个子项目所组成,每一个子项目都存在一定的日志,有时候想排查一些问题,需要到各个地方去查看,极为不方便,此前 ...
- 转载:通过监控Nginx日志来实时屏蔽高频恶意访问的IP
通过监控Nginx日志来实时屏蔽高频恶意访问的IP 目前在我的VPS上主要通过两种方式来限制ip的访问次数. 通过Nginx的limit_req配置来限制同一ip在一分钟内的访问次数 通过Ngin ...
- ELK整合Filebeat监控nginx日志
ELK 日志分析 1. 为什么用到 ELK 一般我们需要进行日志分析场景:直接在日志文件中 grep. awk 就可以获得自己想要的信息.但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如 ...
- 利用ELK分析Nginx日志生产实战(高清多图)
本文以api.mingongge.com.cn域名为测试对象进行统计,日志为crm.mingongge.com.cn和risk.mingongge.com.cn请求之和(此二者域名不具生产换环境统计意 ...
随机推荐
- 【笔记】sklearn中的SVM以及使用多项式特征以及核函数
sklearn中的SVM以及使用多项式特征以及核函数 sklearn中的SVM的使用 SVM的理论部分 需要注意的是,使用SVM算法,和KNN算法一样,都是需要做数据标准化的处理才可以,因为不同尺度的 ...
- Asp.Net Core 使用 Sqlite 数据库
在Asp.Net Core 使用 Sqlite 数据库 在Asp.Net Core(5.0)项目中使用Sqlite数据库的设置, 1,创建新web项目 2,安装下面的依赖包 Install-Packa ...
- NOIP 模拟 $26\; \rm 降雷皇$
题解 \(by\;zj\varphi\) 用树状数组优化一下求最长上升子序列即可. 至于第二问,在求出答案后开 \(n\) 棵线段树,每颗维护当前最长上升子序列长度的方案数. Code #includ ...
- 题解 matrix
传送门 无比毒瘤的dp题,而且伪装地好像很可做的样子 考场上我给它氪了差不多一个小时最后还是只能扔了个20pts状压走人 以下思路基本均来源于题解: 对于此题,题面中三个限制条件: (1)第 i 行第 ...
- SpringCloud升级之路2020.0.x版-21.Spring Cloud LoadBalancer简介
本系列代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford 我们使用 Spri ...
- 【java虚拟机】jvm调优
转自:https://www.cnblogs.com/starhu/p/6400348.html?utm_source=itdadao&utm_medium=referral 堆大小设置JVM ...
- 【CSS简介、基础选择器、字体属性、文本属性、引入方式】前端小抄(2) - Pink老师自学笔记
[CSS简介.基础选择器.字体属性.文本属性.引入方式]前端小抄(2) 本学习笔记是个人对 Pink 老师课程的总结归纳,转载请注明出处! 一.CSS简介 CSS 的主要使用场景就是布局网页,美化页面 ...
- 将VSCode添加至右键菜单(Windows下)
时间:2018-11-09 记录:byzqy 问题: Windows上面安装Visual Studio Code编辑器后,常常会因为安装的时候忘记勾选等原因,没有将"Open with Co ...
- Python3-sqlalchemy-orm
1 #-*-coding:utf-8-*- 2 #__author__ = "logan.xu" 3 4 5 import sqlalchemy 6 from sqlalchemy ...
- Tolist案例(父子传参实现增删改)
1.Tolist案例(父子传参实现增删改) 目录结构 实现效果: App.jsx class App extends Component { // 状态在哪里, 操作状态的方法就在哪里 state = ...