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 Dubbo 实现远程通信(微服务架构)
Feb 12 Servers
Nginx图片服务器配置之后图片访问404的问题解决
Mar 21 Servers
CKAD认证中部署k8s并配置Calico插件
Mar 31 Servers
从零开始在Centos7上部署SpringBoot项目
Apr 07 Servers
Tomcat starup.bat 脚本实现开机自启动
Apr 20 Servers
搭建Yolov5服务器
Apr 30 Servers
使用Nginx的访问日志统计PV与UV
May 06 Servers
V Rising 服务器搭建图文教程
Jun 16 Servers
vscode远程免密登入Linux服务器的配置方法
Jun 28 Servers
Nginx配置使用详解
Jul 07 Servers
Centos7 Shell编程之正则表达式、文本处理工具详解
Aug 05 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/09 PHP
PHP中子类重载父类的方法【parent::方法名】
2016/05/06 PHP
PHP微信开发之查询微信精选文章
2016/06/23 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
CodeIgniter框架验证码类库文件与用法示例
2017/03/18 PHP
利用JQuery和JS实现奇偶行背景颜色自定义效果
2012/11/19 Javascript
JS注册/移除事件处理程序(ExtJS应用程序设计实战)
2013/05/07 Javascript
JavaScript操作DOM元素的childNodes和children区别
2015/04/01 Javascript
json格式的javascript对象用法分析
2016/07/04 Javascript
JavaScript中this的用法实例分析
2016/12/19 Javascript
vue.js 上传图片实例代码
2017/06/22 Javascript
移动端滑动切换组件封装 vue-swiper-router实例详解
2018/11/25 Javascript
推荐15个最好用的JavaScript代码压缩工具
2019/02/13 Javascript
[06:44]2014DOTA2国际邀请赛-钥匙体育馆开战 开幕式振奋人心
2014/07/19 DOTA
python使用fileinput模块实现逐行读取文件的方法
2015/04/29 Python
Python下Fabric的简单部署方法
2015/07/14 Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
2017/12/21 Python
python 异或加密字符串的实例
2018/10/14 Python
python生成九宫格图片
2018/11/19 Python
python消费kafka数据批量插入到es的方法
2018/12/27 Python
Python进阶之自定义对象实现切片功能
2019/01/07 Python
将python文件打包成EXE应用程序的方法
2019/05/22 Python
Python通过Tesseract库实现文字识别
2020/03/05 Python
在python中对于bool布尔值的取反操作
2020/12/11 Python
关于HTML5的安全问题开发人员需要牢记的
2012/06/21 HTML / CSS
Html5中localStorage存储JSON数据并读取JSON数据的实现方法
2017/02/13 HTML / CSS
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
StubHub新西兰:购买和出售你的门票
2019/04/22 全球购物
澳大利亚珠宝商:Shiels
2019/10/06 全球购物
Myprotein亚太地区:欧洲第一在线运动营养品牌
2020/12/20 全球购物
团日活动策划书
2014/02/01 职场文书
2015年护士医德医风自我评价
2015/03/03 职场文书
灵魂歌王观后感
2015/06/17 职场文书
《平行四边形的面积》教学反思
2016/02/16 职场文书
深入理解java.lang.String类的不可变性
2021/06/27 Java/Android