Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Beats:运用 Filebeat module 分析 nginx 日志

Beats:运用 Filebeat module 分析 nginx 日志

作者头像
腾讯云大数据
修改于 2021-01-08 08:28:21
修改于 2021-01-08 08:28:21
4.9K00
代码可运行
举报
运行总次数:0
代码可运行

腾讯云 Elasticsearch Service】高可用,可伸缩,云端全托管。集成X-Pack高级特性,适用日志分析/企业搜索/BI分析等场景


在之前的文章中,我介绍了如何使用 Filebeat 把一个日志文件直接写入到 Elasticsearch 中,或通过 Logstash 的方法写到Elasticsearch 中。在今天的文章中,我们来介绍如何运用 Filebeat 来把 nginx 日志导入到 Elasticsearch 中,并进行分析。

Filebeat 模块为你提供了一种快速处理常见日志格式的快速方法。 它们包含默认配置,Elasticsearch 接收节点管道定义和 Kibana 仪表板,以帮助你实施和部署日志监视解决方案。

Filebeat 提供了几种不同的方式来启用模块。 你可以:

  • 在 modules.d 目录中启用模块配置
  • 运行 Filebeat时 启用模块
  • 在 filebeat.yml 文件中启用模块配置

今天我们采用第一种方法来展示如何使用 Filebeat 所提供的模块功能来对 nginx 日志进行分析。

下载测试数据

我已经上传了一个测试数据,它位于:https://github.com/liu-xiao-guo/nginx_log_file。我们可以通过如下的方法来下载这个测试数据:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/liu-xiao-guo/nginx_log_file

等我们把测试数据克隆下来后,我们可以通过如下的方法来解压,并把它存于到一个我们喜欢的目录中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
unzip nginx.zip

我们发现它里面含有一个叫做 nginx.log 的文件。它的大小有 227M。它里面含有1万个 nginx 的日志。

如何得到安装帮助

我们可以先打开我们的Kibana,并点击Kibana左上角的home图标:

点击 “Add log data”,然后,我们可以看到:

点击 “Nginx logs”,然后,你就就可以看到比较全的安装步骤:

在上面,我们根据自己的平台选择适合自己的安装方式。

安装Filebeat

我们可以根据不同的操作系统来进行如下不同的安装:

deb:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.3.1-amd64.deb
sudo dpkg -i filebeat-7.3.1-amd64.deb

rpm:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.3.1-x86_64.rpm
sudo rpm -vi filebeat-7.3.1-x86_64.rpm

mac:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.3.1-darwin-x86_64.tar.gz
tar xzvf filebeat-7.3.1-darwin-x86_64.tar.gz

brew:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
brew tap elastic/tap
brew install elastic/tap/filebeat-full

linux:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.3.1-linux-x86_64.tar.gz
tar xzvf filebeat-7.3.1-linux-x86_64.tar.gz

这样我们的Filebeat就安装好了。请注意:由于ELK迭代比较快,我们可以把上面的版本7.3.1替换成我们需要的版本即可。我们先不要运行Fliebeat。

使用Filebeat模块

当我们安装完 Filebeat 后,我们可以看到在 Filebeat 的安装目录下的文件结果如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ pwd
/Users/liuxg/elastic/filebeat-7.3.0-darwin-x86_64
(base) localhost:filebeat-7.3.0-darwin-x86_64 liuxg$ ls -F
LICENSE.txt        filebeat.reference.yml    filebeat_es.yml
NOTICE.txt        filebeat.template.json    kibana/
README.md        filebeat.yml        logs/
data/            filebeat1.yml        module/
fields.yml        filebeat2.yml        modules.d/
filebeat*        filebeat_apache.yml    sample.log

在这里,我们可以看到它里面有一个叫做 filebeat.yml 的配置文件,还有一个叫做 modules.d 的文件夹。在 filebeat.yml 中,我们做如下的修改:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
setup.kibana:
  host: "localhost:5601"
output.elasticsearch:
  hosts: ["localhost:9200"]

在这里,我们把 host 都指向我们的 localhost,这是因为我们的 elasticsearch 及 Kibana 都安装在本地的电脑上。这两个地址需要根据自己实际的部署的地址改变而改变。

