個人學習筆記,謝絕轉載!!!
原文:https://www.cnblogs.com/wshenjin/p/13666614.html
安裝和配置
安裝
[root@ ~]# wget https://artifacts.elastic.co/downloads/logstash/logstash-7.9.1.rpm
[root@ ~]# rpm -ivh logstash-5.1.1.rpm
配置
# 調整jvm使用內存
[root@ ~]# vim /etc/logstash/jvm.options
-Xms128m
-Xmx256m
# 修改logstash基本配置
[root@ ~]# vim /etc/logstash/logstash.yml
log.level: warn
pipeline:
workers: 4
batch:
size: 125
delay: 5
path.config: /etc/logstash/conf.d
path.data: /data/elk/logstash
path.logs: /var/log/logstash
http.port: 9600
http.host: "0.0.0.0"
hello world
做個簡單的測試
[root@ ~]# logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'
hello world
{
"@version" => "1",
"message" => "hello world ",
"@timestamp" => 2020-09-12T07:23:44.025Z,
"host" => "localhost"
}
以上的例子從標准輸入中獲取數據,再從標准輸出中輸出。
在輸出的結果中:
-
"@timestamp"標記事件發生的時間點,
-
"host"標記事件發生的主機
-
"type"標記事件的唯一類型。
Es 統一采用UTC時間存成長整型數據,會比北京時間晚八個小時。
命令行參數:
- -e:直接執行后接的配置字符串,可以為空。空字符串''就默認是'input{stdin{}}output{stdout{codec=>rubydebug}}'。
- -f:后接配置文件,可以將復雜的配置寫到配置文件中。
- -t:測試,用來測試后接的配置文件語法是否正確。寫法:logstash -t -f conf_file_path
- -l:后接日志文件,默認日志為配置文件logstash.yml中指定的日志文件。
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'
條件判斷
- 相等: ==, !=, <, >, <=, >=
- 正則: =~(匹配正則), !~(不匹配正則)
- 包含: in(包含), not in(不包含)
- 布爾操作: and(與), or(或), nand(非與), xor(非或)
- 一元運算符:!(取反) ,()(復合表達式), !()(對復合表達式結果取反)
