Filebeat+Logstash+Elasticsearch測試

安裝配置好三個軟件使之能夠正常啟動副瀑,下面開始測試舱污。

第一步

elasticsearch提供了restful api,這些api會非常便利粱栖,為了方便查看话浇,可以使用postman調(diào)用接口。
1闹究、查看Elasticsearch服務(wù)是否正常

GET http://120.27.110.143:9200

如果服務(wù)正常將會返回以下格式數(shù)據(jù)

{
    "name": "node-1",   # 節(jié)點(diǎn)名稱
    "cluster_name": "es_cluster",  # 集群名稱
    "cluster_uuid": "p_19Z1wFQA2tUWwJr6BjpA",  # 集群uuid
    "version": {  # elasticsearch的版本信息
        "number": "6.4.0",  # 版本號
        "build_flavor": "default",  # 默認(rèn)構(gòu)建
        "build_type": "tar",  # 構(gòu)建類型
        "build_hash": "595516e",  # 構(gòu)建hash
        "build_date": "2018-08-17T23:18:47.308994Z",  # 構(gòu)建時間
        "build_snapshot": false,  # 構(gòu)建快照
        "lucene_version": "7.4.0",  # lucene版本
        "minimum_wire_compatibility_version": "5.6.0",  # 最小兼容版本
        "minimum_index_compatibility_version": "5.0.0"  # 最小索引兼容版本
    },
    "tagline": "You Know, for Search"  # 品牌口號
}

Tip
(1)節(jié)點(diǎn)名稱和集群名稱是可配置的幔崖,在elasticsearch.yml配置文件中可修改
(2)120.27.110.143是Elasticsearch服務(wù)所在的服務(wù)器地址,要使外部可以通過ip地址訪問Elasticsearch渣淤,同樣需要在elasticsearch.yml中配置network.host: 0.0.0.0


(3)elasticsearch.yml配置文件中還有其他配置項(xiàng)赏寇,具體情況具體配置

2、查看Elasticsearch里的索引數(shù)據(jù)

GET http://120.27.110.143:9200/_cat/indices?v

服務(wù)正常情況下回返回以下格式數(shù)據(jù)

health status index                       uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   nagios-dashboard-2018.09.17 YPsJER0dRYSY7cHXJqm_WQ   5   1       1108            0    622.9kb        622.9kb
yellow open   logstash-2018.09.18         mm3r8OEeTrmw3vBrt4RdwQ   5   1        302            0    686.9kb        686.9kb
yellow open   filebeat-6.4.0-2018.09.18   qBq5H37iQEiw86x7mDSJpg   5   1        500            0    342.2kb        342.2kb

由于之前已經(jīng)運(yùn)行過一次服務(wù)所以產(chǎn)生了以上數(shù)據(jù)
3价认、刪除Elasticsearch里的索引數(shù)據(jù)

DELETE http://120.27.110.143:9200/logstash-2018.09.18?pretty

如果索引名稱無誤將會返回

{
    "acknowledged": true
}

如果索引名稱有誤則會返回404

第二步

已經(jīng)刪除之前產(chǎn)生的數(shù)據(jù)嗅定,現(xiàn)在開始測試
1、使用Elasticsearch官網(wǎng)提供的測試數(shù)據(jù)logstash-tutorial.log文件
我們看一下logstash-tutorial.log文件內(nèi)容

hsl@iZ282hpfj1mZ:~$ vi logstash-tutorial.log 

里面含有100條以下格式的數(shù)據(jù)

83.149.9.216 - - [04/Jan/2015:05:13:42 +0000] "GET /presentations/logstash-monitorama-2013/images/kibana-dashboard3.png HTTP/1.1" 200 171717 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36"


2用踩、配置filebeat
filebeat可以單獨(dú)和elasticsearch使用渠退,不通過logstash,差別在于沒有l(wèi)ogstash分析過濾脐彩,存儲的是原始數(shù)據(jù)碎乃,而將數(shù)據(jù)轉(zhuǎn)發(fā)到logstash分析過濾后,存儲的是格式化數(shù)據(jù)惠奸,下面通過對比可以看到

首先配置filebeat.yml文件如下

filebeat.prospectors:
- type: log  # filebeat處理類型為log文件
  paths:
    - /home/hsl/logstash-tutorial.log  # log文件的絕對路徑
