使用Filebeat收集并分析nginx的访问日志

这篇具有很好参考价值的文章主要介绍了使用Filebeat收集并分析nginx的访问日志。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

之前我们已经搞定了nginx+keepalived双机,花了一个多星期时间把业务都迁移过来之后,基本稳定,中间还遇到一次意外宕机,keepalived也顺利做了主备切换,接下来就要做日志分析了。

日志分析,本身从等保的要求就是需要日志第三方存储的,另外就是日志也是分析访问量的一个重要依据,比如网站访问量、比如从错误日志中分析数据,等等。

nginx反代作为集中发布的平台,首先已经能够很完善的收集到数据了(否则你是拿不到分散在各个业务系统上的weblog的),接下来,就是转发和分析,这里就用elasticsearch来做了,毕竟平台之前已经搞定了。

因为是纯文本日志,这里我们就是用es的Filebeat组件直接转发给es,这是一个轻量的日志收集工具,也就省得再去转syslog,或者转logstash、kafka之类的,毕竟咱的数据量也不大。

安装Filebeat

CentOS 7

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.16.3-x86_64.rpm
sudo rpm -vi filebeat-7.16.3-x86_64.rpm

配置Filebeat

创建elasticsearch的连接密码

这样就不用再filebeat的配置文件里写入明文密码了。此时钥匙串的名字就叫做password

filebeat keystore create
filebeat keystore add password
filebeat keystore list

启用nginx module

  • filebeat modules enable nginx
  • filebeat modules list
  • 其实就是把nginx模块的配置文件的disable去掉了
  • 配置文件参考如下
- module: nginx
  access:
    enabled: true
    #注意日志的格式,是数组形式
    var.paths: ["/var/log/nginx/access.log"]
  error:
    enabled: true
    var.paths: ["/var/log/nginx/error.log"]
  ingress_controller:
    enabled: false

调整nginx日志格式

nginx的默认日志格式其实已经够用了,如下:

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

唯一有个问题就是缺少了主机名这个选项,所以我们要加一条$host进去。如下:

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" "$host"'
                      '"$http_user_agent" "$http_x_forwarded_for"';

$host变量我加在了第二行,不知道为啥加在最后一行不生效。$host在这里指的是http请求的主机头,如果$hostname那就变成nginx主机的名字了

测试并运行filebeat

  • 使用filebeat test config -e可以测试配置文件
  • 使用filebeat -e可以运行filebeat,会同时输出日志。
  • 当然如果确定没问题还是用systemctl start filebeat更好一点

如果提示

