ELK 是什么毋庸多說命斧,下面是用filebeat 收集nginx的訪問日志和錯誤日志的實踐田晚。
安裝
前提條件
- 準(zhǔn)備三臺主機
10.10.10.1
10.10.10.2
10.10.10.3 - 安裝好docker,docker-compose
- 國內(nèi)主機的話要配置好docker 加速
elasticsearch docker 安裝
用普通的下載源碼包安裝也可以,但是有些設(shè)定不對的話国葬,會報各種的錯誤贤徒,如文件描述符個數(shù),進程數(shù)量汇四,執(zhí)行用戶權(quán)限等等問題接奈。
采用docker 安裝非常省事,強烈推薦通孽。
1.進入第一臺主機序宦,拉取鏡像
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.2.0
- 新建 docker-compose.yaml 文件
version: '2.2'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.2.0
container_name: es01
environment:
- node.name=es01
- discovery.seed_hosts=0
- network.host=0
- cluster.initial_master_nodes=es01
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata01:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- esnet
volumes:
esdata01:
driver: local
networks:
esnet:
- 啟動
docker-compose up -d
-
docker-compose ps 查看啟動結(jié)果
image.png
kibana 安裝
- 進入第二臺主機,拉取鏡像
docker pull docker.elastic.co/kibana/kibana:7.2.0
- 新建 docker-compose.yaml 文件
version: '2'
services:
kibana:
image: docker.elastic.co/kibana/kibana:7.2.0
environment:
SERVER_NAME: kibana
ELASTICSEARCH_HOSTS: http://10.10.0.1:9200
ports:
- 5601:5601
ELASTICSEARCH_HOSTS 環(huán)境變量是elasticsearch 的主機地址背苦,
5601 是對外公開的端口互捌。
- 啟動
docker-compose up -d
-
docker-compose ps 查看啟動結(jié)果
image.png
5.瀏覽器查看kibana
http://公開ip:5601
image.png
看到這圖就證明以上安裝是OK的了。
filebeat 安裝
- 進入第三臺主機行剂,安裝filebeat
kibana 主頁面 點擊add log data 秕噪,有各種log 收集安裝的方法,
我們這次收集nginx 日志厚宰,選擇Nginx logs - 首先安裝 nginx
- 安裝 Filebeat
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.2.0-darwin-x86_64.tar.gz
tar xzvf filebeat-7.2.0-darwin-x86_64.tar.gz
cd filebeat-7.2.0-darwin-x86_64/
- 編輯配置
filebeat.yml
output.elasticsearch:
hosts: ["10.10.0.1:9200"]
setup.kibana:
host: "10.10.0.2:5601"
- 對nginx 日志文件路徑進行設(shè)定
module/nginx/access/manifest.yml
default:
- /usr/local/nginx/logs/access.log*
/usr/local/nginx/logs/access.log* 是對應(yīng)nginx 文件的訪問日志
module/nginx/error/manifest.yml
default:
- /usr/local/nginx/logs/error.log*
/usr/local/nginx/logs/error.log* 是對應(yīng)nginx 文件的錯誤日志
- 啟動日志收集
- NGINX 啟動
nginx
- filebeat 啟動
./filebeat setup
./filebeat -e
生成nginx 日志
多訪問幾次第三臺主機的URL 腌巾,
10.10.10.3
10.10.10.3/test
kibana 中查看日志數(shù)據(jù)
下面的路徑進入
[Home] -> Add data -> Nginx logs
下面是效果,按請求地統(tǒng)計的訪問數(shù)量铲觉,一目了然澈蝙。
image.png
-
查看原始log
點擊[Nginx access and error logs] 鏈接
image.png
image.png
是不是比看文本文件好多了呢?
總結(jié)
- docker 容器方式安裝撵幽,省時省力
- elasticsearch 是數(shù)據(jù)存儲
- kibana 是數(shù)據(jù)展示
- filebeat 是數(shù)據(jù)收集灯荧,當(dāng)然不僅僅收集nginx log ,系統(tǒng)性能數(shù)據(jù)等都可以
需要不斷的探索,就能找到屬于你的數(shù)據(jù)并齐。
謝謝漏麦!