標籤(空格分隔): 日誌收集
logstash is a tool for managing events and logs. you can use it to collect logs, parse them, and store them for
later use (like, for searching). –
可是眾多log 收集framwork,像flume,scribe。fluent,為什麼選用logstash呢?
原因非常簡單:
部署啟動非常easy。僅僅須要有jdk就ok了
配置簡單,無需編碼
支援收集log路徑的正規表示式,不像flume那樣必須寫死要收集的檔名稱。logstash不是,像這樣
path => [「/var/log/.log「]有個flume vs fluentd vs logstash能夠看看
logstash事件處理流程氛圍三個stages:input ,filter,output。input支援非常多。如file。redis,kafka等等,filter主要是對input的log進行自己想要的處理,output則是輸出到你要儲存log的第三方framework。如kafka,redis,elasticsearch。db什麼的。詳細的檢視官網。
廢話不多說,開始樣例:
1. 最最簡單的樣例
input和output都是標準輸入輸出
[joeywen@192 logstash]$ bin/logstash -e 'input } output }'
logstash startup completed
>hello world ## 輸入的內容
>2015-08-02
t05:26:
55.564z joeywens-macbook-pro.local hello world ## logstash收集的內容
編寫config檔案
input
}output
# elasticsearch '
# }
}
輸入是file形式,收集系統日誌,假設有異常發生,通常異常會多行,這裡用codec => multiline 來對出現異常的多行轉換為一行輸入
輸出就是es。或者你也能夠把stdout作為除錯開啟看看,輸出的是什麼內容。執行命令例如以下以及輸出
[joeywen@192 logstash]$ bin/logstash -f sys.conf
logstash startup completed
", "@version" => "1",
"host" => "joeywens-macbook-pro.local",
"path" => "/var/log/system.log",
"type" => "syslog"
}
假設想加入或刪除字段,該怎麼辦?filter就該登場了
filter
filter的功能十分強大。能夠對input的內容做不論什麼更改。input的內容會轉換為乙個叫event的map,裡面存放著key/value對,正如你所示輸出一樣,@timestamp,type,@version, host,message等等,都是event裡面的key,在filter裡面你能夠啟動ruby 程式設計plugin對其做不論什麼更改
如:
input
}filter
if [type] =~ /^syslog/
}}output
}
如上我對type已syslog開頭的event做更改,呼叫ruby程式設計
看看輸出
[joeywen@192 logstash]$ bin/logstash -f sys.conf
logstash startup completed
能夠看到多了個file_name的字段,
假設相對message做解析的話。須要呼叫grok plugin來做,grok是非常強大外掛程式,比如
input
}filter % % % %" }
}}
對於message欄位呼叫正則匹配,語法是%
第乙個syntax是正規表示式名稱,第二個是對於匹配成功的字段取名字,這些syntax存在指定的pattern_dir資料夾下的檔案,格式是:
name pattern也能夠使用mutate來最event的key和value做更改。包含remove,add,update,rename 等等。詳細的都能夠看看(logstas**檔)[如 number \d+
這裡給個詳細的樣例吧
配置:
input
}filter
if [type] =~ /^syslog/
grok "}
}mutate
add_field=> "
=>
"hello world, from %"}}}
}output
}
輸出
[joeywen@192 logstash]$ bin/logstash -f sys.conf
logstash startup completed
Logstash學習1 logstash的簡單例子
如何安裝elk redis外掛程式 logstash f test.conf config.test and exit 會列印出錯誤並且會自動退出 7.測試顯示ok的話。執行 logstash f first pipeline.conf config.reload.automatic 這個配置可以使...
Logstash學習 配置語法
logstash 用 來定義區域。區域內可以包括外掛程式區域定義,你可以在乙個區域定義多個外掛程式,外掛程式區域內則可以定義鍵值對設定。logstash支援少量的資料值型別 注意 地域1.2.0的版本雜湊語法跟陣列一樣。欄位是 logstash event 物件的屬性。事件就像乙個雜湊一樣,所以可以...
iBatis學習小記
1.注意sqlmap.config檔案的sqlmap資源的順序 由於ibatis在初始化時,會將所有的資源檔案,按配置的順序讀入,如果資源的順序錯了,會引發以下異常。this sql map does not contain an resultmap named codenode.codetype ...