Filebeat 采集 Nginx 日志

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: Nginx 日志可用于分析用户地址位置,行为画像等,如何通过 Elastic Stack 进行一站式的数据采集,数据清洗,数据落地,数据可视化,让数据发挥真正的价值呢?

> Nginx 日志可用于分析用户地址位置,行为画像等,如何通过 Elastic Stack 进行一站式的数据采集,数据清洗,数据落地,数据可视化,让数据发挥真正的价值呢?


#### 架构设计

涉及到 Elastic Stack 中 Filebeat 是用于采集 Nginx 相关的日志, Elasticsearch 是用于对于数据落地存储和搜索的引擎, Kibana 是用于对数据可视化的工具。


在 Nginx 中相关的日志是存储在 /var/log/nginx 目录下的,分别是访问日志 access.log,错误日志 error.log。


image.jpeg


如果是裸机环境下,可以直接在同一主机下安装 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: falseprocessors:  - 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: nginxaccess:
enabled: truevar.paths: ["/data/access.log*"]
error:
enabled: truevar.paths: ["/data/error.log*"]


设置 Filebeat 创建 Kibana上的 Index Pattern 和 Dashboard

filebeat setup


重启 Filebeat 生效配置

docker restart filebeat


#### 可视化展示

通过 Kibana 中的 Dashboard 功能

展示 Nginx 对于日志的访问情况及用户地址位置、浏览器信息

image.jpeg


展示 Nginx 对于访问日志和错误日志的具体请求信息

image.jpeg


相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
8月前
|
数据可视化 关系型数据库 MySQL
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
654 90
|
11月前
|
监控 应用服务中间件 定位技术
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
1001 3
|
应用服务中间件 nginx
nginx error日志 client intended to send too large body: 1434541 bytes 如何处理?
【8月更文挑战第27天】nginx error日志 client intended to send too large body: 1434541 bytes 如何处理?
939 6
|
应用服务中间件 Linux nginx
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
|
消息中间件 监控 Kafka
Filebeat+Kafka+Logstash+Elasticsearch+Kibana 构建日志分析系统
【8月更文挑战第13天】Filebeat+Kafka+Logstash+Elasticsearch+Kibana 构建日志分析系统
1129 3
|
存储 Ubuntu 应用服务中间件
如何在 Ubuntu VPS 上配置 Nginx 的日志记录和日志轮转
如何在 Ubuntu VPS 上配置 Nginx 的日志记录和日志轮转
200 4
|
存储 监控 应用服务中间件
查看nginx日志文件
器性能和提高网站可用性。掌握日志文件的路径、查看方法和基本分析技能对于任何服务器管理员来说都是必备技能。
949 1
|
2月前
|
编解码 应用服务中间件 Linux
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
298 1
|
6月前
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
720 87
|
6月前
|
负载均衡 应用服务中间件 nginx
Nginx配置与命令
Nginx 是一款高性能的 HTTP 和反向代理服务器,其配置文件灵活且功能强大。本文介绍了 Nginx 配置的基础结构和常用指令,包括全局块、Events 块、HTTP 块及 Server 块的配置方法,以及静态资源服务、反向代理、负载均衡、HTTPS 和 URL 重写等功能实现。此外,还提供了常用的 Nginx 命令操作,如启动、停止、重载配置和日志管理等,帮助用户高效管理和优化服务器性能。