output.elasticsearch:  # 輸出到elasticsearch
  hosts: ["localhost:9200"]
tail_files: true  # 從文件末尾讀取

Tip
(1)paths可以是多個日志文件的絕對路徑
(2)output有多個輸出方式梅誓,可以輸出到logstash,也可以輸出到數(shù)據(jù)庫存儲,考慮到全文檢索梗掰,官網(wǎng)建議使用elasticsearch數(shù)據(jù)庫删豺。
(3)hosts可以是多個數(shù)據(jù)庫地址,由于filebeat和elasticsearch在同一臺服務(wù)器上所以可以寫成localhost:9200愧怜,當(dāng)然也可以換成它的IP120.27.110.143:9200

3、運(yùn)行filebeat

hsl@iZ282hpfj1mZ:~/filebeat-6.4.0-linux-x86_64$ ./filebeat -e -c filebeat.yml -d "publish"

如果一切正常將會看到以下輸出


可以看到上面的輸出妈拌,以及下面的紅框中的內(nèi)容拥坛,
Connected to Elasticsearch version 6.4.0
已經(jīng)連接到elasticsearch數(shù)據(jù)庫,
Template already exists and will not be overwritten.
模板已經(jīng)存在并且不會被重寫尘分。

下面通過postman查看elasticsearch數(shù)據(jù)庫

GET  http://120.27.110.143:9200/_cat/indices?v

結(jié)果如圖所示


index:filebeat-6.4.0-2018.09.18是生成的索引名稱猜惋,具體的生成規(guī)則暫時還不知道如何配置,下次再討論培愁。
docs.count:100文檔數(shù)量是100對應(yīng)我們的測試文件著摔。

可以看一下具體的數(shù)據(jù)格式

GET  http://120.27.110.143:9200/filebeat-6.4.0-2018.09.18/_search?pretty

結(jié)果如圖所示


每個文檔中的具體內(nèi)容如下

{
         "_index": "filebeat-6.4.0-2018.09.18",  # 索引名
         "_type": "doc",  # 類型
         "_id": "3ZWv6mUBvd_PCv61-X6v",  # id
         "_score": 1,  # 得分
         "_source": {
              "@timestamp": "2018-09-18T03:18:44.531Z",  # 時間戳
              "message": "83.149.9.216 - - [04/Jan/2015:05:13:42 +0000] \"GET /presentations/logstash-monitorama-2013/images/kibana-dashboard3.png HTTP/1.1\" 200 171717 \"http://semicomplete.com/presentations/logstash-monitorama-2013/\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"",  # 一行日志內(nèi)容
              "source": "/home/hsl/logstash-tutorial.log",  # 來源
              "offset": 325,  #  物理地址位移
              "input": {
                   "type": "log"  # 輸入類型
               },
              "prospector": {
                   "type": "log"
               },
              "beat": {
                  "hostname": "iZ282hpfj1mZ",  # beat所在主機(jī)名
                  "version": "6.4.0",  # 版本號
                  "name": "iZ282hpfj1mZ"  # beat名
               },
               "host": {
                   "name": "iZ282hpfj1mZ"  # 主機(jī)名
               }
       }
}

現(xiàn)在關(guān)閉filebeat并且重新啟動一次看數(shù)據(jù)是否會變
通過服務(wù)器日志輸出以及postman查詢可以看到并沒有將數(shù)據(jù)再次寫入到elasticsearch中



現(xiàn)在向logstash-tutorial.log文件中添加一行

hsl@iZ282hpfj1mZ:~$ echo '86.1.76.62 - - [04/Jan/2015:05:30:37 +0000] "GET /style2.css HTTP/1.1" 200 4877 "http://www.semicomplete.com/projects/xdotool/" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20140205 Firefox/24.0 Iceweasel/24.3.0"' >> /home/hsl/logstash-tutorial.log 

可以看到當(dāng)文件發(fā)生改變是filebeat會自動監(jiān)控到并執(zhí)行


下面看一下elasticsearch中的數(shù)據(jù),如果無誤現(xiàn)在的文檔數(shù)量應(yīng)該是101

