您好,登錄后才能下訂單哦!
這篇文章主要介紹了Logstash有什么用,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
Logstash 的作用就是一個(gè)數(shù)據(jù)收集器,將各種格式各種渠道的數(shù)據(jù)通過(guò)它收集解析之后格式化輸出到 Elasticsearch ,最后再由 Kibana 提供的比較友好的 Web 界面進(jìn)行匯總、分析、搜索。
Input
可以從文件中、存儲(chǔ)中、數(shù)據(jù)庫(kù)中抽取數(shù)據(jù),Input有兩種選擇一個(gè)是交給Filter進(jìn)行過(guò)濾、修剪。另一個(gè)是直接交給Output
Filter
能夠動(dòng)態(tài)地轉(zhuǎn)換和解析數(shù)據(jù)??梢酝ㄟ^(guò)自定義的方式對(duì)數(shù)據(jù)信息過(guò)濾、修剪
Output
提供眾多輸出選擇,您可以將數(shù)據(jù)發(fā)送到您要指定的地方,并且能夠靈活地解鎖眾多下游用例。
1.安裝
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.0.1.rpm yum install -y ./logstash-6.0.1.rpm
2.Logstash配置文件
vim /etc/logstash/logstash.yml path.data: /var/lib/logstash # 數(shù)據(jù)存放路徑path.config: /etc/logstash/conf.d/*.conf # 其他插件的配置文件,輸入輸出過(guò)濾等等path.logs: /var/log/logstash # 日志存放路徑
3.Logstash中的JVM配置文件
Logstash是一個(gè)基于Java開(kāi)發(fā)的程序,需要運(yùn)行在JVM中,可以通過(guò)配置jvm.options來(lái)針對(duì)JVM進(jìn)行設(shè)定。比如內(nèi)存的最大最小、垃圾清理機(jī)制等等。這里僅僅列舉最常用的兩個(gè)。
JVM的內(nèi)存分配不能太大不能太小,太大會(huì)拖慢操作系統(tǒng)。太小導(dǎo)致無(wú)法啟動(dòng)。
vim /etc/logstash/jvm.options # logstash有關(guān)JVM的配置-Xms256m # logstash最大最小使用內(nèi)存-Xmx1g
4.最簡(jiǎn)單的日志收集配置
安裝一個(gè)httpd用于測(cè)試,配置Logstash收集Apache的accless.log日志文件
yum install httpdecho "Hello world" > /var/www/html/index.html # 安裝httpd,創(chuàng)建首頁(yè)用于測(cè)試vim /etc/logstash/conf.d/test.conf input { file { # 使用file作為數(shù)據(jù)輸入 path => ['/var/log/httpd/access_log'] # 設(shè)定讀入數(shù)據(jù)的路徑 start_position => beginning # 從文件的開(kāi)始處讀取,end從文件末尾開(kāi)始讀取 } } output { # 設(shè)定輸出的位置 stdout { codec => rubydebug # 輸出至屏幕 } }
5.測(cè)試配置文件
logstash是自帶的命令但是沒(méi)有再環(huán)境變量中,所以只能使用絕對(duì)路徑來(lái)使用此命令。
/usr/share/logstash/bin/logstash -t -f /etc/logstash/conf.d/test.conf # 測(cè)試執(zhí)行配置文件,-t要在-f前面Configuration OK # 表示測(cè)試OK
6.啟動(dòng)logstash
在當(dāng)前會(huì)話(huà)運(yùn)行l(wèi)ogstash后不要關(guān)閉這個(gè)會(huì)話(huà)暫時(shí)稱(chēng)其為會(huì)話(huà)1,再打開(kāi)一個(gè)新的窗口為會(huì)話(huà)2
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf
啟動(dòng)以后在會(huì)話(huà)2中使用curl命令進(jìn)行測(cè)試
curl 172.18.68.14
然后在回到之前的會(huì)話(huà)1可以看到輸出的信息
{ "@version" => "1", "host" => "logstash.shuaiguoxia.com", "path" => "/var/log/httpd/access_log", "@timestamp" => 2017-12-10T14:07:07.682Z, "message" => "172.18.68.14 - - [10/Dec/2017:22:04:44 +0800] \"GET / HTTP/1.1\" 200 12 \"-\" \"curl/7.29.0\""}
至此最簡(jiǎn)單的Logstash配置就已經(jīng)完成了,這里僅僅是將收集到的直接輸出沒(méi)有進(jìn)行過(guò)濾或者修剪。
上面的配置時(shí)Logsatsh從日志文件中抽取數(shù)據(jù),然后輸出至屏幕。那么在生產(chǎn)中往往是將抽取的數(shù)據(jù)過(guò)濾后輸出到Elasticsearch中。下面講解Elasticsearch結(jié)合Logstash
Logstash抽取httpd的access.log文件,然后經(jīng)過(guò)過(guò)濾(結(jié)構(gòu)化)之后輸出給Elasticsearch Cluster,在使用Head插件就可以看到抽取到的數(shù)據(jù)。(Elasticsearch Cluster與Head插件搭建請(qǐng)查看前兩篇文章)
配置Logstash
vim /etc/logstash/conf.d/test.conf input { file { path => ['/var/log/httpd/access_log'] start_position => "beginning" } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } remove_field => "message" } } output { elasticsearch { hosts => ["http://172.18.68.11:9200","http://172.18.68.12:9200","http://172.18.68.13:9200"] index => "logstash-%{+YYYY.MM.dd}" action => "index" document_type => "apache_logs" } }
啟動(dòng)Logstash
/usr/share/logstash/bin/logstash -t -f /etc/logstash/conf.d/test.conf # 測(cè)試配置文件 Configuration OK /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf # 啟動(dòng)Logstash
測(cè)試
每個(gè)執(zhí)行10次172.18.68.14,位Logstash的地址
curl 127.0.0.1 curl 172.18.68.14
驗(yàn)證數(shù)據(jù)
使用瀏覽器訪問(wèn)172.18.68.11:9100(Elastisearch 安裝Head地址,前面文章有講)
選擇今天的日期,就能看到一天內(nèi)訪問(wèn)的所有數(shù)據(jù)。
監(jiān)控Nginx日志
僅僅列了filter配置塊,input與output參考上一個(gè)配置
filter { grok { match => { "message" => "%{HTTPD_COMBINEDLOG} \"%{DATA:realclient}\"" } remove_field => "message" } date { match => ["timestamp","dd/MMM/YYYY:H:m:s Z"] remove_field => "timestamp" } }
監(jiān)控Tomcat
僅僅列了filter配置塊,input與output參考上一個(gè)配置
filter { grok { match => { "message" => "%{HTTPD_COMMONLOG}" } remove_field => "message" } date { match => ["timestamp","dd/MMM/YYYY:H:m:s Z"] remove_field => "timestamp" } }
現(xiàn)在已經(jīng)搭建成在節(jié)點(diǎn)安裝Logstash并發(fā)送到Elasticsearch中去,但是Logstash是基于Java開(kāi)發(fā)需要運(yùn)行在JVM中,所以是一個(gè)重量級(jí)采集工具,僅僅對(duì)于一個(gè)日志采集節(jié)點(diǎn)來(lái)說(shuō)使用Logstash太過(guò)重量級(jí),那么就可以使用一個(gè)輕量級(jí)日志收集工具Filebeat來(lái)收集日志信息,F(xiàn)ilebeat同一交給Logstash進(jìn)行過(guò)濾后再Elasticsearch。這些在接下來(lái)的文章在進(jìn)行講解,先放一張架構(gòu)圖吧。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Logstash有什么用”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。