ELK系列(四)、Logstash读取nginx日志写入ES中

2023-11-10

前面讲了ELK的部署以及Logstash的插件的安装方式,本篇就介绍一下如何使用Logstash读取nginx的日志,并写入ES中,通过Kibana分析。

ELK系列(一)、安装ElasticSearch+Logstash+Kibana+Filebeat-v7.7.0

ELK系列(二)、在Kibana中使用RESTful操作ES库

ELK系列(三)、安装Logstash插件及打包离线安装包

-----------------------------使用Logstash读取nginx日志------------------------------------

日志格式

上面讲了如何给Logstash安装插件以及离线安装,安装好的插件就在Logstash目录下:

/opt/app/logstash-7.7.0/vendor/bundle/jruby/2.5.0/gems

nginx的日志默认结构为HTTPD_COMBINEDLOG,可以对比/usr/local/nginx/conf/nginx.conf和/opt/app/logstash-7.7.0/vendor/bundle/jruby/2.5.0/gems/logstash-patterns-core-4.1.2/patterns/httpd 中的格式,然后我们就可以直接使用该格式的正则作为filter内容。

输出到控制台

配置logstash配置文件:

vim $LS_HOME/config/logstash_nginxlog2print.conf 

input {
   # 从文件读取日志信息
   file {
        path => "/usr/local/nginx/logs/access.log"
        type => "system"
        start_position => "beginning"
    }
 }

filter {
   grok {
      match => { "message" => "%{HTTPD_COMBINEDLOG}" }
    }
}

output {
       # 标准输出
       stdout {}
}

启动验证:

bin/logstash -f config/logstash_nginxlog2print.conf 

刷新nginx页面,或使用curl命令访问nginx,然后查看logstash的打印信息:

其中setting {:sincedb_path=>"/opt/app/logstash-7.7.0/data/plugins/inputs/file/.sincedb_d2343edad78a7252d2ea9cba15bbff6d", :path=>["/usr/local/nginx/logs/access.log"]}表示此配置文件读取该access.log文件,且读取的位置信息记录在sincedb文件内,下次再启动对这个日志文件的监控都会从记录的offset开始读,因此如果需要从头读取需要把这个文件先删掉。

输出到ES

配置logstash配置文件

vim $LS_HOME/config/logstash_nginxlog2es.conf 

input {
   # 从文件读取日志信息
   file {
        path => "/usr/local/nginx/logs/access.log"
        type => "nginx_access"
        start_position => "beginning"
    }
 }

filter {
   grok {
      match => { "message" => "%{HTTPD_COMBINEDLOG}" }
    }
}

output {
       # 输出es
       elasticsearch {
          hosts => ["wykd:9200"]
          index => "nginx-%{+YYYY.MM.dd}"
      }

}

启动验证

先删掉刚才的sincedb文件,然后启动监控并写入ES:

rm -rf /opt/app/logstash-7.7.0/data/plugins/inputs/file/.sincedb_d2343edad78a7252d2ea9cba15bbff6d

bin/logstash -f config/logstash_nginxlog2es.conf 

Kibana中分析nginx日志

可以在kibana中看到nginx日志的索引已经自动创建了,此时我们使用curl命令访问nginx,该索引内的数据量也会实时变化:

在kibana中创建index patten,并在discover中查看index数据:

 

如果对你有帮助,请点个赞鼓励一下作者吧~ 谢谢!

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ELK系列(四)、Logstash读取nginx日志写入ES中 的相关文章

