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+lua单机上万并发的实现
May 31 Servers
centos8安装nginx1.9.1的详细过程
Aug 02 Servers
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
Apr 29 Servers
Nginx HTTP跳转至HTTPS
May 15 Servers
阿里云服务器部署RabbitMQ集群的详细教程
Jun 01 Servers
Linux服务器离线安装 nginx的详细步骤
Jun 16 Servers
服务器SVN搭建图文安装过程
Jun 21 Servers
Windows Server 2022 超融合部署(图文教程)
Jun 25 Servers
vscode内网访问服务器的方法
Jun 28 Servers
Tomcat安装使用及部署Web项目的3种方法汇总
Aug 14 Servers
Windows server 2016服务器基本设置
Aug 14 Servers
ubuntu开机后ROS程序自启动问题
Dec 24 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
同时提取多条新闻中的文本一例
2006/10/09 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
2014/05/15 PHP
PHP实现服务器状态监控的方法
2014/12/09 PHP
Zend Framework开发入门经典教程
2016/03/23 PHP
php设计模式之单例模式用法经典示例分析
2019/09/20 PHP
js模仿hover的具体实现代码
2013/12/30 Javascript
Node.js复制文件的方法示例
2016/12/29 Javascript
Vue中添加过渡效果的方法
2017/03/16 Javascript
jQuery zTree树插件的使用教程
2019/08/16 jQuery
js实现全选和全不选功能
2020/07/28 Javascript
在antd4.0中Form使用initialValue操作
2020/11/02 Javascript
详解vue3中组件的非兼容变更
2021/03/03 Vue.js
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
利用 python 对目录下的文件进行过滤删除
2017/12/27 Python
python生成器,可迭代对象,迭代器区别和联系
2018/02/04 Python
python实现excel读写数据
2021/03/02 Python
dataframe设置两个条件取值的实例
2018/04/12 Python
python斐波那契数列的计算方法
2018/09/27 Python
python实现根据指定字符截取对应的行的内容方法
2018/10/23 Python
python实现beta分布概率密度函数的方法
2019/07/08 Python
python中dict()的高级用法实现
2019/11/13 Python
python如何通过pyqt5实现进度条
2020/01/20 Python
详解python程序中的多任务
2020/09/16 Python
Ratchet 模态框的实现
2020/08/19 HTML / CSS
美国百年历史早餐食品供应商:Wolferman’s
2017/01/18 全球购物
Sofft鞋官网:世界知名鞋类品牌
2017/03/28 全球购物
房产协议书范本
2014/10/18 职场文书
婚礼父母答谢词
2015/01/04 职场文书
公司感谢信范文
2015/01/22 职场文书
七年级上册语文教学计划
2015/01/22 职场文书
用电申请报告范文
2015/05/18 职场文书
CSS3常见动画的实现方式
2021/04/14 HTML / CSS
如何使用JavaScript策略模式校验表单
2021/04/29 Javascript
python Tkinter模块使用方法详解
2022/04/07 Python
Win11 Beta 22621.601 和 22622.601今日发布 KB5017384修复内容汇总
2022/09/23 数码科技