認(rèn)識(shí)Beats
Beats是用于單用途數(shù)據(jù)托運(yùn)人的平臺(tái)粹断。它們以輕量級(jí)代理的形式安裝,并將來(lái)自成百上千臺(tái)機(jī)器的數(shù)據(jù)發(fā)送到Logstash或Elasticsearch。
如果想學(xué)習(xí)Java工程化衙荐、高性能及分布式捞挥、深入淺出。微服務(wù)忧吟、Spring砌函,MyBatis,Netty源碼分析的朋友可以加我的Java高級(jí)交流:854630135溜族,群里有阿里大牛直播講解技術(shù)讹俊,以及Java大型互聯(lián)網(wǎng)技術(shù)的視頻免費(fèi)分享給大家。
(畫(huà)外音:通俗地理解斩祭,就是采集數(shù)據(jù)劣像,并上報(bào)到Logstash或Elasticsearch)
Beats對(duì)于收集數(shù)據(jù)非常有用。它們位于你的服務(wù)器上摧玫,將數(shù)據(jù)集中在Elasticsearch中耳奕,Beats也可以發(fā)送到Logstash來(lái)進(jìn)行轉(zhuǎn)換和解析。
為了捕捉(捕獲)數(shù)據(jù)诬像,Elastic提供了各種Beats:
Beats可以直接(或者通過(guò)Logstash)將數(shù)據(jù)發(fā)送到Elasticsearch屋群,在那里你可以進(jìn)一步處理和增強(qiáng)數(shù)據(jù),然后在Kibana中將其可視化坏挠。
Filebeat
第1步:安裝Filebeat
第2步:配置Filebeat
配置文件:filebeat.yml
為了配置Filebeat:
1. 定義日志文件路徑
對(duì)于最基本的Filebeat配置芍躏,你可以使用單個(gè)路徑。例如:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
在這個(gè)例子中降狠,獲取在/var/log/*.log路徑下的所有文件作為輸入对竣,這就意味著Filebeat將獲取/var/log目錄下所有以.log結(jié)尾的文件。
為了從預(yù)定義的子目錄級(jí)別下抓取所有文件榜配,可以使用以下模式:/var/log/*/*.log否纬。這將抓取/var/log的子文件夾下所有的以.log結(jié)尾的文件。它不會(huì)從/var/log文件夾本身抓取蛋褥。目前临燃,不可能遞歸地抓取這個(gè)目錄下的所有子目錄下的所有.log文件。
(畫(huà)外音:
假設(shè)配置的輸入路徑是/var/log/*/*.log烙心,假設(shè)目錄結(jié)構(gòu)是這樣的:
那么只會(huì)抓取到2.log和3.log膜廊,而不會(huì)抓到1.log和4.log。因?yàn)?var/log/aaa/ccc/1.log和/var/log/4.log不會(huì)被抓到淫茵。
)
如果想學(xué)習(xí)Java工程化爪瓜、高性能及分布式、深入淺出匙瘪。微服務(wù)钥勋、Spring炬转,MyBatis相嵌,Netty源碼分析的朋友可以加我的Java高級(jí)交流:854630135芙沥,群里有阿里大牛直播講解技術(shù)误堡,以及Java大型互聯(lián)網(wǎng)技術(shù)的視頻免費(fèi)分享給大家崔梗。
2. 如果你發(fā)送輸出目錄到Elasticsearch(并且不用Logstash)唆涝,那么設(shè)置IP地址和端口以便能夠找到Elasticsearch:
output.elasticsearch:
hosts: ["192.168.1.42:9200"]
3. 如果你打算用Kibana儀表盤(pán)会傲,可以這樣配置Kibana端點(diǎn):
setup.kibana:
host: "localhost:5601"
4. 如果你的Elasticsearch和Kibana配置了安全策略错洁,那么在你啟動(dòng)Filebeat之前需要在配置文件中指定訪問(wèn)憑據(jù)入撒。例如:
output.elasticsearch:
hosts: ["myEShost:9200"]
username: "filebeat_internal"
password: "{pwd}"
setup.kibana:
host: "mykibanahost:5601"
username: "my_kibana_user"
password: "{pwd}"
第3步:配置Filebeat以使用Logstash
如果你想使用Logstash對(duì)Filebeat收集的數(shù)據(jù)執(zhí)行額外的處理赊瞬,那么你需要將Filebeat配置為使用Logstash先煎。
output.logstash:
hosts: ["127.0.0.1:5044"]
第4步:在Elasticsearch中加載索引模板
在Elasticsearch中,索引模板用于定義設(shè)置和映射巧涧,以確定如何分析字段薯蝎。(畫(huà)外音:相當(dāng)于定義索引文檔的數(shù)據(jù)結(jié)構(gòu),因?yàn)橐巡杉臄?shù)據(jù)轉(zhuǎn)成標(biāo)準(zhǔn)格式輸出)
Filebeat包已經(jīng)安裝了推薦的索引模板谤绳。如果你接受filebeat.yml中的默認(rèn)配置占锯,那么Filebeat在成功連接到Elasticsearch以后會(huì)自動(dòng)加載模板。如果模板已經(jīng)存在缩筛,不會(huì)覆蓋消略,除非你配置了必須這樣做。
通過(guò)在Filebeat配置文件中配置模板加載選項(xiàng)瞎抛,你可以禁用自動(dòng)模板加載艺演,或者自動(dòng)加載你自己的目標(biāo)。
配置模板加載
默認(rèn)情況下桐臊,如果Elasticsearch輸出是啟用的胎撤,那么Filebeat會(huì)自動(dòng)加載推薦的模板文件 ——— fields.yml。
加載不同的模板
setup.template.name: "your_template_name"
setup.template.fields: "path/to/fields.yml"
覆蓋一個(gè)已存在的模板
setup.template.overwrite: true
禁用自動(dòng)加載模板
setup.template.enabled: false
修改索引名稱(chēng)
# 默認(rèn)情況下断凶,F(xiàn)ilebeat寫(xiě)事件到名為filebeat-6.3.2-yyyy.MM.dd的索引伤提,其中yyyy.MM.dd是事件被索引的日期。為了用一個(gè)不同的名字懒浮,你可以在Elasticsearch輸出中設(shè)置index選項(xiàng)飘弧。例如:
output.elasticsearch.index: "customname-%{[beat.version]}-%{+yyyy.MM.dd}"
setup.template.name: "customname"
setup.template.pattern: "customname-*"
setup.dashboards.index: "customname-*"
手動(dòng)加載模板
./filebeat setup --template -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
第5步:設(shè)置Kibana dashboards
Filebeat附帶了Kibana儀表盤(pán)识藤、可視化示例砚著。在你用dashboards之前,你需要?jiǎng)?chuàng)建索引模式痴昧,filebeat-*稽穆,并且加載dashboards到Kibana中。為此赶撰,你可以運(yùn)行setup命令或者在filebeat.yml配置文件中配置dashboard加載舌镶。
./filebeat setup --dashboards
第6步:?jiǎn)?dòng)Filebeat
./filebeat -e -c filebeat.yml -d "publish"
第7步:查看Kibana儀表板示例
http://127.0.0.1:5601
完整的配置
#=========================== Filebeat inputs ==============
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
#============================== Dashboards ===============
setup.dashboards.enabled: false
#============================== Kibana ==================
setup.kibana:
host: "192.168.101.5:5601"
#-------------------------- Elasticsearch output ---------
output.elasticsearch:
hosts: ["localhost:9200"]
啟動(dòng)Elasticsearch
如果想學(xué)習(xí)Java工程化柱彻、高性能及分布式、深入淺出餐胀。微服務(wù)哟楷、Spring,MyBatis否灾,Netty源碼分析的朋友可以加我的Java高級(jí)交流:854630135卖擅,群里有阿里大牛直播講解技術(shù),以及Java大型互聯(lián)網(wǎng)技術(shù)的視頻免費(fèi)分享給大家墨技。
/usr/local/programs/elasticsearch/elasticsearch-6.3.2/bin/elasticsearch
啟動(dòng)Kibana
/usr/local/programs/kibana/kibana-6.3.2-linux-x86_64/bin/kibana
設(shè)置dashboard
./filebeat setup --dashboards
啟動(dòng)Filebeat
./filebeat -e -c filebeat.yml -d "publish"
瀏覽器訪問(wèn) http://192.168.101.5:5601
查看索引
請(qǐng)求:
curl -X GET "localhost:9200/_cat/indices?v"
響應(yīng):
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
yellow open bank 59jD3B4FR8iifWWjrdMzUg 5 1 1000 0 475.1kb 475.1kb
green open .kibana DzGTSDo9SHSHcNH6rxYHHA 1 0 153 23 216.8kb 216.8kb
yellow open filebeat-6.3.2-2018.08.08 otgYPvsgR3Ot-2GDcw_Upg 3 1 255 0 63.7kb 63.7kb
yellow open customer DoM-O7QmRk-6f3Iuls7X6Q 5 1 1 0 4.5kb 4.5kb
如果想學(xué)習(xí)Java工程化惩阶、高性能及分布式、深入淺出扣汪。微服務(wù)断楷、Spring,MyBatis崭别,Netty源碼分析的朋友可以加我的Java高級(jí)交流:854630135冬筒,群里有阿里大牛直播講解技術(shù),以及Java大型互聯(lián)網(wǎng)技術(shù)的視頻免費(fèi)分享給大家紊遵。