溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Logstash有什么用

發(fā)布時(shí)間:2022-02-19 10:07:25 來(lái)源:億速云 閱讀:402 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹了Logstash有什么用,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

Logstash 的作用就是一個(gè)數(shù)據(jù)收集器,將各種格式各種渠道的數(shù)據(jù)通過(guò)它收集解析之后格式化輸出到 Elasticsearch ,最后再由 Kibana 提供的比較友好的 Web 界面進(jìn)行匯總、分析、搜索。

Logstash有什么用

一、原理

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ā)送到您要指定的地方,并且能夠靈活地解鎖眾多下游用例。

Logstash有什么用
詳解Elasticsearch的基友Logstash詳解Elasticsearch的基友Logstash

二、安裝使用

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ò)濾或者修剪。

三、Elasticsearch與Logstash

上面的配置時(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有什么用
詳解Elasticsearch的基友Logstash詳解Elasticsearch的基友Logstash

配置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ù)。

Logstash有什么用
詳解Elasticsearch的基友Logstash詳解Elasticsearch的基友Logstash

四、監(jiān)控其他

監(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"       }
   }

五、Filebeat

現(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)圖吧。

Logstash有什么用

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Logstash有什么用”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI