ELK日誌收集部署
ELK介紹
ELK是3個開源產品的組合:
Elasticsearch
Logstash
Kibana
全部由Elastic開發維護。
Elasticsearch是一個基於Lucene搜索引擎的NoSQL數據庫。Logstash是一個日誌管道工具,接受數據輸入,執行數據轉換,然後輸出數據。Kibana是一個界面層,在Elasticsearch之上工作。另外,ELK棧中還包含稱爲Beats的日誌收集器系列工具。
ELK最常見的使用場景是作爲互聯網產品的日誌系統,當然ELK棧也可用於其他方面,例如:商業智能、大數據分析等。
Elasticsearch: 數據庫,存數據 JAVA
Logstash: 收集日誌,過濾數據 JAVA
Kibana, 分析, 過濾,展示 JAVA
Filebeat: 手機日誌,傳輸到ES GO
日誌收集分類
代理層: nginx haproxy
web層: nginx
db層: mysql redis mongo es
ELK主機規劃
本次實驗我們使用EFK的架構
53主機 Elasticsearch Kibana nginx filebeat
一.安裝elasticsearch
在53主機操作
1.安裝java環境
[root@db01 ~]# yum install -y java-1.8.0-openjdk
2.創建軟件目錄並拉取軟件
[root@db01 ~]# mkdir /data/soft -p
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.rpm
[root@db01 ~]# cd /data/soft
[root@db01 soft]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.rpm ##如果拉取不到的話也可以用瀏覽器實現下載好再上傳到服務器
3.使用rpm安裝elasticsearch
[root@db01 soft]# rpm -ivh elasticsearch-6.6.0.rpm
4.修改配置文件並創建數據目錄
[root@db01 ~]# vim /etc/elasticsearch/elasticsearch.yml
node.name: node-1
path.data: /data/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 172.16.210.53
http.port: 9200
[root@db01 ~]# mkdir /data/elasticsearch/ -p
[root@db01 ~]# chown -R elasticsearch:elasticsearch /data/elasticsearch/ ##更改權限
5.修改內存鎖定
[root@db01 soft]# systemctl edit elasticsearch.service
##添加這兩行信息
[Service]
LimitMEMLOCK=infinity
6.啓動elasticsearch
[root@db01 soft]# sudo systemctl daemon-reload
[root@db01 soft]# sudo systemctl enable elasticsearch.service
[root@db01 soft]# sudo systemctl start elasticsearch.service
7.時間同步
在所有主機上操作
yum install -y ntpdate #安裝ntpdate
ntpdate time1.aliyun.com ##同步阿里雲
二.安裝kibana
在53主機操作
1.獲取軟件並安裝
[root@db01 soft]# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.6.0-x86_64.rpm ##拉取kibana安裝包,如果拉取不了也可以使用瀏覽器提前下下載好,再上傳至服務器
[root@db01 soft]# rpm -ivh kibana-6.6.0-x86_64.rpm ##安裝kibana
2.編輯kibana配置文件
[root@db01 soft]# vim /etc/kibana/kibana.yml
##定義端口
server.port: 5601
##定義主機
server.host: "172.16.210.53"
##定義主機名
server.name: "db01"
##定義elasticsearch的主機
elasticsearch.hosts: ["http://localhost:9200"]
##開啓kibana在elasticsearch的索引
kibana.index: ".kibana"
3.啓動kibana
[root@db01 soft]# systemctl start kibana
[root@db01 soft]# systemctl enable kibana
4.檢查端口
[root@db01 soft]# netstat -lntup | grep 5601 ##檢查端口5601端口是否打開
tcp 0 0 172.16.210.53:5601 0.0.0.0:* LISTEN 2955/node
5.打開web訪問
需要等一下時間再訪問53主機地址:5601
三.安裝filebeat
在53主機操作
1.獲取filebeat軟件包並安裝
[root@db01 soft]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.6.0-x86_64.rpm ##獲取軟件包
[root@db01 soft]# rpm -ivh filebeat-6.6.0-x86_64.rpm ##開始安裝
2.修改配置文件
[root@db01 soft]# cp /etc/filebeat/filebeat.yml{,bak} ##修改前先備份一份
[root@db01 soft]# vim /etc/filebeat/filebeat.yml ##修改配置文件
filebeat.inputs:
- type: log
##打開日誌提取
enabled: true
##定義要提取的日誌文件路徑
paths:
- /var/log/nginx/access.log
##定義將日誌輸出到的elasticsearch主機
output.elasticsearch:
hosts: ["172.16.210.53:9200"]
3.啓動服務
[root@db01 soft]# systemctl start filebeat
[root@db01 soft]# systemctl enable filebeat
四.安裝nginx
在53主機操作
1.安裝nginx和web測試工具
[root@db01 soft]# yum install nginx httpd-tools -y
2.啓動nginx
[root@db01 soft]# systemctl start nginx
[root@db01 soft]# systemctl enable nginx
3.進行壓力測試
[root@db01 soft]# ab -n 100 -c 100 http://172.16.210.53/
[root@db01 soft]# tailf /var/log/nginx/access.log ##查看是否生產日誌
172.16.210.53 - - [21/Jun/2020:14:50:41 +0800] "GET / HTTP/1.0" 200 4833 "-" "ApacheBench/2.3" "-"
172.16.210.53 - - [21/Jun/2020:14:50:41 +0800] "GET / HTTP/1.0" 200 4833 "-" "ApacheBench/2.3" "-"
172.16.210.53 - - [21/Jun/2020:14:50:41 +0800] "GET / HTTP/1.0" 200 4833 "-" "ApacheBench/2.3" "-"
172.16.210.53 - - [21/Jun/2020:14:50:41 +0800] "GET / HTTP/1.0" 200 4833 "-" "ApacheBench/2.3" "-"
172.16.210.53 - - [21/Jun/2020:14:50:41 +0800] "GET / HTTP/1.0" 200 4833 "-" "ApacheBench/2.3" "-"
172.16.210.53 - - [21/Jun/2020:14:50:41 +0800] "GET / HTTP/1.0" 200 4833 "-" "ApacheBench/2.3" "-"
172.16.210.53 - - [21/Jun/2020:14:50:41 +0800] "GET / HTTP/1.0" 200 4833 "-" "ApacheBench/2.3" "-"
使用kibana展示數據
訪問kibana的web界面點擊Management
點擊index Patterns
輸入filebeat收集到的日誌索引,再點擊Next step
選擇第一個
再點擊Create index pattern
創建完成後,再點擊Discover
現在沒有數據是因爲,最近15分鐘沒有數據產生,我們可以更改時間
更改爲最近4小時的數據就能看見數據了
點擊小三角,可以查看詳細信息
如果想看某種信息,可以點擊添加
此時,就能只看nginx的訪問信息了
可以點擊進入某個時間段
然後輸入200
點擊Refeesh就可以查看狀態碼爲200的訪問信息,並且統計出爲200個
也可查看404狀態的次數
也可以手動設置想查看的內容
點擊添加過濾項,設置爲Chrome
也可以查看使用Chrome訪問的次數
也可以雙重過濾,過濾使用chrome瀏覽器並且404的信息
多創建幾個過濾項,然後想過濾那個信息,就勾選那個信息就好了,不想過濾那個信息,就取消勾選
也可以排除過濾
過濾訪問狀態是200的信息,但是排除過濾使用curl的信息