显示 Filebeat 支持的模块

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ ./filebeat modules list
Enabled:
nginx
Disabled:
apache
auditd
cisco
coredns
elasticsearch
envoyproxy
googlecloud
haproxy
icinga
iis
iptables
kafka
kibana
logstash
mongodb
mssql
mysql
nats
netflow
osquery
panw
postgresql
rabbitmq
redis
santa
suricata
system
traefik
zeek

我们可以看出来目前已经被启动的模块是 nginx。它可以通过如下方式来启动:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./filebeat modules enable nginx

当然我们也可以通过如下的方式来关闭这个模块:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./filebeat modules disable nginx

针对我们今天的练习,我们需要启动 nginx 模块。

我们可以通过如下的命令查看在 modules.d 目录下的文件变化:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ pwd
/Users/liuxg/elastic/filebeat-7.3.0-darwin-x86_64
(base) localhost:filebeat-7.3.0-darwin-x86_64 liuxg$ ls modules.d
apache.yml.disabled        mssql.yml.disabled
auditd.yml.disabled        mysql.yml.disabled
cisco.yml.disabled        nats.yml.disabled
coredns.yml.disabled        netflow.yml.disabled
elasticsearch.yml.disabled    nginx.yml
envoyproxy.yml.disabled        osquery.yml.disabled
googlecloud.yml.disabled    panw.yml.disabled
haproxy.yml.disabled        postgresql.yml.disabled
icinga.yml.disabled        rabbitmq.yml.disabled
iis.yml.disabled        redis.yml.disabled
iptables.yml.disabled        santa.yml.disabled
kafka.yml.disabled        suricata.yml.disabled
kibana.yml.disabled        system.yml.disabled
logstash.yml.disabled        traefik.yml.disabled
mongodb.yml.disabled        zeek.yml.disabled

我们可以看到 nginx.yml 文件的最后没有 “disabled” 字样,表明它已经被启动成功。我们进一步编辑这个 nginx.yml 文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Module: nginx
# Docs: https://www.elastic.co/guide/en/beats/filebeat/7.3/filebeat-module-nginx.html
- module: nginx
  # Access logs
  access:
    enabled: true
    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    var.paths: ["/Users/liuxg/data/nginx.log"]
  # Error logs
  error:
    enabled: true
    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    #var.paths: ["/var/log/nginx/error.log"]

在这里,我把文件路径 /Users/liuxg/data/nginx.log 写入到该文件,这是因为我的 nginx.log 文件是位于这个路径的。这个路径需要你依据把 nginx 的日志文件路径改变而改变。

启动模块

为了能够使得我们的 nginx 模块能够正确地被 Kibana 显示,我们必须运行如下的命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./filebeat setup
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ pwd
/Users/liuxg/elastic/filebeat-7.3.0-darwin-x86_64
(base) localhost:filebeat-7.3.0-darwin-x86_64 liuxg$ ./filebeat setup
Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
Loaded machine learning job configurations
Loaded Ingest pipelines

注意:在安装或升级 Filebeat 时,或在启用新模块后,必须执行 setup 命令

运行Filebeat

上面我们已经配置好,下面我们通过如下的命令来把我们的 nginx 日志导入到我们的 Elasticsearch 中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./filebeat -e

我们可以在 Kibana的 “Dev tools” 可以看到最新被创建的 index:

这里的 filebeat-7.3.0 是一个 alias,它指向我们刚被创建的一个 index,比如 filebeat-7.3.0-2019.09.28-000001。

在这里显示的数据是10,000,其实这不是一个真实的文档的数目。它的真实的文档个数是:

这里要注意的一件事是响应中的 hits.total。 它具有10,000和 “relation” =“ gte” 的值。 索引中实际上有 984,887 个文档,我们已经创建了全部。 在 7.0 版发布之前,hits.total 始终用于表示符合查询条件的文档的实际数量。 在 Elasticsearch 7.0 版中,如果匹配数大于10,000,则不会计算 hits.total。 这是为了避免为给定查询计算精确匹配文档的不必要开销。 我们可以通过将 track_total_hits = true 作为请求参数来强制进行精确匹配的计算。

