filebeat收集多個(gè)域名網(wǎng)站日志并存儲(chǔ)到不同es索引庫(kù)過(guò)程
1.為什么要針對(duì)不同的應(yīng)用系統(tǒng)創(chuàng)建不同的索引
公司生產(chǎn)環(huán)境中一臺(tái)機(jī)器上一定會(huì)運(yùn)行著多個(gè)域名的應(yīng)用,web應(yīng)用也是集群的方式,如果filebeat收集來(lái)的日志都是分散存儲(chǔ),且在es上建立的索引也都是分散的,這樣不利于日志的聚合匯總,因此就需要把同一種應(yīng)用的不同機(jī)器上的日志全部采集過(guò)來(lái)存儲(chǔ)到一個(gè)索引庫(kù)中,在kibana根據(jù)各種條件去匹配
2.搭建web集群環(huán)境
2.1.環(huán)境準(zhǔn)備
| IP | 服務(wù) | 應(yīng)用 |
|---|---|---|
| 192.168.81.210 | nginx01 | bbs、blog、www |
| 192.168.81.220 | nginx02 | bbs、blog、www |
2.2.web集群部署
所有節(jié)點(diǎn)都按如下配置
1.安裝nginx
yum -y install nginx
2.配置站點(diǎn)配置文件
cat www.conf
server{
server_name www.jiangxl.com;
listen 80;
location ~ / {
root /web/www;
index index.html;
}
}
cat bbs.conf
server{
server_name bbs.jiangxl.com;
listen 80;
location ~ / {
root /web/bbs;
index index.html;
}
}
cat blog.conf
server{
server_name blog.jiangxl.com;
listen 80;
location ~ / {
root /web/blog;
index index.html;
}
}
3.創(chuàng)建站點(diǎn)路徑
mkdir /web/{www,bbs,blog} -p
chown -R nginx.nginx /web/
echo "www index" > /web/www/index.html
echo "bbs index" > /web/bbs/index.html
echo "blog index" > /web/blog/index.html
4.重載nginx
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
systemctl reload nginx
5.訪問(wèn)站點(diǎn)
curl www.jiangxl.com bbs.jiangxl.com blog.jiangxl.com
www index
bbs index
blog index

2.3.配置應(yīng)用支持json格式的日志輸出
所有節(jié)點(diǎn)都這樣配置
cat www.conf
server{
server_name www.jiangxl.com;
listen 80;
location ~ / {
root /web/www;
index index.html;
}
access_log /var/log/nginx/www_access.log main;
}
cat bbs.conf
server{
server_name bbs.jiangxl.com;
listen 80;
location ~ / {
root /web/bbs;
index index.html;
}
access_log /var/log/nginx/bbs_access.log main;
}
cat blog.conf
server{
server_name blog.jiangxl.com;
listen 80;
location ~ / {
root /web/blog;
index index.html;
}
access_log /var/log/nginx/blog_access.log main;
}

3.配置filebeat實(shí)現(xiàn)不同日志對(duì)應(yīng)不同索引
3.1.實(shí)現(xiàn)思路
**日志索引思路:**如何才能讓filebeat根據(jù)不同的日志路徑去創(chuàng)建不同的索引,其實(shí)我們可以想一下ls -l命令,使用ls -l命令才能得到文件的詳細(xì)信息,但是使用ll也可以得到,這是為什么呢?是由于ll僅僅只是一個(gè)別名,我們也可以當(dāng)成一個(gè)標(biāo)記,ll對(duì)應(yīng)的就是ls -l命令
那么日志也一樣的,我們可以把www_access.log當(dāng)成是一個(gè)標(biāo)記,當(dāng)標(biāo)記內(nèi)容為www_access.log時(shí),我們就把他的日志存儲(chǔ)在www_access_xxx的索引庫(kù)中
具體配置:如果一個(gè)主機(jī)上有多個(gè)不同應(yīng)用的日志需要采集,我們可以定義多個(gè)type類型,最后根據(jù)定義的標(biāo)記在indices中進(jìn)行匹配
**日志聚合思路:**我們也可以將所有機(jī)器的tomcat、nginx日志進(jìn)行聚合收集,不需要根據(jù)應(yīng)用去區(qū)分,而是把所有的tomcat日志收集在一起,這樣便于開(kāi)發(fā)人員去查詢?nèi)罩荆槟呐_(tái)主機(jī)的就在kibana上進(jìn)行過(guò)濾就行了
如下圖所示,tomcat就是聚合收集,查哪臺(tái)機(jī)器的日志就添加一個(gè)篩選寫上主機(jī)名就可以了

