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
apache基于端口创建虚拟主机的示例
Apr 22 Servers
Linux中Nginx的防盗链和优化的实现代码
Jun 20 Servers
学习nginx基础知识
Sep 04 Servers
NGINX 权限控制文件预览和下载的实现原理
Jan 18 Servers
Windows和Linux上部署Golang并运行程序
Apr 22 Servers
Apache SeaTunnel实现 非CDC数据抽取
May 20 Servers
聊聊配置 Nginx 访问与错误日志的问题
May 25 Servers
ubuntu下常用apt命令介绍
Jun 05 Servers
WIN10使用IIS部署ftp服务器详细教程
Aug 05 Servers
SpringBoot前端后端分离之Nginx服务器下载安装过程
Aug 14 Servers
Zabbix6通过ODBC方式监控Oracle 19C的详细过程
Sep 23 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
使用JQUERY进行后台页面布局控制DIV实现左右式
2014/01/07 Javascript
jQuery写fadeTo示例代码
2014/02/21 Javascript
javascript新闻跑马灯实例代码
2020/07/29 Javascript
JavaScript数据结构与算法之栈与队列
2016/01/29 Javascript
全面了解javascript三元运算符
2016/06/27 Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
2016/07/11 Javascript
JS禁止查看网页源代码的实现方法
2016/10/12 Javascript
js获取时间函数及扩展函数的方法
2016/10/30 Javascript
手把手教你把nodejs部署到linux上跑出hello world
2017/06/19 NodeJs
webpack分离css单独打包的方法
2018/06/12 Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
2018/07/26 Javascript
vue 内置过滤器的使用总结(附加自定义过滤器)
2018/12/11 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
微信小程序实现搜索功能并跳转搜索结果页面
2019/05/18 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
2019/06/27 Javascript
Electron vue的使用教程图文详解
2019/07/05 Javascript
Vue Object 的变化侦测实现代码
2020/04/15 Javascript
Vue的自定义组件不能使用click方法的解决
2020/07/28 Javascript
前端 javascript 实现文件下载的示例
2020/11/24 Javascript
详解Python中的type()方法的使用
2015/05/21 Python
python中string模块各属性以及函数的用法介绍
2016/05/30 Python
利用python程序帮大家清理windows垃圾
2017/01/15 Python
Python基于win32ui模块创建弹出式菜单示例
2018/05/09 Python
Python基于xlrd模块操作Excel的方法示例
2018/06/21 Python
python+pandas+时间、日期以及时间序列处理方法
2018/07/10 Python
python基于pdfminer库提取pdf文字代码实例
2019/08/15 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
2019/10/23 Python
修改Pandas的行或列的名字(重命名)
2019/12/18 Python
编码实现字符串转整型的函数
2012/06/02 面试题
毕业自我评价
2014/02/05 职场文书
总经理检讨书
2014/09/15 职场文书
小学教师师德整改措施
2014/09/29 职场文书
离婚协议书怎样才有法律效力
2014/10/10 职场文书
党员自评材料范文
2014/12/17 职场文书
用javascript制作qq注册动态页面
2021/04/14 Javascript
关于Vue中的options选项
2022/03/22 Vue.js