ELK-日志服务【logstash-安装与使用】

目录

【1】安装logstash

logstash input 插件的作用与使用方式

【2】input --> stdin插件:从标准输入读取数据,从标准输出中输出内容

【3】input -- > file插件:从文件中读取数据

【4】input -- > beat插件:从filebeat中读取数据,然后标准输出

【5】input --> kafka插件:从kafka中读取数据

logstash Filter 插件的作用与使用

【6】 Filter --> Grok 插件:将非结构化数据转换成 JSON 结构化数据

【7】Filter --> Geoip插件:根据IP地址提供对应的低于信息,经纬度、城市名等

【8】Filter --> Date插件:将日期字符串解析为日志类型,然后替换@timestamp字段或指定的其他字段

【9】Filter --> useragent插件:根据 agent 字段,解析出浏览器设备、操作系统等


【1】安装logstash

[root@logstash ~]# yum -y install java
[root@logstash ~]# yum -y localinstall logstash-7.4.0.rpm

logstash input 插件的作用与使用方式

【2】input --> stdin插件:从标准输入读取数据,从标准输出中输出内容

[root@logstash ~]# vim /etc/logstash/conf.d/stdin_logstash.conf

input {
  stdin {
    type => "stdin"
    tags => "stdin_tags"
  }
}
output {
  stdout {
    codec => rubydebug
  }
}

## 启动
[root@logstash ~]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/stdin_logstash.conf -r

【3】input -- > file插件:从文件中读取数据

[root@logstash ~]# vim /etc/logstash/conf.d/file_logstash.conf

input {
  file {
    path => "/var/log/messages"
    type => syslog
    exclude => "*.gz"                 # 排除,基于glob匹配语法
    start_position => "beginning"     # 第一次从头读取文件
    stat_interval => "3"              # 定时检查文件是否更新,默认1秒
  }
}
output {
  stdout {
    codec => rubydebug
  }
}

[root@logstash ~]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/file_logstash.conf -r

【4】input -- > beat插件:从filebeat中读取数据,然后标准输出

[root@logstash ~]# vim /etc/logstash/conf.d/beat_logstash.conf 

input {
  beats {
    port => 5044
  }
}
output {
  stdout {
    codec => rubydebug
  }
}

【5】input --> kafka插件:从kafka中读取数据

input {
  kafka {
    zk_connect => "kafka1:2181,kafka2:2181,kafka3:2181"
    group_id => "logstash"
    topic_id => "apache_logs"
    consumer_threads => 16
  }
}

logstash Filter 插件的作用与使用

  • 数据从源到存储过程中,logstash 的 filter 过滤器能够解析各个事件,识别已命名的字段结构,并将它们转换成通用格式,以便更轻松、更快速地分析和实现商业价值
  • Grok 从非结构换数据中派生出结构
  • Geoip 从IP 地址分析出地理坐标
  • useragent 从请求中分析操作系统、设备类型

【6】 Filter --> Grok 插件:将非结构化数据转换成 JSON 结构化数据

  • 我们希望将下面的非结构化数据解析成json结构化的数据格式
  • grok中内置了非常多pattern可以直接使用
[root@logstash ~]# tailf /var/log/nginx/access.log 
101.201.253.168 - - [12/Jul/2023:07:38:01 -0400] "GET / HTTP/1.1" 200 4 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0" "-"
  • 使用grok pattern 将nginx 日志格式转化为 json格式,我们先看下没有转换以前的数据样子
[root@logstash ~]# vim /etc/logstash/conf.d/grok_nginx_logstash.conf
input {
  http {
    port => 7474
  }
}
output {
  stdout {
    codec => rubydebug
  }
}

[root@logstash ~]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/grok_nginx_logstash.conf -r

  • 我们发现日志格式并没有处理,需要使用filter中的grok插件
[root@logstash ~]# vim /etc/logstash/conf.d/grok_nginx_logstash.conf 

input {
  http {
    port => 7474
  }
}
filter {
  grok {
    match => {
      "message" => "%{COMBINEDAPACHELOG}"
    }
  }
}
output {
  stdout {
    codec => rubydebug
  }
}

  • 被解析的源格式依然在,还会输出解析后的key-value格式的数据

【7】Filter --> Geoip插件:根据IP地址提供对应的低于信息,经纬度、城市名等

  • 使用geoip提取nginx日志中clientip字段,获取地域信息
[root@logstash ~]# vim /etc/logstash/conf.d/grok_nginx_logstash.conf 

input {
  http {
    port => 7474
  }
}
filter {
  grok {
    match => {
      "message" => "%{COMBINEDAPACHELOG}"
    }
  }
  geoip {
    source => "clientip"
  }
}
output {
  stdout {
    codec => rubydebug
  }
}

  • 如果内容太多,可以使用fileds选择自己需要的
