ELK使用3 Logstash

2022-06-23 18:27:14 字數 3774 閱讀 7569

一、命令列輸入輸出操作

1、命令列輸出:

說明:a、stdin{}[標準輸入] 

b、stdout{}[標準輸出]

2、以json格式展示,在logstash中等號用 => 表示

3、輸出到es

a、要使用按照自定義方式根據當前時間生成索引的方式來輸入到es必須開啟 manage_template => true此引數,如使用logstash預設的logstash-% 則可以不用開啟此引數,這個問題困擾了一下午。

如果不使用manage_template => true引數會報錯如下:

[406]

b、如果只是自己命名的index則不需要新增manage_template引數。

4、既輸出到es又輸出到螢幕:

5、要刪除後重新生成index收集需要刪除相應的記錄

6、nginx日誌格式設定:

log_format access_log_json ''; 

7、filter

a、grok:對我們收進來的事件進行過濾。

簡單的grok案例:   

下面匹配的內容為:55.3.244.1get /index.html 158240.043

input 

}filter % % % %"} #這一行的意思是,將訊息按照logstash提供的正則欄位匹配,然後將匹配的內容的欄位命名為冒號後面自定義的名字

}}

如圖

其中截圖中序號1的意思是引用序號2中的匹配欄位,然後又引用了兩次qs匹配欄位,qs匹配欄位在同目錄下的grok-patterns中

二、公司架構設計

1、每個es上面都啟動一個kibana

2、kibana都連自己的es

3、前端nginx負載均衡+ ip_hash  + 驗證 +acl

三、rsyslog記錄

1、系統日誌配置檔案在/etc/rsyslog.conf中

2、配置檔案中路徑前面加  -  是為了不讓日誌立馬寫到檔案中而是先進行快取,在很多系統優化中都使用到。

3、要開啟系統日誌收集功能需要如下操作:

a、sed -i 's/#*.* @@remote-host:514/*.* @@192.168.30.42:514/g'  /etc/rsyslog.conf

b、 systemctl restart rsyslog

4、手動產生系統日誌方法

logger hehe

四、tcp日誌收集

1、給tcp埠傳送訊息方法

yum install -y nc

a、方法1:

echo "wohaoshuai" | nc 192.168.56.12 6666

b、方法2:

nc 192.168.30.42 6666 < /etc/resolv.conf

c、方法3:偽裝置的方式

echo "wohaoshuai" > /dev/tcp/192.168.30.42/6666

五、收集http日誌架構

六、使用elk進行日誌收集需求與思路

4、如果使用redis list 作為elkstack的訊息佇列,那麼請對所有list key的長度進行監控 llen key_name

a、根據實際情況,例如超過10萬就報警。

七、相應logstash配置檔案

1、stdin除錯

input

}filter

output"

manage_template => true

}stdout

}

2、file外掛

input

}filter

output"

manage_template => true

}stdout

}

3、使用type判斷

input

file

}filter

output"

manage_template => true}}

if [type] == "es-log"

"manage_template => true}}

stdout

}

4、收集某個目錄下的所有日誌

input

file

file

}filter

output"

manage_template => true}}

if [type] == "es-log"

"manage_template => true}}

if [type] == "docker-log"

"manage_template => true}}

stdout

}

5、匹配與合併

input

}}filter

output

}

6、綜合後寫入es

input

file

file}}

filter

output"

manage_template => true}}

if [type] == "es-log"

"manage_template => true}}

if [type] == "docker-log"

"manage_template => true}}

stdout

7、收集nginx日誌,並轉換成json格式輸出到es,nginx日誌格式見本章 一.6 

input

}filter

output"

manage_template => true}}

stdout

}

8、收集系統日誌

input

}filter

output"

} stdout

}

9、收集tcp日誌

input

}filter

output

}

10、filter匹配與篩選欄位

input

}filter % % % %" }

}}output

}

11、使用logstash自帶的匹配規則匹配http日誌

input

}filter" }}}

output"

manage_template => true}}

stdout

}

12、獲取輸入資訊到redis

input

}output

stdout

}

13、收集http日誌到redis

input

}output

stdout

}

14、獲取redis日誌到es

input

}filter" }}}

output"

manage_template => true

}stdout

}

ELK學習實驗010 Logstash簡介

logstash是具有實時流水線功能的開源資料收集引擎。logstash可以動態統一來自不同 的資料,並將資料規範化為您選擇的目標。清除所有資料並使其民主化,以用於各種高階下游分析和視覺化用例。 雖然logstash最初推動了日誌收集方面的創新,但其功能遠遠超出了該用例。 任何型別的事件都可以通過各...

ELK安裝使用

安裝版本 elasticsearch 2 4 6 logstash2 4 0 kibana4 6 1 啟動前先關閉防火牆 systemctl...

Logstash安裝和使用

logstash是開源的伺服器端資料處理管道,能夠同時 從多個 採集資料 轉換資料,然後將資料傳送到您最喜歡的 儲存庫 中。 我們的儲存庫當...