騰訊雲 Elasticsearch 進階篇(二十九)Logstash講解與實戰
- 2020 年 3 月 14 日
- 筆記
一、Logstash輸出插件(output)
output是Logstash的最後階段,一個事件可以經過多個輸出,而一旦所有輸出處理完成,整個事件就執行完成。 一些常用的輸出包括:
file: 表示將日誌數據寫入磁碟上的文件。
elasticsearch:表示將日誌數據發送給Elasticsearch。Elasticsearch可以高效方便和易於查詢的保存數據。
graphite:表示將日誌數據發送給graphite,graphite是一種流行的開源工具,用於存儲和繪製數據指標。
此外,Logstash還支援輸出到nagios、hdfs、email(發送郵件)和Exec(調用命令執行)。
1、輸出到標準輸出(stdout)
stdout與之前介紹過的stdin插件一樣,它是最基礎和簡單的輸出插件,下面是一個配置實例:
output {
stdout {
codec => rubydebug———》調試、測試使用
}
}
stdout插件,主要的功能和用途就是用於調試,這個插件,在前面已經多次使用過。這裡不再過多介紹。
2、保存為文件(file)
file插件可以將輸出保存到一個文件中,配置實例如下:
output {
file {
path => "/data/log3/%{+yyyy-MM-dd}/%{host}_%{+HH}.log"
}
上面這個配置中,使用了變數匹配,用於自動匹配時間和主機名,這在實際使用中很有幫助。我們看一下下面得配置文件截圖:
1,input{} 標準輸入,也就是從鍵盤輸入
2,output{} file:表示輸出一個到一個文件; path:表示文件的路徑,需要手動創建目錄,後面得目錄會自動創建。
3,codec 對輸出得文件內容進行編碼,保證輸入得內容與輸出得內容保持一致,進而對數據進行分析。
好,接下來,我們啟動服務。看下圖:bin/logstash -f config/logstash8.conf
那麼我們驗證一下:/data/log下是否有我們得輸入文本並記錄日誌呢?
驗證成功。其實這個過程就可以稱為對系統日誌的實時備份。
3,輸出到elasticsearch(*****)
Logstash將過濾、分析好的數據輸出到elasticsearch中進行存儲和查詢,是最經常使用的方法。下面是一個配置實例
output—》到ES的配置路徑如下:
output {
elasticsearch {
host => ["http://vip:9200"]
index => "logstash-%{+YYYY.MM.dd}" —————->以時間為序列進行索引的生成。每天一個索引。
user => "elastic"
password => "XXXX"
}
}
上面配置中每個配置項含義如下:
l host:是一個數組類型的值,後面跟的值是elasticsearch節點的地址與埠,默認埠是9200。可添加多個地址。
l index:寫入elasticsearch的索引的名稱,這裡可以使用變數。Logstash提供了%{+YYYY.MM.dd}這種寫法。在語法解析的時候,看到以+ 號開頭的,就會自動認為後面是時間格式,嘗試用時間格式來解析後續字元串。這種以天為單位分割的寫法,可以很容易的刪除老的數據或者搜索指定時間範圍內的數據。此外,注意索引名中不能有大寫字母。
二、總結
那麼至此,Logstash入門篇的三大插件,已經全部講解完畢。想必通過前面的這些知識的了解學習,對於ELK有了更進一步的了解。好好複習一下吧,下面,我們再來講一下filebeat的一些知識。
此外,別忘了,ELK 官網,你值得擁有!!