前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯云 Elasticsearch 实战篇(十七) 构建日志分析系统

腾讯云 Elasticsearch 实战篇(十七) 构建日志分析系统

原创
作者头像
南非骆驼说大数据
修改2020-02-24 22:19:30
1.7K0
修改2020-02-24 22:19:30
举报

前言|

在前面的众多章节中,我们从开源架构ELK讲到腾讯云Elasticsearch Service .最近的六篇中我们讲了腾讯云ES集群的选择、安装、运维监控告警系列。那么围绕这些知识点我们讲了这么多,我们要搞清楚ELK到底能做什么,到底在那些场景下做哪些事?只有搞清楚了它的用途我们才能更有目的的去学习并使用它。<本节提到的Logstash插件后面再详讲>

一、腾讯云Elasticsearch Service使用场景

1,当您运营一个提供客户检索商品的在线电子商城的时候,可以使用ES来存储整个商品的目录和库存,并且为客户提供检索和自动推荐功能。------->站内搜索,比如百度、sohu、或者公司内部网站;

2,收集交易数据,存储数据并做趋势、统计、概要或异常分析。这种情况下,可以使用Logstash来收集、聚合和解析数据,并且存储到Elasticsearch。一旦数据进入Elasticsearch,您可以通过检索、聚合来掌握您感兴趣的信息。---》存储分析可视化

3,价格预警平台,为价格敏感客户提供匹配其需求(主要是价格方面)的商品。

4,在报表分析/BI领域,可以使用ES的聚合功能完成针对大数据量的复杂分析。

5,大数据日志分析平台

总结:那么ELK能做的方向总结为三个方向:站内搜索、数据探索分析、可视化管理。

今天我们来搭建一个日志分析平台,然后对里边的日志进行分析。从0到1构建日志分析平台

二、构建日志分析系统

ELK框架中只有Logstash这个软件没多讲了,但是从前面的学习中我们知道它是一款数据收集、过滤、转发的工具。它是非常强大的一款数据ETL工具。但是在实际的应用中我们如果要去抓取业务服务器的日志用得比较多的还是filebeat.主要是因为它轻量、不消耗内存、而Logstash在收集日志这块往往会导致业务服务器负载过大。

所以,我将以最典型的日志分析架构 Filebeat + Elasticsearch + Kibana 和 Logstash + Elasticsearch + Kibana 为例,介绍如何将用户的日志导入到 ES,并可以在浏览器访问 Kibana 控制台进行查询与分析。

<注意:数据源,当前只支持用户自行接入腾讯云ES 集群>

1, Logstash + Elasticsearch + Kibana + Nginx + Tomcat 构建日志分析平台

首先,看一下数据拓扑图如下:

业务日志获取框架图
业务日志获取框架图

其次:环境准备

  • 需要创建和 ES 集群在同一 VPC 的 CVM,这里部署一台CVM;
  • CVM 需要有2G以上内存,安装Nginx、Tomcat、Logstash、JDK等服务。
  • logstash将Nginx获取到数据传入腾讯ES集群并实现后续分析工作

接下来,安装部署过程如下:

第一步:CVM上安装JDK、Logstash、Nginx,CVM要与ES集群同网段,如果不同网段,那就离线快照导入吧

CVM地址
CVM地址

Tomcat服务启动正常,如下图:

Tomcat服务
Tomcat服务

接下来,我们在Tomcat里跑一下我得网站,看能否正常访问 发现网站没问题。

Tomcat服务正常
Tomcat服务正常

Nginx安装并配置反向代理,转发到Tomcat上。作代理服务器。截图:

Nginx服务启动正常
Nginx服务启动正常

将Nginx与Tomcat实现整合。Nginx的配置如下:

Nginx配置
Nginx配置
Nginx访问
Nginx访问

那怎么表示我的这个访问是通过Nginx反向的代理到Tomcat上的呢?我们可以查看Nginx的访问日志。tail -f /var/log/access.log

access日志文件
access日志文件

那我们重新刷新一下网页,让它产生一下访问日志。截图如下:

