1 ELK安裝部署並監控nginx

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

image.png
輸入filebeat收集到的日誌索引,再點擊Next step

image.png
選擇第一個

image.png
再點擊Create index pattern
在這裏插入圖片描述
創建完成後,再點擊Discover
在這裏插入圖片描述
現在沒有數據是因爲,最近15分鐘沒有數據產生,我們可以更改時間
在這裏插入圖片描述
更改爲最近4小時的數據就能看見數據了
在這裏插入圖片描述
點擊小三角,可以查看詳細信息
在這裏插入圖片描述
在這裏插入圖片描述
如果想看某種信息,可以點擊添加
在這裏插入圖片描述
此時,就能只看nginx的訪問信息了
在這裏插入圖片描述
可以點擊進入某個時間段
在這裏插入圖片描述
然後輸入200
在這裏插入圖片描述
點擊Refeesh就可以查看狀態碼爲200的訪問信息,並且統計出爲200個
在這裏插入圖片描述
也可查看404狀態的次數
在這裏插入圖片描述
也可以手動設置想查看的內容

點擊添加過濾項,設置爲Chrome
在這裏插入圖片描述
也可以查看使用Chrome訪問的次數
在這裏插入圖片描述
也可以雙重過濾,過濾使用chrome瀏覽器並且404的信息
在這裏插入圖片描述
多創建幾個過濾項,然後想過濾那個信息,就勾選那個信息就好了,不想過濾那個信息,就取消勾選
在這裏插入圖片描述
也可以排除過濾
在這裏插入圖片描述
過濾訪問狀態是200的信息,但是排除過濾使用curl的信息
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章