下載ElasticSearch、Logstash、Kibana安裝包。
百度雲地址: 鏈接:https://pan.baidu.com/s/104Qae0x5epXJO39iQzaoNw
提取碼:2cl5
ElK + Filebeat安裝
部署架構圖
elasticsearch
安裝elasticsearch
因爲elasticsearch不允許root用戶啓動,所以需要創建新的用戶和組。
#創建組
groupadd elasticsearch
#創建用戶
useradd elasticsearch
#設置密碼
passwd elasticsearch
#將用戶添加到組
usermod -G elasticsearch elasticsearch
#給用戶elasticsearch添加elasticsearch目錄的權限
chown -R elasticsearch /home/elasticsearch
#解壓elasticsearch安裝包
tar -xvf elasticsearch-7.6.0-linux-x86_64.tar.gz -C /home/elasticsearch/
#修改elasticsearch-7.6.0的權限給elasticsearch用戶和組
chown -R elasticsearch:elasticsearch /home/elasticsearch/elasticsearch-7.6.0
使用elasticsearch自帶jdk運行
liunx修改elasticsearch-7.6.0/bin/elasticsearch-env配置文件
vi /home/elasticsearch/elasticsearch-7.6.0/elasticsearch-env
將以下內容
# now set the path to java
if [ ! -z "$JAVA_HOME" ]; then
JAVA="$JAVA_HOME/bin/java"
JAVA_TYPE="JAVA_HOME"
else
if [ "$(uname -s)" = "Darwin" ]; then
# macOS has a different structure
JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
else
JAVA="$ES_HOME/jdk/bin/java"
fi
JAVA_TYPE="bundled jdk"
fi
if [ ! -x "$JAVA" ]; then
echo "could not find java in $JAVA_TYPE at $JAVA" >&2
exit 1
fi
修改成
# now set the path to java
if [ "$(uname -s)" = "Darwin" ]; then
# macOS has a different structure
JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
else
JAVA="$ES_HOME/jdk/bin/java"
fi
JAVA_TYPE="bundled jdk"
額外說明以下windows修改方法
打開 elasticsearch-env.bat文件:
將以下內容
if defined JAVA_HOME (
set JAVA="%JAVA_HOME%\bin\java.exe"
) else (
set JAVA="%ES_HOME%\jdk\bin\java.exe"
set JAVA_HOME="%ES_HOME%\jdk"
)
修改成
set JAVA="%ES_HOME%\jdk\bin\java.exe"
set JAVA_HOME="%ES_HOME%\jdk"
最後啓動腳本
cd /home/elasticsearch/elasticsearch-7.6.0/bin
#後臺運行elasticsearch 使用elasticsearch運行
nohup ./elasticsearch &
訪問地址: http://127.0.0.1:9200
配置ES遠程訪問
vi /home/elasticsearch/elasticsearch-7.6.0/config/elasticsearch.yml
#取消network.host註釋,並修改成下面樣子
network.host: 0.0.0.0
#查出elasticsearch
ps -ef | grep elasticsearch
#kill掉elasticsearch進程
kill -9 3097
#再次執行查詢
ps -ef | grep elasticsearch
#啓動elasticsearch 使用elasticsearch運行
nohup ./elasticsearch &
查看日誌重啓報錯
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
切換root用戶
vi /etc/security/limits.conf
#在倒數第二行添加以下內容
* soft nofile 65536
* hard nofile 65536
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
(elasticsearch用戶擁有的內存權限太小,至少需要262144;)
vi /etc/sysctl.conf
#添加以下內容
vm.max_map_count=262144
[3]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
修改elasticsearch.yml
#取消註釋保留一個節點
cluster.initial_master_nodes: ["node-1"]
#啓動elasticsearch
nohup ./elasticsearch &
Logstash
Logstash介紹
Logstash 是開源的服務器端數據處理管道,能夠同時 從多個來源採集數據、轉換數據,然後將數據發送到Elasticsearch中。
Logstash安裝
logstash依賴java環境
tar -xvf logstash-7.6.0-linux-x86_64.tar.gz -C /elk/
cd /elk/logstash-7.6.0/bin
#啓動logstash
nohup ./logstash -f ../config/logstash-sample.conf &
上面使用的logstash-sample.conf內容以下所示
上面輸出路徑host爲elasticsearch地址,input中的beats port 爲filebeat端口號 ,根據你本地環境自行修改。
Filebeat
Filebeat簡介
Filebeat由兩個主要組成部分組成:prospector(探勘者)和 harvesters(礦車)。這些組件一起工作來讀取
文件並將事件數據發送到指定的output。
- prospector: 負責找到所有需要進行讀取的數據源
- harvesters:負責讀取單個文件的內容,並將內容發送到output中,負責文件的打開和關閉。
Filebeat安裝
tar -xvf filebeat-7.6.0-linux-x86_64.tar.gz -C /elk/
cd /elk
mv filebeat-7.6.0-linux-x86_64 filebeat-7.6.0
#修改filebeat.yml output elasticsearch改爲logstash
vi /elk/filebeat-7.6.0/filebeat.yml
#註釋掉以下內容
#output.elasticsearch:
# Array of hosts to connect to.
#hosts: ["localhost:9200"]
# Protocol - either `http` (default) or `https`.
#protocol: "https"
# Authentication credentials - either API key or username/password.
#api_key: "id:api_key"
#username: "elastic"
#password: "changeme"
#把logstash放開,將蒐集的日誌發送給logstash
output.logstash:
# The Logstash hosts
hosts: ["localhost:5044"]
# Optional SSL. By default is off.
# List of root certificates for HTTPS server verifications
#ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]
# Certificate for SSL client authentication
#ssl.certificate: "/etc/pki/client/cert.pem"
# Client Certificate Key
#ssl.key: "/etc/pki/client/cert.key"
#後臺運行
nohup ./filebeat -e -c filebeat.yml > filebeat.log &
Kibana
Kibana簡介
Kibana是一個針對Elasticsearch的開源分析及可視化平臺,用來搜索、查看交互存儲在Elasticsearch索引中的數據。使用Kibana,可以通過各種圖表進行高級數據分析及展示。
Kibana安裝
tar -xvf kibana-7.6.0-linux-x86_64.tar.gz -C /elk/
cd /elk
mv kibana-7.6.0-linux-x86_64 kibana-7.6.0
vi /elk/kibana-7.6.0/config/kibana.yml
#解除註釋,並修改成以下內容
server.port: 5601
server.host: "0.0.0.0" #允許遠程訪問
elasticsearch.hosts: ["http://localhost:9200"] //修改成自己集羣的地址
#Kibana should not be run as root. 可以新建個kibana用戶和組與elasticsearch一樣,這裏我們直接以root用戶運行
nohup ./kibana --allow-root &