1. 程式人生 > >Logstash的資料型別和基本語法

Logstash的資料型別和基本語法

From:http://www.ttlsa.com/elk/elk-logstash-configuration-syntax/

logstash支援的資料型別有:

  • array
    陣列可以是單個或者多個字串值。
    path => [ "/var/log/messages", "/var/log/*.log" ]
    path 
    => "/data/mysql/mysql.log"
    如果指定了多次,追加陣列。此例項path陣列包含三個字串元素。
  • boolean
    布林值必須是TRUE或者false。true和false不能有引號。
    ssl_enable => true
  • bytes
    指定位元組單位。支援的單位有SI (k M G T P E Z Y) 和 Binary (Ki Mi Gi Ti Pi Ei Zi Yi)。Binary單位基於1024,SI單位基於1000。不區分大小寫和忽略值與單位之間的空格。如果沒有指定單位,預設是byte。
    my_bytes 
    => "1113" # 1113 bytes
    my_bytes 
    => "10MiB" # 10485760 bytes
    my_bytes 
    => "100kib" # 102400 bytes
    my_bytes 
    => "180 mb" # 180000000 bytes
  • Codec
    logstash編碼名稱用來表示資料編碼。用於input和output段。便於資料的處理。如果input和output使用合適的編碼,就無需單獨的filter對資料進行處理。
    codec => "json"
  • hash
    鍵值對,注意多個鍵值對用空格分隔,而不是逗號。
    match => {
    "field1"
     => "value1"
    "field2" => "value2"
    ... }
  • number
    必須是有效的數值,浮點數或者整數。
    port => 33
  • password
    一個單獨的字串。
    my_password => "password"
  • path
    一個代表有效的作業系統路徑。
    my_path => "/tmp/logstash"
  • string
    name => "Hello world"
    name 
    => 'It\'s a beautiful day'

欄位引用

logstash欄位引用語法。要在 Logstash 配置中使用欄位的值,只需要把欄位的名字寫在中括號 [] 裡就行了,這就叫欄位引用。還需注意欄位層次。如果引用的是一個頂級欄位,可以省略[],直接指定欄位名。要引用巢狀的欄位,需要指定完整的路徑,如[top-level field][nested field]。

下面有五個頂級欄位(agent, ip, request, response, ua) 和三個巢狀欄位 (status, bytes, os)。

123456789101112{"agent":"Mozilla/5.0 (compatible; MSIE 9.0)","ip":"192.168.24.44","request":"/index.html""response":{"status":200,"bytes":52353},"ua":{"os":"Windows 7"}}

為了引用os欄位,需指定[ua][os]。引用頂級欄位如request,可以簡單指定request即可。

sprintf格式

欄位引用格式也可以用於logstash呼叫sprintf格式。這種格式可以從其他字串中引用欄位值。如:

1 2 3 4 5 output{ statsd{ increment=>"apache.%{[response][status]}" } }

也可以格式化時間。如:

12345output{file{path=>"/var/log/%{type}.%{+yyyy.MM.dd.HH}"}}

條件判斷

使用條件來決定filter和output處理特定的事件。

logstash條件類似於程式語言。條件支援if、else if、else語句,可以巢狀。

條件語法如下:

1 2 3 4 5 6

相關推薦

Logstash資料型別基本語法

From:http://www.ttlsa.com/elk/elk-logstash-configuration-syntax/ logstash支援的資料型別有: array 陣列可以是單個或者多個字串值。 path => [ "/var/

go學習(二)——基本資料型別基本語法

在 Go 程式語言中,資料型別用於宣告函式和變數。 資料型別的出現是為了把資料分成所需記憶體大小不同的資料,程式設計的時候需要用大資料的時候才需要申請大記憶體,就可以充分利用記憶體。 1.常見資料型別 Go 語言按類別有以下幾種資料型別: 1 布林型 布林型的值只可

C 的資料型別基本型別轉換方式

C中的型別分為      整數資料型別     浮點型別    void型別    基本型別符號:   預設數值為十進位制,例如:10,20   以0開頭的數值為八進位制,例如:010,020   以0b開頭的數值為二進位制,例如:0b0011   以0x開頭的數

Redis資料型別 基本命令

1、Redis 的五大基本型別 String(字串) Hash(雜湊) List(列表) Set (集合) Zset (有序集合) 2、 Redis 鍵(key) keys * 查詢所有資料庫中的鍵 exists key的名字,判斷某個key是否存在 mo

Kotlin 學習筆記(一) 基本型別基本語法

Kotlin 被提升為 Android 開發一級語言, 雖然短時間內 Java 並不會被取代, 不過學習 Kotlin 還是宜早不宜遲, 做好迎接變化的準備。 Android Studio 3.0 開始官方支援了 Kotlin, 因此, 先下一個 3.0 Pr