input {
  http {
    port => 7474
  }
}
filter {
  grok {
    match => {
      "message" => "%{COMBINEDAPACHELOG}"
    }
  }
  geoip {
    source => "clientip"
    fields => ["city_name","country_name","country_code2","timezone","longitude","latitude","continent_code"]
  }
}
output {
  stdout {
    codec => rubydebug
  }
}

【8】Filter --> Date插件:将日期字符串解析为日志类型,然后替换@timestamp字段或指定的其他字段

  • match 类型为数组,用于指定日期匹配的格式,可以以此指定多种日期格式
  • target 类型为字符串,用于指定赋值的字段名,默认是@timestamp
  • timezone 类型为字符串,用于指定时区域

 将nginx请求中的timestamp日志进行解析,替换@timestamp中的数据,为什么需要怎么做?

  • timestamp:日志的访问时间
  • @timestamp:日志的写入时间
  • kibana 展示的@timestamp信息中需要的是真实的访问时间,我们就需要将timestamp中的信息覆盖掉@timestamp中

[root@logstash conf.d]# vim /etc/logstash/conf.d/grok_nginx_logstash.conf 
input {
  http {
    port => 7474
  }
}
filter {
  grok {
    match => {
      "message" => "%{COMBINEDAPACHELOG}"
    }
  }
  geoip {
    source => "clientip"
    fields => ["city_name","country_name","country_code2","timezone","longitude","latitude","continent_code"]
  }
  date {
    match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]
    target => "@timestamp"
    timezone => "Asia/Shanghai"
  }
}
output {
  stdout {
    codec => rubydebug
  }
}

【9】Filter --> useragent插件:根据 agent 字段,解析出浏览器设备、操作系统等