Tip
(1)當(dāng)使用vi打開文件定续,在文件末尾添加一行谍咆,保存并退出后,filebeat會將上一次發(fā)送時的offset讀取重新發(fā)送一次私股,推送兩次event摹察,導(dǎo)致數(shù)據(jù)重復(fù)。具體的官網(wǎng)解釋翻譯如下:
你怎么修改文件倡鲸?你試過了$ echo 'new line' >> /usr/src/app/log.log嗎供嚎?filebeat試圖根據(jù)元數(shù)據(jù)來檢測文件是否是新的。一些工具/編輯器創(chuàng)建一個全新的文件保存并取消舊鏈接峭状。這被filebeat檢測為新文件克滴,迫使它重新發(fā)送所有內(nèi)容。
4优床、測試filebeat監(jiān)控多個日志文件
首先修改filebeat.yml文件如下:

filebeat.prospectors:
- type: log
  paths:
    - /home/hsl/logstash-tutorial.log
- type: log
  paths:
    - /home/hsl/logstash-tutorial_copy.log  # 復(fù)制一份測試用例日志
output.elasticsearch:
  hosts: ["120.27.110.143:9200"]
tail_files: true

然后劝赔,清空elasticsearch數(shù)據(jù),并執(zhí)行以下命令胆敞,刪除注冊信息

hsl@iZ282hpfj1mZ:~/filebeat-6.4.0-linux-x86_64$ rm data/registry 

最后重新啟動filebeat

hsl@iZ282hpfj1mZ:~/filebeat-6.4.0-linux-x86_64$ ./filebeat -e -c filebeat.yml -d "publish"

如果一切正常望忆,數(shù)據(jù)庫中將會有202條數(shù)據(jù)

第三步

1、將filebeat輸出改為logstash

filebeat.prospectors:
- type: log
  paths:
    - /home/hsl/logstash-tutorial.log
output.logstash:  # 將數(shù)據(jù)發(fā)送到logstash
  hosts: ["120.27.110.143:5044"]
tail_files: true

2竿秆、增加logstash管道文件first-pipeline.conf文件
內(nèi)容如下:

input {  # 輸入
    beats {  # 來源beats
        port => "5044"  # 端口
    }
}
 filter {  # 分析启摄、過濾插件,可以多個
    grok {
        match => { "message" => "%{COMBINEDAPACHELOG}"}
    }
    geoip {
        source => "clientip"
    }
}
output {  # 輸出
    elasticsearch {  # 選擇elasticsearch
        hosts => ["localhost:9200"]
        }
}

3幽钢、啟動logstash

hsl@iZ282hpfj1mZ:~/logstash-6.4.0$ bin/logstash -f first-pipeline.conf --config.reload.automatic

--config.reload.automatic自動重載配置文件
如果正常啟動歉备,將會輸入以下內(nèi)容


4、啟動filebeat

hsl@iZ282hpfj1mZ:~/filebeat-6.4.0-linux-x86_64$ ./filebeat -e -c filebeat.yml -d "publish"

5匪燕、查看elasticsearch

GET http://120.27.110.143:9200/_cat/indices?v

結(jié)果如下

health status index                     uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   filebeat-6.4.0-2018.09.18 CWijkL6cTE2kNMXP-cQeMA   5   1        202            0     97.1kb         97.1kb
yellow open   logstash-2018.09.18       7b9NzO15QFWr3FLPeszThA   5   1        101            0    256.3kb        256.3kb

logstash-2018.09.18是新建的索引蕾羊,并且文檔數(shù)正好為101
查看數(shù)據(jù)的具體格式

GET http://120.27.110.143:9200/logstash-2018.09.18/_search?pretty

具體某一條的數(shù)據(jù)如下:

{
    "_index": "logstash-2018.09.18",  # 索引名
    "_type": "doc",  # 類型doc
    "_id": "NZVj62UBvd_PCv61z4OP",  # 文檔id
    "_score": 1,  # 得分
    "_source": {
        "message": "83.149.9.216 - - [04/Jan/2015:05:13:43 +0000] \"GET /presentations/logstash-monitorama-2013/images/kibana-dashboard.png HTTP/1.1\" 200 321631 \"http://semicomplete.com/presentations/logstash-monitorama-2013/\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"",  # 原消息
        "request": "/presentations/logstash-monitorama-2013/images/kibana-dashboard.png",  # 請求
        "agent": "\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"",  # 用戶代理
        "@timestamp": "2018-09-18T06:35:09.345Z",  # 創(chuàng)建時間
        "response": "200",  # 返回碼
        "geoip": {  # IP地址信息
            "location": {
                "lon": 37.6184,
                "lat": 55.7485
            },
            "longitude": 37.6184,
            "continent_code": "EU",
            "region_code": "MOW",
            "timezone": "Europe/Moscow",
            "postal_code": "101194",
            "country_code2": "RU",
            "latitude": 55.7485,
            "region_name": "Moscow",
            "country_name": "Russia",
            "country_code3": "RU",
            "city_name": "Moscow",
            "ip": "83.149.9.216"
        },
        "offset": 2932,  # 位移數(shù)
        "clientip": "83.149.9.216",  # 請求接口的IP地址
        "beat": {  # beat信息
            "hostname": "iZ282hpfj1mZ",
            "name": "iZ282hpfj1mZ",
            "version": "6.4.0"
        },
        "tags": [  # 標(biāo)簽
            "beats_input_codec_plain_applied"
        ],
        "verb": "GET",  # 請求方法
        "input": {  # 輸入
            "type": "log"
        },
        "@version": "1",  # 版本
        "timestamp": "04/Jan/2015:05:13:43 +0000",  # 接口請求時間
        "referrer": "\"http://semicomplete.com/presentations/logstash-monitorama-2013/\"",  # 引用URL
        "prospector": {  
            "type": "log"
        },
        "source": "/home/hsl/logstash-tutorial.log",  # 來源
        "host": {  # 主機(jī)名
            "name": "iZ282hpfj1mZ"
        },
        "bytes": "321631",  # 大小
        "auth": "-",  # 認(rèn)證
        "ident": "-",  # 用戶id
        "httpversion": "1.1"  # http版本
    }
}

回顧filebeat存在elasticsearch數(shù)據(jù)庫里的數(shù)據(jù)格式喧笔,不難發(fā)現(xiàn),logstash存儲起來的數(shù)據(jù)多出了一些其他字段龟再,這些字段信息是logstash分析過濾原消息得出的格式化信息书闸。
6、給日志文件寫入新日志

hsl@iZ282hpfj1mZ:~$ echo '86.1.76.62 - - [04/Jan/2015:05:30:37 +0000] "GET /style2.css HTTP/1.1" 200 4877 "http://www.semicomplete.com/projects/xdotool/" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20140205 Firefox/24.0 Iceweasel/24.3.0"' >> /home/hsl/logstash-tutorial.log 

查看elasticsearch數(shù)據(jù)庫驗(yàn)證

GET http://120.27.110.143:9200/_cat/indices?v

返回結(jié)果如下

health status index                     uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   filebeat-6.4.0-2018.09.18 CWijkL6cTE2kNMXP-cQeMA   5   1        202            0     97.1kb         97.1kb
yellow open   logstash-2018.09.18       7b9NzO15QFWr3FLPeszThA   5   1        102            0    279.5kb        279.5kb

可以看到logstash-2018.09.18索引的dosc.count從原來的101變?yōu)?02

以上是filebeat+logstash+elasticsearch的一些測試利凑。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末浆劲,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子哀澈,更是在濱河造成了極大的恐慌牌借,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件割按,死亡現(xiàn)場離奇詭異膨报,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)适荣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進(jìn)店門现柠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人弛矛,你說我怎么就攤上這事晒旅。” “怎么了汪诉?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵废恋,是天一觀的道長。 經(jīng)常有香客問我扒寄,道長鱼鼓,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任该编,我火速辦了婚禮迄本,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘课竣。我一直安慰自己嘉赎,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布于樟。 她就那樣靜靜地躺著公条,像睡著了一般。 火紅的嫁衣襯著肌膚如雪迂曲。 梳的紋絲不亂的頭發(fā)上靶橱,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼关霸。 笑死传黄,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的队寇。 我是一名探鬼主播膘掰,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼佳遣!你這毒婦竟也來了识埋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤苍日,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后窗声,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體相恃,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年笨觅,在試婚紗的時候發(fā)現(xiàn)自己被綠了拦耐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡见剩,死狀恐怖杀糯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情苍苞,我是刑警寧澤固翰,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站羹呵,受9級特大地震影響骂际,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜冈欢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一歉铝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧凑耻,春花似錦太示、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至邻吭,卻和暖如春呀非,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工岸裙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留猖败,地道東北人。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓降允,卻偏偏與公主長得像恩闻,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子剧董,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內(nèi)容