一旦数据被导入到 Elasticsearch 中,我们就可以开始对数据进行分析了。

运用 Kibana 来分析数据

在之前我们已经通过 ./filebeat setup 命令,已经把针对 nginx 的模块仪表盘导入到 Kibana 中了。下面我们就可以使用标准的 dashboard 来对 nginx 数据进行展示及分析。

打开 Discover 查看数据,index pattern 选择 filebeat-*,把时间选择到2018年10月-2018年12月停止

————————————————

版权声明:本文为CSDN博主「Elastic 中国社区官方博客」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://elasticstack.blog.csdn.net/article/details/101604717


最新活动

包含文章发布时段最新活动,前往ES产品介绍页,可查找ES当前活动统一入口

Elasticsearch Service自建迁移特惠政策>>

Elasticsearch Service 新用户特惠狂欢,最低4折首购优惠 >>

Elasticsearch Service 企业首购特惠,助力企业复工复产>>

关注“腾讯云大数据”公众号,技术交流、最新活动、服务专享一站Get~

本文系转载,前往查看

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

本文系转载,前往查看

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ELK、Filebeat环境搭建
ELK为Elasticsearch、Logstash、Kibana简称,Filebeat为日志传输工具
LiosWong
2018/10/29
1.1K0
Spring Cloud + ELK 统一日志系统搭建
ELK 是 Elasticsearch、Logstash、Kibana 的简称,这三者是核心套件,但并非全部。
大数据真好玩
2021/01/26
3.4K0
Elastic Stack内置nginx日志收集
在Elastic Stack安装使用后,打开Kibana页面,开始进入内置的Nginx数据收集配置向导
十毛
2021/11/24
4340
Elastic Stack内置nginx日志收集
MySQL日志收集之Filebeat和Logstsh的一键安装配置(ELK架构)
关于ELK是什么、做什么用,我们不在此讨论。本文重点在如何实现快速方便地安装logstash和filebeat组件,特别是在近千台DB Server的环境下(为了安全保守,公司DB Server 目前尚未部署saltstack一类的管控软件)。在尽可能标准化的条件下,希望可以实现一键化安装。下面是我们功能实现的一些尝试,我们把手动一步步操作打包提炼到一个sh文档中,安装部署时只要执行sh文件即可。部署安装logstash和filebeat组件由原来的10分钟缩减到目前的1分钟左右,并且减少了因手动部署带来的误操作。
东山絮柳仔
2021/03/18
7200
使用 Filebeat 采集 Nginx 日志发送 ElasticSearch
可以使用 Filebeat 采集服务日志发送到 ElasticSearch 中进行搜索查看,这种方式体验好、效率高。
软件书桌
2024/05/07
8630
ELK-beats数据采集
因为logstash太费内存了,如果在要采集的服务上都安装logstash,你可以想象这样这样资源消耗多高。所以我们要用轻量级的采集工具才更高效,更省资源。
星哥玩云
2022/09/15
8500
ELK-beats数据采集
Beats:Beats 入门教程 (二)
这篇文章是 “Beats 入门教程 (一)”的续篇。在上一篇文章,我们主要讲述了 Beats 的一些理论方面的知识。在这篇文章中,我们将具体展示如何使用 Filebeat 及 Metriceat 把数据导入到我们的 Elasticsearch 并对他们进行分析。
腾讯云大数据
2020/07/14
1.2K0
Beats:Beats 入门教程 (二)
ELK Stack日志中心搭建
本文主要目的是简化搭建ELK环境的步骤,使用Docker Compose部署ELK 7.1.1分布式集群的日志框架,只需要执行一个init.sh脚本即可搭建好一个ELK Stack日志中心。
茶半香初
2021/11/26
5800
ELK Stack日志中心搭建
在ELK+Filebeat搭建日志中心
当前环境 系统:centos7 docker 1.12.1 介绍 ElasticSearch Elasticsearch 是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎,使用 Java 语言编写。 Logstash Logstash 是一个具有实时渠道能力的数据收集引擎,主要用于日志的收集与解析,并将其存入 ElasticSearch中。 Kibana Kibana 是一款基于 Apache 开源协议,使用
Java架构
2018/05/04
1.4K0
在ELK+Filebeat搭建日志中心
ELK+filebeat采集java日志
此文章是我在生产环境下搭建ELK日志系统的记录,该日志系统主要是采集Java日志,开发人员能通过kibanaWeb页面查找相关主机的指定日志;对于Java日志,filebeat已做多行合并、过滤行处理,更精准的获取需要的日志信息,关于ELK系统的介绍,这里不再赘述。
肓己
2021/08/12
1.8K0
面对成百上千台服务器产生的日志,试试这款轻量级日志搬运神器!
Filebeat是一款轻量级日志采集器,可用于转发和汇总日志与文件。Filebeat内置有多种模块(Nginx、MySQL、Redis、Elasticsearch、Logstash等),可针对常见格式的日志大大简化收集、解析和可视化过程,只需一条命令即可。
macrozheng
2020/08/27
6540
面对成百上千台服务器产生的日志,试试这款轻量级日志搬运神器!
kubernetes Filebeat+ELK日志收集监控方案
接收来自filebeat的数据,根据其中的tags进行分类,再添加index进行分类,例如nginx-access-%{+YYYY.MM.dd},在kibana中会根据这个index获取日志。
kubernetes中文社区
2019/06/24
3.2K0
kubernetes  Filebeat+ELK日志收集监控方案
傻瓜也能玩转日志归集
关注"一猿小讲"的猿友们都知道,前段时间我在《一文讲懂线上应用系统监控》给大家简单提到了日志归集,埋下了伏笔,今天的这篇分享是来给大家还债的,主要从整体到局部,深入了解一下日志归集。如果你正在困惑于每天登录服务器查询业务日志的繁琐,或正在寻找一个业务日志归集的方案,那么就请跟紧我的脚步,莫掉队。
一猿小讲
2019/08/16
7690
傻瓜也能玩转日志归集
搭建ELFK日志采集系统
最近的工作涉及搭建一套日志采集系统,采用了业界成熟的ELFK方案,这里将搭建过程记录一下。
jeremyxu
2019/03/13
2.6K0
搭建ELFK日志采集系统
Linux安装ELK日志平台(7.5.1)
一般我们需要进行日志分析场景:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大也就是日志量多而复杂的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理,所有服务器上的日志收集汇总。常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。
子润先生
2021/07/07
1.8K1
ELFK服务搭建
在上述命令的输出里可以看到集群的相关信息,同时 nodes 字段里面包含了每个节点的详细信息,这样一个基本的elasticsearch集群就部署好了。
不凡
2021/08/31
9290
ELFK服务搭建
Elastic 技术栈之 Filebeat
Elastic 技术栈之 Filebeat 简介 Beats 是安装在服务器上的数据中转代理。 Beats 可以将数据直接传输到 Elasticsearch 或传输到 Logstash 。 Beats
静默虚空
2018/03/16
2K0
Elastic 技术栈之 Filebeat
Linux运维日志收集ELKStack安装部署
对于日志来说,最常见的需求就是收集、存储、查询、展示,开源社区正好有相对应的开源项目:logstash(收集)、elasticsearch(存储+搜索)、kibana(展示),我们将这三个组合起来的技术称之为ELKStack,所以说ELKStack指的是Elasticsearch、Logstash、Kibana技术栈的结合。
王先森sec
2023/04/24
5670
Linux运维日志收集ELKStack安装部署
FileBeat收集Nginx的日志到ELK中进行可视化分析
将SpringBoot应用的日志输出到Logstash之后,所有的应用日志都可以使用使用Kibana进行可视化的检索,使用起来还是蛮香的,Kibana用着用着之后发现他的强大远不止于日志检索,因为他拥有一个可视化分析的功能.
姜同学
2022/10/27
3980
FileBeat收集Nginx的日志到ELK中进行可视化分析
Elastic Stack之 Filebeat 6.7.1版本安装
1、截至目前Elasticsearch 版本已经更新到了7.10.1版本了,这里先使用Filebeat 6.7.1版本,给一个下载地址,如下所示:
别先生
2021/01/13
9460
相关推荐
ELK、Filebeat环境搭建
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验