溫馨提示×

溫馨提示×

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

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

怎么使用elk搭建密碼top統(tǒng)計庫

發(fā)布時間:2021-12-13 09:37:58 來源:億速云 閱讀:189 作者:柒染 欄目:數(shù)據(jù)安全

怎么使用elk搭建密碼top統(tǒng)計庫,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

elk本身是非常強大的日志處理系統(tǒng),分別由elasticsearch、logstash、kibana構(gòu)成,功能分別是數(shù)據(jù)庫、數(shù)據(jù)處理、前端展示。利用這些搭建一套用于密碼topN統(tǒng)計的系統(tǒng)。當(dāng)然要完成這種統(tǒng)計需要強大的處理性能。

搭建基礎(chǔ)環(huán)境

基礎(chǔ)環(huán)境

操作系統(tǒng): ubuntu 20.4 64位

內(nèi)存:16G

硬盤:2T數(shù)據(jù)盤,128G ssd系統(tǒng)盤

ElasticSearch:7.10.1

Kibana:7.10.1

Logstash:7.10.1

1、elasticsearch

解壓文件,tar -zxvf elasticsearch*.tar.gz,切換目錄到elasticsearch中,之后所有關(guān)于elasticsearch的設(shè)置基本發(fā)生在此目錄中

修改配置文件,conf/elasticsearch.yml

建議修改如下 配置

----------路徑---------- 根據(jù)實際情況做修改 #數(shù)據(jù)存儲路徑 #path.data: /path/to/data #日志文件路徑 #path.logs: /path/to/logs ----------內(nèi)存---------- #在啟動過程中是否為內(nèi)存加鎖: bootstrap.memory_lock: true 請保證 `ES_HEAP_SIZE` 環(huán)境變量的設(shè)置大約為系統(tǒng)可用內(nèi)存的一半 ----------網(wǎng)絡(luò)----------- #綁定IP地址,單機搭建的情況建議改成127.0.0.1, network.host:127.0.0.1 http.port:9200

啟動elasticsearch

通過命令./bin/elasticsearch 直接啟動,以前臺的形式運行。通過命令curl 127.0.0.1:9200查看是否啟動成功。

怎么使用elk搭建密碼top統(tǒng)計庫

但是可以在使用過程中會報錯,就是內(nèi)存不足。此時需要修改jvm的大小。這個大小建議改成實際內(nèi)存的一半。比我的電腦實際內(nèi)存為16G,這里我用的就是8g。

文件位置:./config/jvm.options

-Xms8g
-Xmx8g

之后使用命令nohup ./bin/elasticsearch &以后臺的方式運行ES

2、Kibana

下載kibana

解壓文件,tar -zxvf kibana*.tar.gz,切換目錄到kibana中,之后所有關(guān)于kibana的設(shè)置基本發(fā)生在此目錄中。

kibana配置文件位置./config/kibana.yml

#監(jiān)聽端口 server.port: 5601 #默認(rèn)配置 #IP配置 server.host: 0.0.0.0 #建議改成全部網(wǎng)卡 #elasticsearch 地址 elasticsearch.hosts:["http://localhost:9200"] #根據(jù)實際情況配置,我上面配置的是localhost也就是127.0.0.1

之后通過命令nohup ./bin/kibana &在后臺運行kabana,通過host:5601在瀏覽器訪問kibana

怎么使用elk搭建密碼top統(tǒng)計庫

3、logstash

添加數(shù)據(jù)實際上比較好用的方式是使用logstash進(jìn)行數(shù)據(jù)導(dǎo)入,這種方式可以根據(jù)自己的實際情況,編寫數(shù)據(jù)格式,定制化高,但是有一定的難度。實際上logstash也是整個部分中最重要的地方,就是數(shù)據(jù)導(dǎo)入,通過logstash可以將各種類型的數(shù)據(jù)格式后后導(dǎo)入到ES 中存儲。

3.1 基礎(chǔ)知識

下載logstash

解壓文件,tar -zxvf logstash*.tar.gz,切換目錄到logstash中,之后所有關(guān)于logstash的設(shè)置基本發(fā)生在此目錄中。

開始進(jìn)行數(shù)據(jù) 導(dǎo)入前,我們先理解一個東西,logstash實際上是用來收集日志并進(jìn)行格式化處理的一個工具,集input、filter和output等插件

input可以接受來自beat(elk中一個輕量級的客戶端,有多種beat,有興趣的朋友可以自行了解)、日志文件、syslog等方式收集的日志。具體的可以參考官方手冊https://www.elastic.co/guide/en/logstash/current/input-plugins.html。我們這里使用的是file插件。

filter可以使用grok、json、xml等方式格式化數(shù)據(jù),根據(jù)實際情況選擇某種方式具體的可以參考官方手冊https://www.elastic.co/guide/en/logstash/current/filter-plugins.html。我們這里使用的主要是grok,可以根據(jù)文件情況編寫不同的正則表達(dá)式來處理文件。

output實際上是結(jié)果的輸出,也支持多種插件如syslog、csv、file等,具體參考官方手冊https://www.elastic.co/guide/en/logstash/current/output-plugins.html ,我們這里使用的elasticsearch,將結(jié)果輸出到es中。

3.2 簡單的配置

示例文件weakpass.txt

admin----123456
admin----admin
admin----1
admin----12345
test----123
test----test
test----1234
……

config 目錄下有個名為lostash-sample.conf的示例文件

# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.

#數(shù)據(jù)源也就是輸入配置
input {
#這里使用的是beats插件
  beats {
    port => 5044
  }
}

#數(shù)據(jù)輸出使用的是elasticsearch插件
output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
}

我們根據(jù)上面的示例文件配置一個weakpass.conf文件