2023-01-18T15:40:10.917+0800  INFO  [publisher_pipeline_output]  pipeline/output.go:151  Connection to backoff(elasticsearch(http://192.168.0.1:9200)) established

说明已经成功连接上elastic

基本完成

至此,在Kibana仪表板中已经可以看到一些基础数据了

使用Filebeat收集并分析nginx的访问日志

重新读取文件

如果需要重新读取filebeat文件,需要删除掉/var/lib/filebeat/registry/filebeat下的xxx.json文件,它记录了读取位置

在Kibana中查看

  • 打开Kibana,找到Analytics下的Dashboard
  • 找到[Filebeat Nginx] Overview ECS这个Dashboard,顺利的话你已经看到所有的数据了。
  • 但我们还有一些需要优化的
  • 首先是它读取的是filebeat-7.16.3-这个默认的模板,所以如果你有多个nginx传输数据的话,那么就需要优化下(知道为啥要logstash多此一举了吧?)
  • 点这里的筛选,字段用agent.id或者host.id识别一下就可以了
  • 然后这里缺少了一个最重要的,按站点统计点击率,这时候我们之前添加的日志字段就有效果了
  • 我们编辑Dashboard,创建可视化, 创建一个随便什么图,比如垂直堆积条形图
  • 水平选择计数,起个名字叫做点击率。也就是每条日志算一次。
  • 垂直起个名字叫做排行,字段选择traefik.access.user_agent.original 。啥,你问我他哪来的?你找一个日志看看不就知道了…😃,看,就是这个
    使用Filebeat收集并分析nginx的访问日志
    使用Filebeat收集并分析nginx的访问日志

其他

只查看数据

  • 打开Kibana的Discover,索引模式选择filebeat-*

ilm策略

默认filebeat的nginx模块写入了filebeat-7.16.3-2023.01.06-000011 这样的一个index。如果需要修改文章来源地址https://www.toymoban.com/news/detail-432717.html

Ref

  • https://blog.51cto.com/jiangxl/4654145
  • https://blog.csdn.net/UbuntuTouch/article/details/101604717
  • https://www.elastic.co/guide/en/beats/filebeat/master//exported-fields-traefik.html#exported-fields-traefik

到了这里,关于使用Filebeat收集并分析nginx的访问日志的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于Elasticsearch+Logstash+Kibana+Filebeat的日志收集分析及可视化

    sudo rm /var/lib/dpkg/lock* sudo dpkg --configure -a apt update tail -f /var/log/car.log 海量的业务应用,也带来了海量的日志数据,给业务应用的运维带来了新的挑战。例如,我们常用的网约车应用,单个平台的日订单数量可以达到上亿条,产生各种类型的日志数据,像用户业务方面会产生交

    2024年01月21日
    浏览(53)
  • ELK实例----使用filebeat收集tomcat日志到ES并利用kibana展示

    节点名称 节点名称 ip地址 kibana kibana 10.0.0.100 elasticsearch elasticsearch 10.0.0.101 filebeat filebeat 10.0.0.102 elasticsearch、Kibana、metricbeat、filebeat版本要一致,如都是7.17.5版本 1.2.1 安装elasticsearch CPU 2C 内存4G或更多 1.2.2 安装 Kibana 1.2.3 安装metricbeat 1.2.3 安装filebeat 1.2.4 安装Nginx 1.2.5 安装t

    2024年02月09日
    浏览(49)
  • FileBeat-日志收集器

            在使用一个工具或者说一套组合工具之前要先对它和它的同类工具进行了解选出一个最适合自己的项目的工具然后进行使用,而我使用的就是filebeat 什么是FileBeat         Filebeat是一个开源的文本日志收集器,它是elastic公司Beats数据采集产品的一个子产品,采用

    2023年04月12日
    浏览(51)
  • 部署Filebeat收集日志并转发到Elasticsearch

    Filebeat用于日志收集和传输,相比Logstash更加轻量级和易部署,对系统资源开销更小,如果对于日志不需要进行过滤分析的,可以直接使用filebeat。 这样就可以实现动态收集日志的功能了,但是这样有一点风险,logstash采集本地log4j产生的日志,然后输入进es里,如果吞吐量太大

    2024年02月16日
    浏览(38)
  • Elk+Filebeat+Kafka实现日志收集

    1.实验组件 2.安装前准备 3.安装Zookeeper 1.安装Kafka 2.命令行测试  1.安装Filebeat 2.时间同步 3.配置filebeat 4.配置logstash 1.安装配置filebeat 2.配置logstash

    2024年02月05日
    浏览(45)
  • linux安装filebeat并收集日志到elasticsearch

    通过filebeat收集服务器上各个应用的日志到elasticsearch,通过tags区分不同的应用创建不同的索引保存日志。 https://www.elastic.co/cn/downloads/past-releases#filebeat 1:下载并解压(以7.9.3版本为例) 2:修改配置文件filebeat.yml filebeat.inputs: - type: log   enabled: true   paths:     - /logs/app1*.log  

    2024年02月01日
    浏览(48)
  • Filebeat入门及使用-5 读取nginx日志,写入ES,并用kibana展示

    1 安装nginx, 并找到nginx的日志目录,步骤3要使用 2 配置Filebeat的module,在Filebeat中,有大量的module,如mysql,kafka,redis,nginx等,可以简化我们的配置,方便使用。 查看Filebeat支持模块 命令:./filebeat modules list 启动Nginx模块 启动命令:./filebeat modules enable nginx 禁用命令:./fi

    2023年04月12日
    浏览(42)
  • k8s-EFK (filebeat)日志收集

    使用elasticsearch+filebeat+kibana收集pod指定目录日志,filebeat用于收集日志,es用于存储,kibana用于展示。本例以收集部署于k8s内的nginx日志为例子。 1、部署es+kibana 2.创建filebeat配置文件(基于elasticsearch存储) 3、创建nginx-filebeat Sidecar(基于elasticsearch的配置) 4.kibana创建索引,查

    2024年02月15日
    浏览(42)
  • 搭建EFK(Elasticsearch+Filebeat+Kibana)日志收集系统[windows]

    EFK简介 Elasticsearch 是一个实时的、分布式的可扩展的搜索引擎,允许进行全文、结构化搜索,它通常用于索引和搜索大量日志数据,也可用于搜索许多不同类型的文档。 FileBeats 是数据采集的得力工具。将 Beats 和您的容器一起置于服务器上,或者将 Beats 作为函数加以部署,然

    2024年02月08日
    浏览(53)
  • docker搭建Elk+Kafka+Filebeat分布式日志收集系统

    目录 一、介绍 二、集群环境 三、ES集群 四、Kibana  五、Logstash 六、Zookeeper 七、Kafka 八、Filebeat 八、Nginx (一)架构图  (二)组件介绍 1.Elasticsearch 是一个基于Lucene的搜索服务器。提供搜集、分析、存储数据三大功能。它提供了一个分布式多用户能力的全文搜索引擎,基于

    2024年02月04日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包