您好,登錄后才能下訂單哦!
通過部署elasticsearch(三節(jié)點)+filebeat+kibana快速入門EFK,并搭建起可用的demo環(huán)境測試效果
作者:“發(fā)顛的小狼”,歡迎轉(zhuǎn)載與投稿
? 用途
? 實驗架構(gòu)
? EFK軟件安裝
? elasticsearch配置
? filebeat配置
? kibana配置
? 啟動服務(wù)
? kibana界面配置
? 測試
? 后續(xù)文章
? 通過filebeat實時收集nginx訪問日志、傳輸至elasticsearch集群
? filebeat將收集的日志傳輸至elasticsearch集群
? 通過kibana展示日志
? 服務(wù)器配置
? 架構(gòu)圖
版本說明
? elasticsearch 7.3.2
? filebeat 7.3.2
? kibana 7.3.2
注意事項
? 三個組件版本必須一致
? elasticsearch必須3臺以上且總數(shù)量為單數(shù)
安裝路徑
? /opt/elasticsearch
? /opt/filebeat
? /opt/kibana
elasticsearch安裝:3臺es均執(zhí)行相同的安裝步驟
mkdir -p /opt/software && cd /opt/software
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.2-linux-x86_64.tar.gz
tar -zxvf elasticsearch-7.3.2-linux-x86_64.tar.gz
mv elasticsearch-7.3.2 /opt/elasticsearch
useradd elasticsearch -d /opt/elasticsearch -s /sbin/nologin
mkdir -p /opt/logs/elasticsearch
chown elasticsearch.elasticsearch /opt/elasticsearch -R
chown elasticsearch.elasticsearch /opt/logs/elasticsearch -R
# 限制一個進(jìn)程可以擁有的VMA(虛擬內(nèi)存區(qū)域)的數(shù)量要超過262144,不然elasticsearch會報max virtual memory areas vm.max_map_count [65535] is too low, increase to at least [262144]
echo "vm.max_map_count = 655350" >> /etc/sysctl.conf
sysctl -p
filebeat安裝
mkdir -p /opt/software && cd /opt/software
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.3.2-linux-x86_64.tar.gz
mkdir -p /opt/logs/filebeat/
tar -zxvf filebeat-7.3.2-linux-x86_64.tar.gz
mv filebeat-7.3.2-linux-x86_64 /opt/filebeat
kibana安裝
mkdir -p /opt/software && cd /opt/software
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.3.2-linux-x86_64.tar.gz
tar -zxvf kibana-7.3.2-linux-x86_64.tar.gz
mv kibana-7.3.2-linux-x86_64 /opt/kibana
useradd kibana -d /opt/kibana -s /sbin/nologin
chown kibana.kibana /opt/kibana -R
nginx安裝(用于生成日志,被filebeat收集)
# 只在192.168.1.11安裝
yum install -y nginx
/usr/sbin/nginx -c /etc/nginx/nginx.conf
? 192.168.1.31 /opt/elasticsearch/config/elasticsearch.yml
# 集群名字
cluster.name: my-application
# 節(jié)點名字
node.name: 192.168.1.31
# 日志位置
path.logs: /opt/logs/elasticsearch
# 本節(jié)點訪問IP
network.host: 192.168.1.31
# 本節(jié)點訪問
http.port: 9200
# 節(jié)點運輸端口
transport.port: 9300
# 集群中其他主機(jī)的列表
discovery.seed_hosts: ["192.168.1.31", "192.168.1.32", "192.168.1.33"]
# 首次啟動全新的Elasticsearch集群時,在第一次選舉中便對其票數(shù)進(jìn)行計數(shù)的master節(jié)點的集合
cluster.initial_master_nodes: ["192.168.1.31", "192.168.1.32", "192.168.1.33"]
# 啟用跨域資源共享
http.cors.enabled: true
http.cors.allow-origin: "*"
# 只要有2臺數(shù)據(jù)或主節(jié)點已加入集群,就可以恢復(fù)
gateway.recover_after_nodes: 2
? 192.168.1.32 /opt/elasticsearch/config/elasticsearch.yml
# 集群名字
cluster.name: my-application
# 節(jié)點名字
node.name: 192.168.1.32
# 日志位置
path.logs: /opt/logs/elasticsearch
# 本節(jié)點訪問IP
network.host: 192.168.1.32
# 本節(jié)點訪問
http.port: 9200
# 節(jié)點運輸端口
transport.port: 9300
# 集群中其他主機(jī)的列表
discovery.seed_hosts: ["192.168.1.31", "192.168.1.32", "192.168.1.33"]
# 首次啟動全新的Elasticsearch集群時,在第一次選舉中便對其票數(shù)進(jìn)行計數(shù)的master節(jié)點的集合
cluster.initial_master_nodes: ["192.168.1.31", "192.168.1.32", "192.168.1.33"]
# 啟用跨域資源共享
http.cors.enabled: true
http.cors.allow-origin: "*"
# 只要有2臺數(shù)據(jù)或主節(jié)點已加入集群,就可以恢復(fù)
gateway.recover_after_nodes: 2
? 192.168.1.33 /opt/elasticsearch/config/elasticsearch.yml
# 集群名字
cluster.name: my-application
# 節(jié)點名字
node.name: 192.168.1.33
# 日志位置
path.logs: /opt/logs/elasticsearch
# 本節(jié)點訪問IP
network.host: 192.168.1.33
# 本節(jié)點訪問
http.port: 9200
# 節(jié)點運輸端口
transport.port: 9300
# 集群中其他主機(jī)的列表
discovery.seed_hosts: ["192.168.1.31", "192.168.1.32", "192.168.1.33"]
# 首次啟動全新的Elasticsearch集群時,在第一次選舉中便對其票數(shù)進(jìn)行計數(shù)的master節(jié)點的集合
cluster.initial_master_nodes: ["192.168.1.31", "192.168.1.32", "192.168.1.33"]
# 啟用跨域資源共享
http.cors.enabled: true
http.cors.allow-origin: "*"
# 只要有2臺數(shù)據(jù)或主節(jié)點已加入集群,就可以恢復(fù)
gateway.recover_after_nodes: 2
192.168.1.11 /opt/filebeat/filebeat.yml
# 文件輸入
filebeat.inputs:
# 文件輸入類型
- type: log
# 開啟加載
enabled: true
# 文件位置
paths:
- /var/log/nginx/access.log
# 自定義參數(shù)
fields:
type: nginx_access # 類型是nginx_access,和上面fields.type是一致的
# 輸出至elasticsearch
output.elasticsearch:
# elasticsearch集群
hosts: ["http://192.168.1.31:9200",
"http://192.168.1.32:9200",
"http://192.168.1.33:9200"]
# 索引配置
indices:
# 索引名
- index: "nginx_access_%{+yyy.MM}"
# 當(dāng)類型是nginx_access時使用此索引
when.equals:
fields.type: "nginx_access"
# 關(guān)閉自帶模板
setup.template.enabled: false
# 開啟日志記錄
logging.to_files: true
# 日志等級
logging.level: info
# 日志文件
logging.files:
# 日志位置
path: /opt/logs/filebeat/
# 日志名字
name: filebeat
# 日志輪轉(zhuǎn)期限,必須要2~1024
keepfiles: 7
# 日志輪轉(zhuǎn)權(quán)限
permissions: 0600
192.168.1.21 /opt/kibana/config/kibana.yml
# 本節(jié)點訪問端口
server.port: 5601
# 本節(jié)點IP
server.host: "192.168.1.21"
# 本節(jié)點名字
server.name: "192.168.1.21"
# elasticsearch集群IP
elasticsearch.hosts: ["http://192.168.1.31:9200",
"http://192.168.1.32:9200",
"http://192.168.1.33:9200"]
# elasticsearch啟動(3臺es均啟動)
sudo -u elasticsearch /opt/elasticsearch/bin/elasticsearch
# filebeat啟動
/opt/filebeat/filebeat -e -c /opt/filebeat/filebeat.yml -d "publish"
# kibana啟動
sudo -u kibana /opt/kibana/bin/kibana -c /opt/kibana/config/kibana.yml
上面的啟動方法是位于前臺運行。systemd配置方法,會在《EFK教程》系列后續(xù)文章中提供,敬請關(guān)注!
1?? 使用瀏覽器訪問192.168.1.21:5601,看到以下界面表示啟動成功
2?? 點"Try our sample data"
3?? "Help us improve the Elastic Stack by providing usage statistics for basic features. We will not share this data outside of Elastic"點"no”
4?? "Add Data to kibana"點"Add data"
5?? 進(jìn)入視圖
訪問nginx,生成日志
curl -I "http://192.168.1.11"
在kibana上查看數(shù)據(jù)
1?? 創(chuàng)建索引模板
2?? 輸入你要創(chuàng)建的索引模板的名字
3?? 查看之前CURL的數(shù)據(jù)
本文是《EFK教程》系列文章的第一篇,后續(xù)EFK文章將逐步發(fā)布,包含角色分離、性能優(yōu)化等許多干貨,敬請關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。