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配置ssl实现https的方法示例
Mar 31 Servers
Linux安装Nginx步骤详解
Mar 31 Servers
Filebeat 采集 Nginx 日志的方法
Mar 31 Servers
Nginx+Tomcat负载均衡集群的实现示例
Oct 24 Servers
Nginx虚拟主机的搭建的实现步骤
Jan 18 Servers
Kubernetes部署实例并配置Deployment、网络映射、副本集
Apr 01 Servers
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
Apr 29 Servers
Nginx配置之禁止指定IP访问
May 02 Servers
Nginx限流和黑名单配置
May 20 Servers
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
Jun 25 Servers
Win10系统搭建ftp文件服务器详细教程
Aug 05 Servers
修改Nginx配置返回指定content-type的方法
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
留言板翻页的实现详解
2006/10/09 PHP
php mysql数据库操作分页类
2008/06/04 PHP
PHP程序员面试 切忌急功近利(更需要注重以后的发展)
2010/09/01 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
关于在IE下的一个安全BUG --可用于跟踪用户的系统鼠标位置
2013/04/17 Javascript
js读取cookie方法总结
2014/10/31 Javascript
JS实现从表格中动态删除指定行的方法
2015/03/31 Javascript
ECMAScript6函数默认参数
2015/06/12 Javascript
jQuery插件实现图片轮播特效
2016/06/16 Javascript
JS简单获取当前年月日星期的方法示例
2017/02/07 Javascript
JavaScript限制在客户区可见范围的拖拽(解决scrollLeft和scrollTop的问题)(2)
2017/05/17 Javascript
详解vue-meta如何让你更优雅的管理头部标签
2018/01/18 Javascript
Express结合Webpack的全栈自动刷新
2019/05/23 Javascript
Typescript 中的 interface 和 type 到底有什么区别详解
2019/06/18 Javascript
layui select 禁止点击的实现方法
2019/09/05 Javascript
创建nuxt.js项目流程图解
2020/03/13 Javascript
Hadoop中的Python框架的使用指南
2015/04/22 Python
python使用PyGame绘制图像并保存为图片文件的方法
2015/04/24 Python
用python写的一个wordpress的采集程序
2016/02/27 Python
详解如何用OpenCV + Python 实现人脸识别
2017/10/20 Python
python通过opencv实现批量剪切图片
2017/11/13 Python
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
python整合ffmpeg实现视频文件的批量转换
2019/05/31 Python
如何使用selenium和requests组合实现登录页面
2020/02/03 Python
CSS3常用的几种颜色渐变模式总结
2016/11/18 HTML / CSS
Stefania Mode美国:奢华设计师和时尚服装
2018/01/07 全球购物
一套PHP的笔试题
2013/05/31 面试题
化工机械应届生求职信
2013/11/04 职场文书
乡村卫生服务一体化管理实施方案
2014/03/30 职场文书
村级环境卫生整治方案
2014/05/04 职场文书
应聘护士求职信
2014/07/21 职场文书
中国梦演讲稿5分钟
2014/08/19 职场文书
2014年国庆节演讲稿
2014/09/19 职场文书
小学秋季运动会报道稿
2014/09/30 职场文书
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android
搭建zabbix监控以及邮件报警的超级详细教学
2022/07/15 Servers