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 相关文章推荐
uwsgi+nginx代理Django无法访问静态资源的解决
May 10 Servers
Nginx+Tomcat负载均衡集群的实现示例
Oct 24 Servers
nginx实现动静分离的方法示例
Nov 07 Servers
Nginx防盗链与服务优化配置的全过程
Jan 18 Servers
Nginx+Windows搭建域名访问环境的操作方法
Mar 17 Servers
Nginx设置HTTPS的方法步骤 443证书配置方法
Mar 21 Servers
Kubernetes部署实例并配置Deployment、网络映射、副本集
Apr 01 Servers
docker compose 部署 golang 的 Athens 私有代理问题
Apr 28 Servers
在Windows Server 2012上安装 .NET Framework 3.5 所遇到的问题
Apr 29 Servers
鲲鹏 CentOS 7 安装Python3.7
May 11 Servers
V Rising 服务器搭建图文教程
Jun 16 Servers
Windows Server 2016服务器用户管理及远程授权图文教程
Aug 14 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设计模式之代理模式的深入解析
2013/06/13 PHP
PHP抓取、分析国内视频网站的视频信息工具类
2014/04/02 PHP
PHP  Yii清理缓存的实现方法
2016/11/10 PHP
IE与FireFox中的childNodes区别
2011/10/20 Javascript
缓动函数requestAnimationFrame 更好的实现浏览器经动画
2012/12/07 Javascript
js和jquery中循环的退出和继续下一个循环
2014/09/03 Javascript
jquery中EasyUI实现异步树
2015/03/01 Javascript
jQuery中的Deferred和promise 的区别
2016/04/03 Javascript
js删除局部变量的实现方法
2016/06/25 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
2016/11/01 Javascript
node+experss实现爬取电影天堂爬虫
2016/11/20 Javascript
AngularJS实现网站换肤实例
2021/02/19 Javascript
jQuery实现手机上输入后隐藏键盘功能
2017/01/04 Javascript
JS中的phototype详解
2017/02/04 Javascript
大白话讲解JavaScript的Promise
2017/04/06 Javascript
单行 JS 实现移动端金钱格式的输入规则
2017/05/22 Javascript
深入理解node.js http模块
2018/01/24 Javascript
python批量替换页眉页脚实例代码
2018/01/22 Python
python调用虹软2.0第三版的具体使用
2019/02/22 Python
Django密码系统实现过程详解
2019/07/19 Python
Python类class参数self原理解析
2020/11/19 Python
详解如何解决H5开发使用wx.hideMenuItems无效果不生效
2021/01/20 HTML / CSS
西班牙最大的在线滑板和街头服饰商店:Fillow.net
2019/04/15 全球购物
意大利自行车商店:Cingolani Bike Shop
2019/09/03 全球购物
香港莎莎官网Sasa.com:亚洲著名国际化妆品商城
2019/11/10 全球购物
工商管理实习自我鉴定
2013/09/28 职场文书
客服主管岗位职责
2013/12/13 职场文书
军神教学反思
2014/02/04 职场文书
运动会稿件200字
2014/02/07 职场文书
出纳试用期自我鉴定
2014/04/07 职场文书
总经理岗位职责说明书
2014/07/30 职场文书
教师批评与自我批评范文
2014/10/15 职场文书
道歉情书大全
2015/05/12 职场文书
工作年限证明模板
2015/06/15 职场文书
爱护环境建议书
2015/09/14 职场文书
Mysql数据库手动及定时备份步骤
2021/11/07 MySQL