随机推荐

  • python实现:提取文件夹中子文件夹的图片

    提取文件夹中子文件里的图片的方法 主要运用到的函数 import os import shutil 首先需要获取内部文件夹的文件名 os chdir D 作业 python 数据集 if masked AFDB masked face da
  • vue面试题汇总

    HTML篇 CSS篇 JS篇 TypeScript篇 React篇 微信小程序篇 前端面试题汇总大全 含答案超详细 HTML JS CSS汇总篇 持续更新 前端面试题汇总大全二 含答案超详细 Vue TypeScript React 微信小
  • 受标签影响的最大值

    题目描述 我们有一个 n 项的集合 给出两个整数数组 values 和 labels 第 i 个元素的值和标签分别是 values i 和 labels i 还会给出两个整数 numWanted 和 useLimit 从 n 个元素中选择一
  • Android之屏幕适配方案

    在说明适配方案之前 我们需要对如下几个概念有所了解 屏幕尺寸 屏幕分辨率 屏幕像素密度 屏幕尺寸 屏幕尺寸指屏幕的对角线的物理长度 单位是英寸 1英寸 2 54厘米 比如常见的屏幕尺寸 5 0 5 99 6 0等等 屏幕分辨率 屏幕分辨率是
  • java基础 谈谈方法?

    1 什么是方法 方法是类或对象的行为特征的抽象 是类或者对象中最重要的组成部分 谈到类时 组成部分就是两块 属性 方法 如果是学过c语言的同学 方法就像是函数 需要注意的是 方法在java中不能独立存在 需要定义在类中 或依附于类 或依附于
  • 第七章 区分鸟和飞机

    本章主要内容 1 构建前馈神经网络 2 使用Dataset和DataLoader加载数据 3 了解分类损失 1 cifar10数据集 1 1 数据集下载 Cifar10数据集 下载数据集 from torchvision import da
  • java代码如何读取一个JVM的参数呢?

    下文笔者将使用java代码读取JVM参数的方法分享 如下所示 实现思路 使用 ManagementFactory getRuntimeMXBean 中的getInputArguments 方法即可获取JVM运行时的参数 package co
  • ubuntu nginx 安装和启动和自启动

    ngx http core module 模块http tengine taobao org nginx docs cn docs http ngx http core module html 目录 1前置依赖软件 Linux 安装 mys
  • python开发需要掌握哪些知识-Python的8个基础知识点,新手必须背下来!

    Python是一个面向对象的解释型的交互式高级脚本语言 Python被设计成一种高可读性的语言 因为它大量地使用了英语中的单词作为关键字 而且不像其他语言使用标点符号构成复杂的语法结构 Python的语法结构非常少 Python是一种面向对
  • 全新推出Bard,谷歌google或许可以靠它打败微软OpenAI ChatGPT

    目录 前言 Bard优势 Bard新功能 更直观的Bard互动 Bard深度集成google search Help me write in Gmail 谷歌地图路线的全新沉浸式视图 谷歌照片全新Magic Editor体验 Bard与其他
  • vue监听本地存储token不存在自动刷新页面

    我们在代码编写的时候 为了更好的体验 有时候需要清除本地存储的token来自动刷新页面跳到登陆页面 这时候就需要一个监听器来监听本地存储的变化来执行操作 下面我们会用到一个JavaScript的addEventListener 事件监听方法
  • python 将列表里面的内容写入到txt文件中

    方法一 将列表写入txt文件中 如下代码所示 a是一段二维列表 需要把它写入一个txt文件中 a 1 9 2 5 3 3 2 4 4 3 1 8 1 9 t with open N a txt w as q for i in a for e
  • html5 jquery拍照显示,HTML5+Canvas+jQuery调用手机拍照功能实现图片上传(二)(示例代码)...

    上一篇仅仅讲到前台操作 这篇专门涉及到Java后台处理 前台通过Ajax提交将Base64编码过的图片数据信息传到Java后台 然后Java这边进行接收处理 通过对图片数据信息进行Base64解码 之后使用流将图片数据信息上传至server
  • Java虚拟机内存区域划分详解

    背景 JVM是Java开发的必备技能 JVM相当于Java的操作系统 JVM java virtual machine 即Java虚拟机 是运行java class文件的程序 Java代码经过Java编译器编译 会编译成class文件 是一
  • matlab exprnd函数,Matlab 用 exprnd 函数生成符合指数分布的随机数

    实验中需要用 exprnd 函数生成大量符合指数分布的随机数样本 于是 help exprnd exprnd Random arrays from exponential distribution R exprnd MU returns a
  • idea编译失败类找不到解决方式

    文章目录 方式一 使用 idea 的 Invalidate Caches 功能 方式二 使用 mvn idea idea 命令重新生成项目文件 近期在一个应用工程里修改代码 拉下来后发现引入其他 module 中的类找不到 本地 idea
  • 2021届保研经验贴—北邮,西交,武大,中科院,厦大,南开

    目录 一 本人情况 二 夏令营 1 南开大学计算机学院 2 山东大学软件学院 3 中科院网络信息中心 二 预推免 1 西交姚班 2 厦大计算机 3 浙软 4 武大遥感学院 5 武大网安 5 北交计院 6 北邮网安 7 华南理工计院 最后的最
  • 中关村大数据峰会——滴滴CEO程伟演讲+所感

    最近一直在学习大数据 正值年底各种技术峰会很多 参加了一些 这篇文章是滴滴CEO程伟讲诉滴滴成长发展的过程 感觉很不错 在此记录一下 同时简单的写了一些听后感 一 滴滴CEO程伟演讲词 1 滴滴的创业简史 三年前滴滴2012年创业的时候 那
  • 语言随机效应模型_医学统计与R语言:Probit回归模型及边际效应(Marginal effects)...

    微信公众号 医学统计与R语言如果你觉得对你有帮助 欢迎转发 A probit regression is a version of the generalized linear model used to model dichotomous
  • ELK系列(四)、Logstash读取nginx日志写入ES中

    前面讲了ELK的部署以及Logstash的插件的安装方式 本篇就介绍一下如何使用Logstash读取nginx的日志 并写入ES中 通过Kibana分析 ELK系列 一 安装ElasticSearch Logstash Kibana Fil