[root@logstash conf.d]# vim /etc/logstash/conf.d/grok_nginx_logstash.conf 
input {
  http {
    port => 7474
  }
}
filter {
  grok {
    match => {
      "message" => "%{COMBINEDAPACHELOG}"
    }
  }
  geoip {
    source => "clientip"
    fields => ["city_name","country_name","country_code2","timezone","longitude","latitude","continent_code"]
  }
  date {
    match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]
    target => "@timestamp"
    timezone => "Asia/Shanghai"
  }
  useragent {
    source => "agent"
    target => "useragent"   ## 也可以填agent,将agent中的数据覆盖掉
  }
}
output {
  stdout {
    codec => rubydebug
  }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/36892.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

赛效:如何用在线压缩GIF图片

1:在电脑网页上打开并登录快改图,点击左侧菜单栏里的“GIF压缩”。 2:点击页面中间的上传按钮,将电脑本地的GIF文件上传上去。 3:GIF文件上传成功后,设置下方压缩设置,点击右下角“开始压缩”。…

学习记录——Transformer、ViT、Swin-Transformer、SegFormer、TopFormer、Seaformer

Transformer 2017 Computation and Language Google Self-Attention、Multi-Head Attention 位置编码 原理参考链接 ransformer网络结构: ViT 2020 ICLR 将transformer引入到cv领域 将输入图片224x224x3按照16x16x3大小的Patch进行划分,接着通过…

Prometheus监控Tongweb容器

🏅概述 JMX Exporter主要是利用Java的JMX机制来读取JVM运行时的一些数据,然后转化为Prometheus可读取的metrics格式的数据。 JMX Exporter有两种用法: 启动独立进程。通过RMI读取JVM数据,但是单独进程监控也存在问题。JVM进程内启…

告别固定字体大小:CSS使用相对单位提升网页可访问性和兼容性

在 Web 开发领域中,有很多误解流传,即使它们被反驳了很多次也仍然存在。"外部链接应该总是在新标签页中打开" 就是一个很好的例子。CSS Tricks 在将近十年前就对此进行了详细的解释(简而言之:大多数情况下是错误的&…

华为、阿里巴巴、字节跳动 100+ Python 面试问题总结(三)

系列文章目录 个人简介:机电专业在读研究生,CSDN内容合伙人,博主个人首页 Python面试专栏:《Python面试》此专栏面向准备面试的2024届毕业生。欢迎阅读,一起进步!🌟🌟🌟 …

R中高效安装包,以ComplexHeatmap包为例

包安装问题解决方案 1. Biocmanager安装 [2. 手动安装](正在更新……) 目录 包安装问题解决方案前言1. install.packages()的介绍1.1 install.packages()的工作原理1.2 install.packages()安装失败的原因1.3 解决方案 2. BiocManage安装ComplexHeatmap总…

Android 中利用多个Button组合实现选项切换效果

效果图&#xff1a; xml布局: <LinearLayoutandroid:orientation"horizontal"android:layout_width"match_parent"android:layout_height"50dp"android:gravity"center"android:background"color/White">​<Linear…

Django_Paginator分页器

目录 分页器代码说明 简单demo 源码等资料获取方法 分页器代码说明 import os import random # 需要导入分页器类from django.core.paginator import Paginator, EmptyPage# 导入配置django配置文件 os.environ.setdefault(DJANGO_SETTINGS_MODULE, dailyfresh.settings)it…

SSH 远程口令登录及免密登录

简介&#xff1a; SSH是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机使用SSH协议登录另一台计算机我们就可以认为这种登录时安全的&#xff0c;即使被中途截获,密码也不会泄露 安装 1.服务器安装OpenSSH(CentOS系统默认安装了openssh) 1.yum install op…

Linux 安装elasticsearch,kibana,Logstash

1、Elasticsearch 安装 cd /usr/localwget \ https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.7-linux-x86_64.tar.gz \ https://artifacts.elastic.co/downloads/kibana/kibana-7.17.7-linux-x86_64.tar.gz \ https://artifacts.elastic.co/downlo…

POLARDB IMCI 白皮书 云原生HTAP 数据库系统 一 列式数据是如何存储与处理的

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到2群&#xff08;共…

如何实现浏览器内多个标签页之间的通信?

1、使用 LocalStorage 特点&#xff1a;同域共享存储空间&#xff1b;持久化将数据存储在浏览器&#xff1b;提供事件监听storage变化 实现逻辑&#xff1a; A页面将数据存储在本地。B页面监听storage的变化&#xff0c;同步storage的最新数据&#xff1b; 好处&#xff1a;操…

探索MediaPipe的人像分割

MediaPipe是Google开源的计算机视觉处理框架&#xff0c;基于TensorFlow来训练模型。图像分割模块提供人像分割、头发分割、多类分割。本文主要探索如何实现人像分割&#xff0c;当然在人像分割基础上&#xff0c;我们可以做背景替换、背景模糊。 目录 一、配置参数与模型 1…

微擎后台getshell,低权限也可以

/web/index.php?csite&aeditor 这个文件可以编辑html&#xff0c;然后前台会解析成php 没测试最新版 比如编辑专题&#xff1a;/web/index.php?csite&aeditor&dopage&multiid0 上架抓包 改html内容为php 复制前台url 访问之 博客原文&#xff1a; 微擎后…

GEE入门学习,遥感云大数据分析、管理与可视化以及在林业应用丨灾害、水体与湿地领域应用丨GPT模型应用

目录 ①海量遥感数据处理与GEE云计算技术实践应用 ②GPT模型支持下的Python-GEE遥感云大数据分析、管理与可视化技术及多领域案例实践应用 ③GEE遥感云大数据林业应用典型案例实践及GPT模型应用 ④遥感云大数据在灾害、水体与湿地领域典型案例实践及GPT模型应用 ①海量遥感…

关于SpringBoot、Nginx 请求参数包含 [] 特殊符号 返回400状态

问题来源&#xff1a; 使用RESTful风格发送带有特殊符号(如&#xff1a;点、大括号等)的请求&#xff0c;当使用Nginx做地址映射时会返回报"HTTP Status 400-Bad Request"的错误&#xff0c;这个时候我们需要对Nginx的映射方式做一下调整。 Nginx调整完发现跳转后又报…

回归预测 | MATLAB实现WOA-CNN-GRU鲸鱼算法优化卷积门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现WOA-CNN-GRU鲸鱼算法优化卷积门控循环单元多输入单输出回归预测 目录 回归预测 | MATLAB实现WOA-CNN-GRU鲸鱼算法优化卷积门控循环单元多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 回归预测 | MATLAB实现WOA-CNN-GR…

ELK日志记录——Kibana组件——grok 正则捕获插件、mutate数据修改插件、multiline 多行合并插件、date 时间处理插件

grok 正则捕获插件 grok 使用文本片段切分的方式来切分日志事件 内置正则表达式调用 %{SYNTAX:SEMANTIC} ●SYNTAX代表匹配值的类型&#xff0c;例如&#xff0c;0.11可以NUMBER类型所匹配&#xff0c;10.222.22.25可以使用IP匹配。 ●SEMANTIC表示存储该值的一个变量声明&…

【新版系统架构】第十七章-通信系统架构设计理论与实践

软考-系统架构设计师知识点提炼-系统架构设计师教程&#xff08;第2版&#xff09; 第一章-绪论第二章-计算机系统基础知识&#xff08;一&#xff09;第二章-计算机系统基础知识&#xff08;二&#xff09;第三章-信息系统基础知识第四章-信息安全技术基础知识第五章-软件工程…

《数学模型(第五版)》学习笔记(1) 第1章 建立数学模型 第2章 初等模型

参考数学建模论坛《数学模型(第三版)》学习笔记 http://www.madio.net/thread-146480-1-1.html 参考视频 数模视频&#xff08;姜启源、谢金星&#xff09; https://www.bilibili.com/video/BV1VJ411w7r3/?spm_id_from333.788.recommend_more_video.0&vd_source3ef6540f84…