input{
    file {
       #要導(dǎo)入的示例文件
    path => "path/weakpass.txt"
    #開始位置
    start_position => "beginning"
    }
}
filter{
    grok{
        match => {
        #格式化數(shù)據(jù)
        "message"=>"(?<name>.*?)----(?<pwd>.*)"
        }
    }
}
output{
    #使用debug將結(jié)果輸出到屏幕中
    stdout {
            codec => rubydebug
    }
}

使用命令 ./bin/logstash -f config/weakpass.conf來使用我們寫的配置文件導(dǎo)入數(shù)據(jù)。

怎么使用elk搭建密碼top統(tǒng)計庫

如果運行命令之后沒有數(shù)據(jù)輸出,建議刪除<u>./data</u>的所有文件,一定要看清楚目錄。

怎么使用elk搭建密碼top統(tǒng)計庫

3.3 垃圾數(shù)據(jù)剔除

為了減少數(shù)據(jù)的冗余度及硬盤空間的大小,所以我們要根據(jù)情況刪除一些無用字段,如path、message、host等。我們在gork中加入配置

remove_field=>["path","message","host"]怎么使用elk搭建密碼top統(tǒng)計庫

怎么使用elk搭建密碼top統(tǒng)計庫

通過這樣的配置,我們的數(shù)據(jù)量就減少了,其實時間戳也是可以刪除了,而且并沒有存在的意義,每條記錄都帶一個時間戳,實在是占用硬盤 空間。

3.4 數(shù)據(jù)導(dǎo)入ES

因為我們是在測試,所有使用的文件一直是weakpass.txt,logstash存在一個問題,處理過一次的數(shù)據(jù),不會重復(fù)處理(描述不一定正確)。所有建議清空data目錄。再進(jìn)行下面的操作。

修改配置文件如下

input{
        file {
            #要導(dǎo)入的示例文件
                path => "/media/k2/5fcda6c4-e009-41dd-a314-c54c3c55126b/elk/weakpass1.txt"
                start_position => "beginning"
        }
}
filter{
        grok{   
                match => {
                        #格式化數(shù)據(jù)
                        "message"=>"(?<name>.*?)----(?<pwd>.*)"
                }
                remove_field=>["path","message","host","@timestamp"]
                #設(shè)置標(biāo)簽,當(dāng)我們數(shù)據(jù)量比較多的時候可以區(qū)分?jǐn)?shù)據(jù)
                add_tag => "weakpass"
        }
}
output{
        #使用debug將結(jié)果輸出到屏幕中
        #stdout{ codec => rubydebug}
        elasticsearch{
                action => "index"
                index => "weakpass"#索引名稱
                hosts => ["127.0.0.1:9200"] #ES地址
        }               
}
3.5 使用kinaba

之后我們就可以在kibana中的索引管理中看到我們的索引

怎么使用elk搭建密碼top統(tǒng)計庫

這是我們就可以根據(jù)所以創(chuàng)建索引模式了

怎么使用elk搭建密碼top統(tǒng)計庫

創(chuàng)建完成后就可以在discover中檢索數(shù)據(jù)了

怎么使用elk搭建密碼top統(tǒng)計庫

比如我們輸入1,就可以檢索到所有跟1相關(guān)的數(shù)據(jù),

怎么使用elk搭建密碼top統(tǒng)計庫

我們也可以檢索用戶名為admin的數(shù)據(jù),這個就之會出來用戶名為admin的用戶了

怎么使用elk搭建密碼top統(tǒng)計庫

統(tǒng)計密碼排行

使用kibana的dashboard可以統(tǒng)計密碼排行

創(chuàng)建Data Table,選擇源為我們上面創(chuàng)建的,之后進(jìn)行如下的配置

怎么使用elk搭建密碼top統(tǒng)計庫

這樣我們就得到了上面排名了。因為數(shù)據(jù)比較少,所以統(tǒng)計速度快,這里就做了演示,沒有進(jìn)行更多的數(shù)據(jù)導(dǎo)入了。

優(yōu)化

優(yōu)化存儲

由于logstash在導(dǎo)入數(shù)據(jù)中會加入一些無用的字段,這些字段會在每一條記錄中都出現(xiàn),所以可以刪除來減少服務(wù)器的存儲空間。

path 原始路徑

message 完整記錄

host 主機名

@timestamp 時間戳

input{}
filter{
        grok{
                match => {
                        #格式化數(shù)據(jù)
                        "message"=>".*"
                }
                remove_field=>["path","message","host","@timestamp"]
                #設(shè)置標(biāo)簽
                add_tag => "weakpass"
        }
}
output{}

優(yōu)化索引

由于我們要導(dǎo)入不同的口令文件,所以我們要為后面的檢索做好準(zhǔn)備,這里我們就要根據(jù)導(dǎo)入內(nèi)容的不同在output部分寫上不同類型的索引,方便后面做檢索使用。

output{
        #使用debug將結(jié)果輸出到屏幕中
#       stdout{ codec => rubydebug}
        elasticsearch{
                action => "index"
                index => "weakpass-mail-111" # 索引名
                hosts => ["127.0.0.1:9200"]
        }
}

index => 索引名,如果我們要導(dǎo)入的密碼包括不同類型,這里抖機靈一下,寫上不同的類型,
如weakpass-mail-1、weakpass-q-1、weakpass-b-1,這樣我們在利用kibana進(jìn)行創(chuàng)建索引樣式時就可以創(chuàng)建weakpass*這一類的樣式了。
怎么使用elk搭建密碼top統(tǒng)計庫
之后便可以在discover中選擇對應(yīng)的pattern來檢索某一類數(shù)據(jù)。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

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

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI