ELK学习笔记之F5利用ELK进行应用数据挖掘系列(1)-HTTP
0x00 概述
F5 BIGIP从应用角度位于网络结构的关键咽喉位置,可获取所有应用的流量,针对流量执行L7层处理,即便是TLS加密的流量也可以通过F5进行SSL offload。通过F5可以统一获取所有应用的请求元数据,而不用关心应用是部署在何种系统架构中,这可以大大简化针对不同应用系统进行应用性能分析、日志采集工作。BIGIP TMOS系统提供了多种方法帮助实现统一信息收集,包括:
- HTTP Request logging profile
- DNS logging profile
- Avr
- iRule HSL
- System logging HSL
支持高速信息输出而无需过分担心性能下降。
ELK是一个功能强大的集数据收集、存储、分析、索引、可视化的开源套件,支持多种数据结构输入输出。
本文是系列文章的第一篇,描述如何利用F5 LTM HTTP request logging 功能与ELK进行整合,进行HTTP 应用性能透视与分析。通过数据分析,可以进行诸如:
- HTTP请求类型分布
- URL访问排名
- 同一资源池中各个服务器的http响应延迟
- 单URL的响应延迟
- 访问总请求数
- URL或服务器延迟趋势
- URL或服务器最大最小延迟
- 响应大小分布
- HTTP协议版本分布
- 访问者地理位置跟踪
- HTTP 响应代码分布及趋势
- HTTP响应错误率统计
- L4连接数
- API请求调用延迟
- 重API分布
- API失败率分析
- 请求线路分布
- 。。。。
通过持续获取应性能信息数据,建立应用性能基线。当应用流量突增时,可直观发现突发流量来自于哪里,分布在哪些链路,哪些请求属于热点请求,应用响应延迟变化,趋势,URL/API拥堵情况,服务器性能状态。以及快速增长的URL之间是否存在业务上的前后逻辑,进而可以帮助判别是否为自动化的L7 DDOS等。
0x01 架构原理
F5 LTM通过配置 request logging profile模板输出HTTP请求与响应有关的数据,数据通过F5的High speed logging(HSL)功能直接输出到logstash监听的TCP端口上,Logstash通过使用Grok filter对原始数据进行规则过滤,格式化后的数据输出到elasticsearch服务器,通过kibana程序进行数据整理、可视化输出,下图描述了各功能组件间关系。

0x02 ELK搭建
https://www.myf5.net/post/2489.htm
0x03 LogStash配置文件
https://github.com/myf5/f5-elk-demo/blob/master/loggprofile-logstash-xff_pre-stage.md
0x04 F5侧配置
1. 配置一个pool,用于被logging profile调用,该pool的成员是logstash的服务器地址,端口为上述步骤中logstash启动的端口

2. 配置request logging profile, 只需设置resposne setting部分,request部分不用设定。模板详细内容请参考 https://github.com/myf5/f5-elk-demo/blob/master/loggprofile-logstash-xff_pre-stage.md

3. 配置vs,并应用上述logging profile
4. 访问vs业务,此时所有响应消息将被发送至logstash并被输入到elasticsearch中
0x05 Elastic search集群状态

所有以f5-request开头的类型都是相关request请求数据,数据被分为5个shards,并有一个备份。
0x06 Kibana数据分析
创建一个以f5-request-*为索引条件的pattern

选择正确的搜索时间,可以在discover界面中看到原始数据的输出:

可视化模块的定义

最后组装dashboard进行统一展示:

以上是部分可视化分析样例,通过对原始数据的充分精细加工,可以找到更贴合实际需求的可视化输出。下一篇文章将描述如何利用DNS logging profile建立DNS性能数据透视
更详细信息请访问https://github.com/myf5/f5-elk-demo/
参考
ELK学习笔记之F5利用ELK进行应用数据挖掘系列(1)-HTTP的更多相关文章
- ELK学习笔记之F5利用EELK进行应用数据挖掘系列(2)-DNS
0x00 概述 很多客户使用GTM/DNS为企业业务提供动态智能解析,解决应用就近性访问.优选问题.对于已经实施多数据中心双活的客户,则会使用GSLB提供双活流量调度.DNS作为企业业务访问的指路者, ...
- ELK学习笔记之F5 DNS可视化让DNS运维更安全更高效-F5 ELK可视化方案系列(3)
0x00 概述 此文力求比较详细的解释DNS可视化所能带来的场景意义,无论是运维.还是DNS安全.建议仔细看完下图之后的大篇文字段落,希望能引发您的一些思考. 在“F5利用Elastic stack( ...
- ELK学习笔记之CentOS 7下ELK(6.2.4)++LogStash+Filebeat+Log4j日志集成环境搭建
0x00 简介 现在的公司由于绝大部分项目都采用分布式架构,很早就采用ELK了,只不过最近因为额外的工作需要,仔细的研究了分布式系统中,怎么样的日志规范和架构才是合理和能够有效提高问题排查效率的. 经 ...
- Android(java)学习笔记206:利用开源SmartImageView优化网易新闻RSS客户端
1.我们自己编写的SmartImageView会有很多漏洞,但是我们幸运的可以在网上利用开源项目的,开源项目中有很多成熟的代码,比如SmartImageView都编写的很成熟的 国内我们经常用到htt ...
- 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回
作者:ssslinppp 时间:2015年5月26日 15:32:51 1. 摘要 本文讲解如何利用spring MVC框架,实现ajax异步请求以及json数据的返回. Spring MV ...
- Android(java)学习笔记149:利用开源SmartImageView优化网易新闻RSS客户端
1.我们自己编写的SmartImageView会有很多漏洞,但是我们幸运的可以在网上利用开源项目的,开源项目中有很多成熟的代码,比如SmartImageView都编写的很成熟的 国内我们经常用到htt ...
- ELK学习笔记(一)安装Elasticsearch、Kibana、Logstash和X-Pack
最近在学习ELK的时候踩了不少的坑,特此写个笔记记录下学习过程. 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因 ...
- ELK学习笔记之基于kakfa (confluent)搭建ELK
0x00 概述 测试搭建一个使用kafka作为消息队列的ELK环境,数据采集转换实现结构如下: F5 HSL–>logstash(流处理)–> kafka –>elasticsear ...
- ELK学习笔记之Logstash详解
0x00 Logstash概述 官方介绍:Logstash is an open source data collection engine with real-time pipelining cap ...
随机推荐
- 开发中清除css加载的缓存使用
- OBV15 案例5,上M10拉高出货
- vue中axios的封装
第一步还是先下载axios cnpm install axios -S 第二步建立一个htttp.js import axios from 'axios'; import { Message } fr ...
- STL(标准模板库)基本概念
一.什么是STL STL(Standard Template Library,标准模板库)的从广义上讲分为三类:algorithm(算法).container(容器)和iterator(迭代器),容器 ...
- html5-移动端布局模板
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- Azure Messaging-ServiceBus Messaging消息队列技术系列1-基本概念和架构
前段时间研究了Window Azure ServiceBus Messaging消息队列技术,搞了很多技术研究和代码验证,最近准备总结一下,分享给大家. 首先,Windows Azure提供了两种类型 ...
- MySql 存储过程 光标只循环一次
[1]MqSql 存储过程 光标只循环一次 针对MySql存储过程,光标只循环一次就退出的场景,可能原因分析: (1)存储过程有问题(仔细检查语法.控制变量.条件等等) (2)保证存储过程正确.调用过 ...
- xml 的 <![CDATA["URL"]]>
<![CDATA["URL"]]>:用于 xml 处理特殊字符,比如:& <PolicyURL><![CDATA[ http://ectp.t ...
- 按渠道计算 PV 和 UV
按渠道计算 PV 和 UV: ------------------按指定channel_id按月求PV.UV------------ drop table if exists tmp_pvuv; cr ...
- JAVA程序测试感受
上周四下午,我们进行了JAVA测试,心里很慌,在家中只是学习了JAVA程序的输入.输出以及各种数据类型使用而已,王建民老师给我们发了一份JAVA的课前测试样卷,是关于学生信息管理系统的,我们提前从学长 ...