Access访问日志
Access访问日志

因此,可以确定:我们的日志是Nginx来产生的。我们就是要抓取它的日志通过Logstash传到ES上去。

接下来, 配置logstash 服务。我的Logstash 安装目录在/usr/local/目录下:

Logstash安装目录
Logstash安装目录

再来看看logstash的配置文件:输入插件如下:

Inputc插件
Inputc插件
output插件
output插件

好,启动Logstash 服务 /usr/local/logstash/bin/logstash -f /user/local/config/*.conf文件,过程如下:

Logstash启动成功
Logstash启动成功

好,那我们访问一下web服务器,看logstash能否接受日志,并输出到屏幕 ,正常输出

Logstash正常输出
Logstash正常输出

接下来,我们去腾讯云ES上看看,数据有没有传到云上去??我们看看~登录腾讯云控制端,打开Kibana界面,添加Index-pattern

Kinana添加索引
Kinana添加索引

我们发现:在Kibana添加索引的时候能自动匹配出ES上的索引,表示我们的数据从CVM上传到云上是成功的。对吧。我们继续操作,如下图:

按时间序列建索引
按时间序列建索引
索引创建成功
索引创建成功

那我们接着打开Kibana的开发工具,search一下索引数据,看是否存在数据呢??

索引数据
索引数据

发现是有数据的。那我们再刷新一下前端,制造点数据,看看,如下图:

查询索引数据
查询索引数据

结果:

我们发现:数据全部上传成功!!我们的日志分析系统搭建完成。

三、数据可视化分析

前面,我们的数据已经通过Nginx--》Logstash--》腾讯云ES---》Kibana,那我们就接着来作数据可视化分析,将前端页面访问动态图形化展示到Kibana上来。

打开kibana,选择可视化,选择如下“Pie”

饼图
饼图
选择索引
选择索引
定义饼图 XY轴
定义饼图 XY轴

最终的效果图为:这样我们就能区分到每个时间段的访问量。对吧

饼图分析
饼图分析

再来看看折线图,如下设置,并且随着访问来那个的变化折线也会有变化

折线图
折线图

我们把上面两个分析图都保存下来,然后放到我们的导航里边,便于参观展示。示意图如下:

导航图
导航图

至此:一个完整的日志搜集系统就已经搭建完成。简单来说分为几部分:服务器搭建、Logstash配置、数据上传、ES、kibana验证、可视化分析并展出。

四、总结

本节从搭建Nginx 、Tomcat服务器开始配置到Logstash搜集日志上传到ES集群并通过Kibana验证展示。想必应该很清晰的让大家感觉到基于Logstash+ES +Kibana的工作流程。那么文章一开始我们讲了两个架构来实现此目的。还有个架构就是filebeat+ES+kibana,其实道理都一样,只是将Logstash换成了filebeat.其它都一样。这里就不带大伙操作了。有时间的化,大家可以自己测试一下。附上filebeat的配置文件把:

代码语言:javascript
复制
 filebeat.inputs:
 - type: log
       enabled: true
       paths:
         - /var/log/nginx/access.log
 output.elasticsearch:
       hosts: ["10.0.1.7:9200"]
       protocol: "http"
       username: "elastic"
       password: "。。。。"

启动服务即可

代码语言:javascript
复制
nohup ./filebeat -c filebeat.yml 2>&1 >/dev/null &

Fileabeat轻量、损耗节点内存可以忽略不计。收集日志可以用它。而logstash主要是作数据过滤。所以,一般应用中常常用得架构是:filebeat + logstash + elasticsearch + Kibana架构,当然,如果日志海量的化,我们就要用到Kafka中间件。后续,我们讲这一经典架构来构建大数据日志分析系统。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言|
  • 一、腾讯云Elasticsearch Service使用场景
  • 二、构建日志分析系统
    • 1, Logstash + Elasticsearch + Kibana + Nginx + Tomcat 构建日志分析平台
    • 三、数据可视化分析
    • 四、总结
    相关产品与服务
    Elasticsearch Service
    腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档