Filebeat 采集 Nginx 日志的方法


Posted in Servers onMarch 31, 2021

Nginx 日志可用于分析用户地址位置,行为画像等,如何通过 Elastic Stack 进行一站式的数据采集,数据清洗,数据落地,数据可视化,让数据发挥真正的价值呢?

架构设计

涉及到 Elastic Stack 中 Filebeat 是用于采集 Nginx 相关的日志, Elasticsearch 是用于对于数据落地存储和搜索的引擎, Kibana 是用于对数据可视化的工具。

在 Nginx 中相关的日志是存储在 /var/log/nginx 目录下的,分别是访问日志 access.log,错误日志 error.log。

Filebeat 采集 Nginx 日志的方法

如果是裸机环境下,可以直接在同一主机下安装 Filebeat 针对日志文件进行采集。
如果是 Docker 环境下,建议 Nginx 使用 Volume 的方式进行共享日志文件给 Filebeat 采集。
如果是 Kubernetes 环境下,建议在 Pod 中添加 Filebeat Container进行对 PV 采集。

针对不同场景有不同的采集方案,有些可以利用Daemonset采集宿主机上的日志,有些是以Sidecar方式进行采集,具体视业务场景而定。

实施方法

以 Docker 环境下为例

Nginx

创建存储卷,便于 Nginx 和 Filebeat 容器共同挂载
docker volume create nginx-log-volume

启动 Nginx 容器,并且将存储卷映射到日志目录
docker run -d --name nginx -p 80:80 -v nginx-log-volume:/var/log/nginx nginx:latest

进入容器修改配置
docker exec -it nginx /bin/bash

由于容器环境下,默认的日志会输入到stdout,所以取消该设置并指定文件
unlink /var/log/nginx/access.log
unlink /var/log/nginx/error.log
touch /var/log/nginx/access.log /var/log/nginx/error.log
nginx -s reload

Filebeat

启动 Filebeat 容器,并且将存储卷映射到数据目录
docker run -d --name filebeat --user=root -v nginx-log-volume:/data elastic/filebeat:7.9.2

进入容器修改配置
docker exec -it filebeat /bin/bash

修改配置,添加 Elasticsearch 和 Kibana 的主机
vi filebeat.yml

filebeat.config:
 modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false

processors:
 - add_cloud_metadata: ~
 - add_docker_metadata: ~

output.elasticsearch:
 hosts: 'elasticsearch:9200'
 username: "elastic"
 password: "xxx"
setup.kibana:
 host: "kibana:5601"

 

启用 Nginx 采集模块

filebeat modules enable nginx

编辑 Nginx 采集配置
vi modules.d/nginx.yml

- module: nginx
 access:
  enabled: true
  var.paths: ["/data/access.log*"]
 error:
  enabled: true
  var.paths: ["/data/error.log*"]

 

设置 Filebeat 创建 Kibana上的 Index Pattern 和 Dashboard
filebeat setup

重启 Filebeat 生效配置
docker restart filebeat

可视化展示

通过 Kibana 中的 Dashboard 功能
展示 Nginx 对于日志的访问情况及用户地址位置、浏览器信息

Filebeat 采集 Nginx 日志的方法

展示 Nginx 对于访问日志和错误日志的具体请求信息

Filebeat 采集 Nginx 日志的方法

Servers 相关文章推荐
Nginx优化服务之网页压缩的实现方法
Mar 31 Servers
Nginx服务器如何设置url链接
Mar 31 Servers
Nginx配置https原理及实现过程详解
Mar 31 Servers
配置nginx 重定向到系统维护页面
Jun 08 Servers
Nginx进程调度问题详解
Sep 25 Servers
详解Nginx 被动检查服务器的存活状态
Oct 16 Servers
nginx.conf配置文件结构小结
Apr 08 Servers
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
Apr 29 Servers
Vscode中SSH插件如何远程连接Linux
May 02 Servers
讨论nginx location 顺序问题
May 30 Servers
vscode远程免密登入Linux服务器的配置方法
Jun 28 Servers
GPU服务器的多用户配置方法
Jul 07 Servers
如何利用map实现Nginx允许多个域名跨域
Mar 31 #Servers
Nginx 过滤静态资源文件的访问日志的实现
Mar 31 #Servers
Nginx的反向代理实例详解
nginx反向代理时如何保持长连接
Mar 31 #Servers
Nginx + consul + upsync 完成动态负载均衡的方法详解
Mar 31 #Servers
浅谈Nginx 中的两种限流方式
Mar 31 #Servers
查看nginx配置文件路径和资源文件路径的方法
Mar 31 #Servers
You might like
PHP实现获取图片颜色值的方法
2014/07/11 PHP
php获取当前页面完整URL地址
2015/12/30 PHP
简单的自定义php模板引擎
2016/08/26 PHP
php+js实现裁剪任意形状图片
2018/10/31 PHP
PHP 构造函数和析构函数原理与用法分析
2020/04/21 PHP
关于文本框的一些限制控制总结~~
2010/04/15 Javascript
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
2010/04/20 Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
2012/03/01 Javascript
把input初始值不写value的具体实现方法
2013/07/04 Javascript
Kindeditor在线文本编辑器如何过滤HTML
2016/04/14 Javascript
JavaScript暂停和继续定时器的实现方法
2016/07/18 Javascript
基于node.js制作简单爬虫教程
2017/06/29 Javascript
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
js 数组详细操作方法及解析合集
2018/06/01 Javascript
vue计算属性computed的使用方法示例
2019/03/13 Javascript
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
vue+elementUI动态生成面包屑导航教程
2019/11/04 Javascript
JavaScript中EventBus实现对象之间通信
2020/10/18 Javascript
[02:55]2018DOTA2国际邀请赛勇士令状不朽珍藏Ⅲ饰品一览
2018/08/01 DOTA
python的Template使用指南
2014/09/11 Python
Python实现豆瓣图片下载的方法
2015/05/25 Python
python图像处理之反色实现方法
2015/05/30 Python
对Python3中dict.keys()转换成list类型的方法详解
2019/02/03 Python
python实现统计文本中单词出现的频率详解
2019/05/20 Python
python的scipy实现插值的示例代码
2019/11/12 Python
Python线程协作threading.Condition实现过程解析
2020/03/12 Python
Python的历史与优缺点整理
2020/05/26 Python
Selenium环境变量配置(火狐浏览器)及验证实现
2020/12/07 Python
Audible英国:有声读物,30天免费试用
2019/10/16 全球购物
泰国时尚电商:POMELO Fashion
2020/03/11 全球购物
澳大利亚家用电器在线商店:Billy Guyatts
2020/05/05 全球购物
预备党员思想汇报
2014/01/08 职场文书
2014年留守儿童工作总结
2014/12/10 职场文书
圣诞晚会主持词
2015/07/01 职场文书
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS
Zabbix对Kafka topic积压数据监控的解决方案
2022/07/07 Servers