
ELK顧名思義就是:
ElasticSearch、Logstash和Kibana
這裡還用到一個插件那就是filebeat進行進行采集日志
添加filebeat插件現在已經是非常提倡的做法
Logstash太耗費cpu 記憶體等資源了,是以可以通過filebeat來取代它
原理就是通過filebeat進行采集日志,發送到logstash主機然後logstash主機收集之後進行過濾發送到es進行分析友善搜尋,最後用kibana進行圖形化展示
實驗環境為正式環境
節點 | 服務 | IP |
---|---|---|
proxy02 | Nginx / Filebeat | 192.168.80.3 |
log2 | ElasticSearch / Logstash / Kibana | 192.168.80.52 |
上傳所需要的安裝包,放到對應的節點
實驗步驟
log2需要jdk(java)/es/logstash/kibana
如jdk已經安裝直接跳過
[root@elasticsearch-master ~]# java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
複制
安裝es
tar zxf elasticsearch-6.3.2.tar.gz
mv elasticsearch-6.3.2 /usr/local/es
複制
調整系統檔案描述符的軟硬限制
vim /etc/security/limits.conf
末尾添加
打開檔案的軟限制,ES要求系統檔案描述符大于65535
* soft nofile 655360
打開檔案的硬限制
* hard nofile 655360
使用者可用程序數軟限制
* soft nproc 2048
使用者可用程序數硬限制
* hard nproc 4096
JVM能夠使用最大線程數
echo "vm.max_map_count=655360" >> /etc/sysctl.conf
sysctl -p
複制
配置Elasticsearch服務環境
useradd es
mkdir -p /es/{
data,logs} # 日志及資料存放目錄
chown -R es:es /usr/local/es /es # 使用es使用者啟動時,權限不對也會報錯
複制
網絡對時
ntpdate ntp.ntsc.ac.cn
複制
重新開機log2主機
編輯elasticsearch.yml配置檔案,ES預設就是叢集模式的,是以隻有一個節點也是叢集模式
vim /usr/local/es/config/elasticsearch.yml
取消注釋
cluster.name: my-application
node.name: node-1
添加
node.master: true
node.data: true
取消注釋并修改
path.data: /es/data
path.logs: /es/logs
network.host: 192.168.80.52 # 改為本機ip
discovery.zen.minimum_master_nodes: 1 # master的最少節點數
取消注釋
http.port: 9200
複制
安裝Kibana
tar zxf kibana-6.3.2-linux-x86_64.tar.gz
mv kibana-6.3.2-linux-x86_64 /usr/local/kibana
複制
修改Kibana配置檔案
vim /usr/local/kibana/config/kibana.yml
取消注釋
server.port: 5601
server.host: "192.168.80.52"
用來連接配接es服務
elasticsearch.url: "http://192.168.80.52:9200"
複制
安裝Logstash
tar zxf logstash-6.3.2.tar.gz
mv logstash-6.3.2 /usr/local/logstash
複制
編輯logstash配置檔案
vim /usr/local/logstash/config/logstash.yml
取消注釋
path.config: /usr/local/logstash/config/*.conf # 配置檔案路徑
config.reload.automatic: true # 開啟自動加載配置檔案
config.reload.interval: 3s # 自動加載配置檔案時間間隔
http.host: "192.168.80.52" # 改為本機ip
複制
proxy02需要Filebeat/Nginx
Nginx已經安裝跳過
安裝Filebeat
tar zxf filebeat-6.3.2-linux-x86_64.tar.gz
mv filebeat-6.3.2-linux-x86_64 /usr/local/filebeat
複制
整合環境
修改filebeat配置檔案,将本機的nginx日志檔案打标簽為nginx,友善elasticsearch來建立索引
proxy02
vim /usr/local/filebeat/filebeat.yml
添加注釋
filebeat.inputs:
- type: log
paths:
- /var/log/*.log
添加以下内容為inputs配置
filebeat:
prospectors:
- type: log
paths:
- /usr/local/nginx/logs/access.log
tags: ["nginx"]
修改
enabled: true # 表示以上配置是否生效
添加注釋
output.elasticsearch:
hosts: ["localhost:9200"]
取消注釋
output.logstash:
hosts: ["192.168.80.52:5044"] # 該ip為logstash的主機ip
複制
log2
建立nginx-logstash.conf檔案,用來比對日志索引
vim /usr/local/logstash/config/nginx-logstash.conf
添加:
input {
beats {
port => 5044 # filebeat端口号
}
}
output {
elasticsearch {
hosts => "192.168.80.52:9200" # 該ip為elasticsearch的ip和端口
index => "nginx" # 資料索引名
}
}
複制
進行啟動
log2
啟動es
su es
/usr/local/es/bin/elasticsearch
複制
proxy02
啟動filebeat
/usr/local/filebeat/filebeat -c /usr/local/filebeat/filebeat.yml
複制
log2
啟動logstash
/usr/local/logstash/bin/logstash -t /usr/local/logstash/config/nginx-logstash.conf
複制
log2
啟動kibana
/usr/local/kibana/bin/kibana
複制
各個服務啟動之後阻塞資訊都是INFO就沒問題,遇到WARN是no route的就關閉防火牆或者放行端口
在通路kibana的ip:5601,http://192.168.80.52:5601
進入管理界面,通過設定索引樣式可以比對出具體索引的資料
設定在這個索引裡使用時間字段來進行過濾資料
建立成功
建立可視化圖表
選擇樣式為條形圖樣式
選擇為剛才建立的索引資料生成圖表
右上方可儲存圖表,自動重新整理間隔,時間次元
釋出者:全棧程式員棧長,轉載請注明出處:https://javaforall.cn/101945.html原文連結: