2017.8.1logstash基础语法学习

七月流火嗞嗞嗞 七月流火嗞嗞嗞     2022-09-11     298

关键词:

数据类型

1 bool:debug => true
2 string:host => "hostname"
3 int:port => 514
4 array:match => ["datetime", "UNIX", "ISO8601"]
5 hash:options => {
6     key1 => "value1",
7     key2 => "value2"
8 }

 

字段引用:

[field_name]  

[geoip][location][0]

"the longitude is %{[geoip][location][0]}"

 

条件判断

1 判等:==, !=, <, >, <=, >=
2 正则:=~, !~
3 包含:in, not in
4 布尔:and, or, nand, xor
5 一元:!()

 

命令行参数:

1 执行标准输入输出 bin/logstash -e ‘‘
2 执行指定配置内容 bin/logstash -e ‘配置内容‘
3 执行配置文件 bin/logstash -f bin/logstash.conf
4 读取confs下所有配置文件,拼接成大的配置文件再执行 bin/logstash -f /bin/confs/
5 测试配置文件 bin/logstash -f bin/logstash.conf --configtest
6 输出错误到日志 bin/logstash -l bin/logstash/logs/logstash.log
7 其他略。

 

输入插件

1 标准输入

1 input {
2     stdin {
3         add_field => {"key" => "value"}
4         codec => "plain"
5         tags => ["add"]
6         type => "std"
7     }
8 }

type:标记事件类型

tags:在数据处理过程中,由具体的插件来添加和删除的。 ???

 

2 读取文件

1 input
2     file {
3         path => ["/var/log/*.log", "/var/log/message"]
4         type => "system"
5         start_position => "beginning"
6     }
7 }

start_position : logstash 从什么位置开始读取文件数据,默认是结束位置,也就是说 logstash 进程会以类似 tail -F 的形式运行。如果你是要导入原有数据,把这个设定改成 "beginning",logstash 进程就从头开始读取,有点类似 cat,但是读到最后一行不会终止,而是继续变成 tail -F

 

3 读取网络数据

4 生成测试数据

1 input {
2     generator {
3         count => 10000000
4         message => {"key1":"value1","key2":[1,2],"key3":{"subkey1":"subvalue1"}}
5         codec => json
6     }
7 }

 

 

ELK的性能如何?

ELK并不是一个软件,而是一个并不耦合的套件,所以需要分开讨论性能。

Logstash:logstash本身并不维护队列,所以要熟悉测试方法。另外,logstash给自己的线程都设置了单独的名称,可以top -H查看每个线程的负载情况。

es:es是一个分布式系统,所以需要关注在确定的单机处理能力前提下,性能能否做到线性拓展。另外,有效的利用mapping API很重要。

kibana:只是一个单页web应用,加载慢基本是由于es的请求响应不够快造成。

 

5 读取syslog数据

6 读取redis数据

作为单独一篇。

 

7读取collectd数据

 

3 编码插件

3.1 json编码

 

1 input {
2     file {
3         path => "/var/log/nginx/access.log_json""
4         codec => "json"
5     }
6 }

 

 

3.2 合并多行数据

1 input {
2     stdin {
3         codec => multiline {
4             pattern => "^["
5             negate => true
6             what => "previous"
7         }
8     }
9 }

这个正则还可以用 grok 表达式,稍后你就会学习这方面的内容。

 

4 过滤器插件

4.1 grok

1 input {stdin{}}
2 filter {
3     grok {
4         match => {
5             "message" => "s+(?<request_time>d+(?:.d+)?)s+"
6         }
7     }
8 }
9 output {stdout{}}

官方提供的预定义 grok 表达式见:https://github.com/logstash/logstash/tree/v1.4.2/patterns

filter {
    grok {
        patterns_dir => "/path/to/your/own/patterns"
        match => {
            "message" => "%{SYSLOGBASE} %{DATA:message}"
        }
        overwrite => ["message"]
    }
}

 

2017.8.1-2017.10.1死间计划

...模式的学习,以学完《设计模式:可复用面向对象软件的基础》所有设计模式,并且写完相应的博客为考核目 查看详情

logstash语法常用案例解析

摘要简述logstash的常用插件,以及简单的使用案例一:基础运行建议使用supervisor来管理ELK中的各个组件,方便同一管理安装https://www.aolens.cn/?p=809   有讲解提供一个常用的配置:[program:logstash]command=/opt/logstash/bin/logstash&... 查看详情

vue学习-基础(基础语法&模板语法)

基础语法引入vue<!--开发环境版本,包含了有帮助的命令行警告--><scriptsrc="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><!--生产环境版本,优化了尺寸和速度--><scriptsrc="htt 查看详情