filebeat標(biāo)記匹配語(yǔ)法:
filebeat.inputs:
- type: log //一個(gè)日志一個(gè)type
enabled: true //是否寫在es中
paths: //日志路徑
- /var/log/nginx/www_access.log
json.keys_under_root: true //開(kāi)啟json格式解析
json.overwrite_keys: true
tags: ["www"] //標(biāo)記內(nèi)容,在[]里填寫即可
output.elasticsearch:
hosts: ["192.168.81.210:9200"]
indices: //索引匹配
- index: "nginx-www-access-%{+yyyy.MM.dd}" //索引庫(kù)名稱
when.contains: //匹配什么標(biāo)記
tags: "www" //匹配標(biāo)記為www的日志
3.2.配置filebeat不同日志使用不同索引庫(kù)
nginx集群內(nèi)的所有filebeat都需要如下配置
vim復(fù)制小技巧:復(fù)制2-8行的內(nèi)容,粘貼到第9行的操作命令:在vim命令模式輸入:2,8t9,2,8表示2-8t行復(fù)制,9表示粘貼在第九行
1.配置filebeat
vim /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/nginx/www_access.log
json.keys_under_root: true
json.overwrite_keys: true
tags: ["www"]
- type: log
enabled: true
paths:
- /var/log/nginx/bbs_access.log
json.keys_under_root: true
json.overwrite_keys: true
tags: ["bbs"]
- type: log
enabled: true
paths:
- /var/log/nginx/blog_access.log
json.keys_under_root: true
json.overwrite_keys: true
tags: ["blog"]
output.elasticsearch:
hosts: ["192.168.81.210:9200"]
indices:
- index: "nginx-www-access-%{+yyyy.MM.dd}"
when.contains:
tags: "www"
- index: "nginx-bbs-access-%{+yyyy.MM.dd}"
when.contains:
tags: "bbs"
- index: "nginx-blog-access-%{+yyyy.MM.dd}"
when.contains:
tags: "blog"
setup.template.name: "nginx"
setup.template.pattern: "nginx-*"
setup.template.enabled: false
setup.template.overwrite: true
2.重啟filebeat
systemctl restart filebeat

3.3.在es上查看創(chuàng)建的索引庫(kù)
由于nginx集群相同的應(yīng)用是要寫在同一個(gè)索引庫(kù)中的,因此我們要觀察每加一個(gè)集群產(chǎn)生的數(shù)據(jù)變化
剛配置完nginx01時(shí)的樣子
www:12條 blog:11條 bbs:12條

增加nginx02后的樣子
訪問(wèn)nginx02上的應(yīng)用六七次后,數(shù)據(jù)明顯發(fā)生了變化
www:19條 blog:18條 bbs:19條

可以具體看索引中的數(shù)據(jù),看看是不是對(duì)應(yīng)的日志,完全正確

3.4.在kibana上關(guān)聯(lián)es索引庫(kù)
3.4.1.創(chuàng)建www索引庫(kù)
點(diǎn)擊Managerment----索引模式---創(chuàng)建索引

字段選擇@timestamp

3.4.2.創(chuàng)建bbs索引庫(kù)
操作與www的一致

3.4.3.創(chuàng)建blog索引庫(kù)
操作與www的一致

3.4.4.所有應(yīng)用索引庫(kù)都一一對(duì)應(yīng)上了

4.在kibana統(tǒng)計(jì)日志分析
4.1.統(tǒng)計(jì)nginx01主機(jī)www應(yīng)用200狀態(tài)碼數(shù)量
篩選添加:beat.name(主機(jī)名)is(是) nginx01(主機(jī)名)
? 狀態(tài)碼(訪問(wèn)狀態(tài)碼) is(是) 200(狀態(tài)碼為200)

4.2.統(tǒng)計(jì)所有節(jié)點(diǎn)訪問(wèn)狀態(tài)碼為200的日志
只需要添加一個(gè)篩選器即可
篩選添加:狀態(tài)碼(訪問(wèn)狀態(tài)碼) is(是) 200(狀態(tài)碼為200)
日志也起到了聚合的作用,所有節(jié)點(diǎn)都可以統(tǒng)計(jì)

以上就是filebeat收集多個(gè)域名網(wǎng)站日志并存儲(chǔ)到不同es索引庫(kù)過(guò)程的詳細(xì)內(nèi)容,更多關(guān)于filebeat收集網(wǎng)站日志存儲(chǔ)es的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
解決nginx“504?Gateway?Time-out”錯(cuò)誤
這篇文章介紹了解決nginx“504?Gateway?Time-out”錯(cuò)誤的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12
使用Nginx搭建圖片服務(wù)器(windows環(huán)境下)
這篇文章主要介紹了使用Nginx搭建圖片服務(wù)器(windows環(huán)境下),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
nginx使用replace-filter-nginx-module實(shí)現(xiàn)內(nèi)容替換的示例
本篇文章主要介紹了nginx使用replace-filter-nginx-module實(shí)現(xiàn)內(nèi)容替換的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
nginx啟動(dòng)服務(wù)提示98: Address already in use錯(cuò)誤的解決
這篇文章主要給大家介紹了nginx啟動(dòng)服務(wù)提示98: Address already in use錯(cuò)誤的解決方法,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-05-05
FastDFS及Nginx整合實(shí)現(xiàn)代碼解析
這篇文章主要介紹了FastDFS及Nginx整合實(shí)現(xiàn)代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08