JAVA與C當中基本資料型別基本運算子的區別

    JAVA當中的資料型別 大部分跟C都一樣 ,都是相通的。不過JAVA當中有一個String型別的,這個就相當於字串了,比起C當中要用字元型陣列來實現字串要方便很多。     boolean型別

python_資料型別基本語法

python中有如下幾種資料型別:    Number(數字)   |——int(整數型)         |——float(浮點型)         |——complex(複數型)     bool(布林型)        |——True         |——False 

JavaScript變數、資料型別基本語法規範

JavaScript 是一種弱型別語言,javascript的變數型別由它的值來決定。下面我們來介紹一下

Java中的基本資料型別引用資料型別的區別

一、資料型別 Java中的資料型別分為兩大類,基本資料型別和引用資料型別。 1、基本資料型別 基本資料型別只有8種,可按照如下分類 ①整數型別:long、int、short、byte ②浮點型別:float、double ③字元型別:char ④布林型別:boolean No.

資料型別基本使用列表字典

# 1.垃圾回收機制# 什麼是垃圾:當一個值身上沒有繫結任何變數名時(該值的引用技術=0時),該值就是垃圾# # del x(解除捆綁 減少引用計數)# #引用計數增加# age=18 #18的引用計數=1# x=age# 18的引用計數=2# print(age)# print(x)## 引用計數減少# a

mysql基本資料型別約束條件

mysql基本資料型別 1.建立表的完整語法 create table 表名(欄位1 型別[(寬度) 約束條件],欄位2 型別[(寬度) 約束條件]); # 注意:1.在同一張表中,欄位名不能相同;2.寬度和約束條件可選,欄位名和型別是必須的; # 型別:使用限制欄位必須以什麼樣的資料型別傳值 # 約束條

Redis-基本資料型別基礎命令

Redis : REmote DIctionary Server(遠端字典伺服器)    Redis學習:Http://www.redis.cn/ Redis 與其他 key - value 快取產品有以下三個特點 1.Redis支援資料的持久化,可以將記憶體中的資料保持

基本資料型別操作

基本資料型別 int 整數 str 字串 bool 布林值 list 列表 一般存放大量的資料 [元素,元素。元素] tuple 元組 只讀列表,只能看不能操作(元素,元素) dict 字典 存放一對一對的資料 {"key:value","key:value"} set 集合 之存放key 要求

前端入門8-JavaScript語法資料型別變數

宣告 本系列文章內容全部梳理自以下幾個來源: 《JavaScript權威指南》 MDN web docs Github:smyhvae/web Github:goddyZhao/Translation/JavaScript 作為一個前端小白,入門跟著這幾個來源學習,感謝作者的分享,

java中NaNInfinity基本資料型別包裝類(double,Double)

java浮點數運算中有兩個特殊的情況:NAN、INFINITY。 1、INFINITY: 在浮點數運算時,有時我們會遇到除數為0的情況,那java是如何解決的呢? 我們知道,在整型運算中,除數是不能為0的,否則直接執行異常。但是在浮點數運算中,引入了無

JS基本資料型別引用資料型別的區別及深淺拷貝

1、棧(stack)和堆(heap)   stack為自動分配的記憶體空間,它由系統自動釋放;而heap則是動態分配的記憶體,大小也不一定會自動釋放 2、資料型別   JS分兩種資料型別:     基本資料型別:Number、String、Boolean、Null、 Und

JS中基本資料型別引用型別最根本的區別

前言 JS中的型別只有6種,其中基本資料型別有5種分別為string,number,boolen,null,undefined,引用型別有一種,就是object,object是一個大的綜合體,在JS中除了那5個基本資料型別以外,其他的一切皆物件。 正文 兩個對比的例

java基本資料型別引用型別以及他們的儲存方式

1、基本資料型別: byte 8位 short 16 位 int 32 位 long 64位 float 32位 double 64位 2、基本資料型別和引用資料型別的儲存位置: java中的基本資料型別是儲存在棧中還是儲存在堆中取決於基本型別

基本資料型別包裝類的關係(以intInteger為例)

public void test(){ int a=10; Integer b=new Integer(10); Integer d= Integer.valueOf(10); Integer e= Integer.valueOf(10); Integer c=10; In

java基礎之----基本資料型別引用資料型別的引數傳遞過程(一)

值傳遞:方法呼叫時,實際引數把它的值傳遞給對應的形式引數,方法執行中形式引數值的改變不影響實際引數的值。 引用傳遞:也稱為傳地址。方法呼叫時,實際引數的引用(地址,而不是引數的值)被傳遞給方法中相對應的形式引數,在方法執行中,對形式引數的操作實際上就是對實際引