Filebeat 采集 Nginx 日志的方法
Nginx 日志可用于分析用戶地址位置,行為畫像等,如何通過(guò) Elastic Stack 進(jìn)行一站式的數(shù)據(jù)采集,數(shù)據(jù)清洗,數(shù)據(jù)落地,數(shù)據(jù)可視化,讓數(shù)據(jù)發(fā)揮真正的價(jià)值呢?
架構(gòu)設(shè)計(jì)
涉及到 Elastic Stack 中 Filebeat 是用于采集 Nginx 相關(guān)的日志, Elasticsearch 是用于對(duì)于數(shù)據(jù)落地存儲(chǔ)和搜索的引擎, Kibana 是用于對(duì)數(shù)據(jù)可視化的工具。
在 Nginx 中相關(guān)的日志是存儲(chǔ)在 /var/log/nginx 目錄下的,分別是訪問(wèn)日志 access.log,錯(cuò)誤日志 error.log。
如果是裸機(jī)環(huán)境下,可以直接在同一主機(jī)下安裝 Filebeat 針對(duì)日志文件進(jìn)行采集。
如果是 Docker 環(huán)境下,建議 Nginx 使用 Volume 的方式進(jìn)行共享日志文件給 Filebeat 采集。
如果是 Kubernetes 環(huán)境下,建議在 Pod 中添加 Filebeat Container進(jìn)行對(duì) PV 采集。
針對(duì)不同場(chǎng)景有不同的采集方案,有些可以利用Daemonset采集宿主機(jī)上的日志,有些是以Sidecar方式進(jìn)行采集,具體視業(yè)務(wù)場(chǎng)景而定。
實(shí)施方法
以 Docker 環(huán)境下為例
Nginx
創(chuàng)建存儲(chǔ)卷,便于 Nginx 和 Filebeat 容器共同掛載docker volume create nginx-log-volume
啟動(dòng) Nginx 容器,并且將存儲(chǔ)卷映射到日志目錄docker run -d --name nginx -p 80:80 -v nginx-log-volume:/var/log/nginx nginx:latest
進(jìn)入容器修改配置docker exec -it nginx /bin/bash
由于容器環(huán)境下,默認(rèn)的日志會(huì)輸入到stdout,所以取消該設(shè)置并指定文件unlink /var/log/nginx/access.log
unlink /var/log/nginx/error.log
touch /var/log/nginx/access.log /var/log/nginx/error.log
nginx -s reload
Filebeat
啟動(dòng) Filebeat 容器,并且將存儲(chǔ)卷映射到數(shù)據(jù)目錄docker run -d --name filebeat --user=root -v nginx-log-volume:/data elastic/filebeat:7.9.2
進(jìn)入容器修改配置docker exec -it filebeat /bin/bash
修改配置,添加 Elasticsearch 和 Kibana 的主機(jī)vi filebeat.yml
filebeat.config: modules: path: ${path.config}/modules.d/*.yml reload.enabled: false processors: - add_cloud_metadata: ~ - add_docker_metadata: ~ output.elasticsearch: hosts: 'elasticsearch:9200' username: "elastic" password: "xxx" setup.kibana: host: "kibana:5601"
啟用 Nginx 采集模塊
filebeat modules enable nginx
編輯 Nginx 采集配置vi modules.d/nginx.yml
- module: nginx access: enabled: true var.paths: ["/data/access.log*"] error: enabled: true var.paths: ["/data/error.log*"]
設(shè)置 Filebeat 創(chuàng)建 Kibana上的 Index Pattern 和 Dashboardfilebeat setup
重啟 Filebeat 生效配置docker restart filebeat
可視化展示
通過(guò) Kibana 中的 Dashboard 功能
展示 Nginx 對(duì)于日志的訪問(wèn)情況及用戶地址位置、瀏覽器信息
展示 Nginx 對(duì)于訪問(wèn)日志和錯(cuò)誤日志的具體請(qǐng)求信息
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。