日誌分析系統ELK安裝(單機)

下載ElasticSearch、Logstash、Kibana安裝包。
百度雲地址: 鏈接:https://pan.baidu.com/s/104Qae0x5epXJO39iQzaoNw
提取碼:2cl5

部署架構圖

架構

elasticsearch

安裝elasticsearch

因爲elasticsearch不允許root用戶啓動,所以需要創建新的用戶和組。
不能用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內容以下所示
logstash
上面輸出路徑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 &

運行成功
主頁

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