swift学习笔记——基础语法

Swift学习笔记——基础语法本文是针对新手学习Swift笔记,记录学习过程的一些体会以及一些学习过程中的理解:基础语法第一次接触Swift或者Oc语法的时候,总感觉有点像脚本语言,不像Java或者C/C++。当然这... 查看详情

零基础学习javase——基础语法

二、Java基础语法 2.1Java基础语法   java是一个面向对象的程序语言,及可把一切事物当做对象处理,而java的事物中最小的就是class(类),类中有方法,类可以创建对象,并且有一些属性等。一个Java程序可以认为是一... 查看详情

elk之logstash学习(代码片段)

Logstash最强大的功能在于丰富的过滤器插件。此过滤器提供的并不单单是过滤的功能,还可以对进入过滤器的原始数据进行复杂的逻辑处理。甚至添加独特的事件到后续流程中。1、logstash基本语法组成logstash主要由三部分组成:in... 查看详情

lua基础语法学习(代码片段)

Lua基础语法学习学习链接1、注释2、数据类型3、table库4、表达式5、表的构造6、控制语句7、函数Lua与NginxNginx处理顺序阶段ngx_lua运行指令学习链接https://blog.csdn.net/jiangwei0512/article/details/51057649https://blog.csdn.net/THIOUSTHIOUS/article/details... 查看详情

js基础语法学习

js函数先定义后执行functionf1(name){alert("helloname!")}f1(wang)f2(wang)functionf2(name){alert("helloname!")}可见放在前面和放在后的对运行结果毫无影响例:<body><inputtype="text"name="input1"id="id1"></body><scri 查看详情

java基础|java概述与基础语法案例

⭐本专栏旨在对JAVA的基础语法及知识点进行全面且详细的讲解,完成从0到1的java学习,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握JAVA编程,同时为后续的框架学习,进阶开发的代码能力打下坚实的基础。 查看详情

logstash配置语法

Logstash用{}来定义区域input{  stdin{}  syslog{}}数据类型booldebug=>truestringhost=>"hostname"numberport=>514arraymatch=>["datetime","UNIX","666 查看详情

java基础|基础语法之运算输入与控制语句

⭐本专栏旨在对JAVA的基础语法及知识点进行全面且详细的讲解,完成从0到1的java学习,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握JAVA编程,同时为后续的框架学习,进阶开发的代码能力打下坚实的基础。 查看详情

c++学习:1基础语法(代码片段)

C++发展史C++03只是修改了一些BUGC++11:majorC++17:major目录一、基础语法A1、cin、cout2、函数重载(Overload)3、默认参数4、extern"C"C和C++混合开发二、基础语法B5、内联函数( 查看详情

es基础语法学习

说明:当前所有示例均使用Kibana执行,如果未安装,可以选择使用Postman执行测试#数据写入PUT/kevin/doc/4 "name":"kevin", "age":30PUT/kevin/doc/8 "name":"kevin", "age":26, "id":1PUT/kevin/doc/10 "name":"kev 查看详情

android:kotlin详细入门学习指南-高阶函数-基础语法(代码片段)

...f0c;持续更新Android:Kotlin详细入门学习指南-高阶函数-基础语法(七)建议先看看前面的文章Android:Kotlin详细入门学习指南-基础语法(一)Android:Kotlin详细入门学习指南-基本类型-基础语法(二)Android:Kotl 查看详情

swift学习(1基础语法)

Swift  基础语法基本1.取消了预处理命令2.取消了指针的概念3.取消了NS前缀4.大量将类替换成struct5.“;”在同一行用来分割语句,如果不是同一行可以省略6.可选项7.playground8.条件语句”if”,空执行”()”9.没有非0即真的逻... 查看详情

android开发学习之路--kotlin之基础语法

...的,故这里先来学习下一些基本语法吧,打个小基础,后面才能游刃有余地开发。1基础语法这里省略了很多一般的语言需要的语法,只简单介绍下开发时要用到的。1.1定义变量:val:不可修改的变量, 查看详情

kotlin入门基础语法学习笔记(代码片段)

敲了一天的kotlin基础语法,整理归纳到一个类里面,便于以后忘记的时候复习。/***CreatedbyGGon2017/11/20.*///main函数funmain(args:Array<String>)vartestMain=TestMain()print(testMain.array())classTestMain//单例的写法compani 查看详情

html学习笔记:2.基础语法

HTML基本结构HTML标签HTML元素HTML属性注释①基本结构<html>html:指明是个html文件<head><title>标题</title>head:头部信息,在网页中不会显示出来</head><body>网页主体内容body:网页内容,浏览器中能看到的所有内容... 查看详情