ELK + filebeat集群部署


ELK + filebeat集群部署

 

一、ELK簡介

1. Elasticsearch

Elasticsearch是一個實時的分布式搜索分析引擎, 它能讓你以一個之前從未有過的速度和規模,去探索你的數據。它被用作全文檢索、結構化搜索、分析以及這三個功能的組合

 

2.Logstash

Logstash是一款強大的數據處理工具,它可以實現數據傳輸,格式處理,格式化輸出,還有強大的插件功能,常用於日志處理。

 

3.Kibana

kibana是一個開源和免費的工具,它可以為Logstash和ElasticSearch提供的日志分析友好的Web界面,可以幫助您匯總、分析和搜索重要數據日志。

 

4.ELK版本信息為7.2.1,你可以從官網下,也可以直接從下面地址下載:

https://artifacts.elastic.co/downloads/logstash/logstash-7.2.1.tar.gz

https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.2.1-linux-x86_64.tar.gz

https://artifacts.elastic.co/downloads/kibana/kibana-7.2.1-linux-x86_64.tar.gz

官網地址:https://www.elastic.co/cn/downloads/

百度網盤地址:

鏈接: https://pan.baidu.com/s/1G7zfve-XnWwQcSQx6wqHuA 
提取碼: 8816

 

二、環境准備

1.三台Linux服務器,系統統一

[root@ELK1 ~]# cat /etc/redhat-release

CentOS Linux release 7.2.1511 (Core)

2.角色划分

NODE

IP

節點類型

ELK1

192.168.3.181

數據、主節點(安裝elasticsearch、logstash、kabana、filebeat)

ELK2

192.168.3.182

數據節點(安裝elasticsearch、filebeat)

ELK3

192.168.3.183

數據節點(安裝elasticsearch、filebeat)

 

 

3.安裝jdk11

這里安裝jdk11,如果安裝9或者8會報錯,具體可看官方文檔:

https://www.elastic.co/cn/support/matrix
https://www.elastic.co/guide/en/elasticsearch/reference/7.2/setup.html

下載安裝包

[root@ELK1 tools]# pwd

/home/tools

[root@ELK tools]# wget https://download.java.net/java/GA/jdk11/13/GPL/openjdk-11.0.1_linux-x64_bin.tar.gz
[root@ELK1 tools]# mkdir -p /home/elk

百度網盤

鏈接:https://pan.baidu.com/s/1QK82p1eb-NbgxaFLKsSlqg
提取碼:9dx8

  

解壓到指定目錄

[root@ELK1 tools]# tar -xzvf jdk-11.0.4_linux-x64_bin.tar.gz -C /usr/local/jdk

  

配置環境變量

#set java environment
JAVA_HOME=/usr/local/jdk/jdk-11.0.1
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

使環境變量生效

[root@ELK1 tools]# source /etc/profile

查看

[root@ELK1 tools]# java -version

openjdk version "11.0.1" 2018-10-16

OpenJDK Runtime Environment 18.9 (build 11.0.1+13)

OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)

 

 三、 安裝Elasticsearch(簡稱ES)集群

 1.下載及解壓

#下載
[root@ELK1 tools]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.2.1-linux-x86_64.tar.gz

#創建目錄
[root@ELK1 tools]# mkdir -p /home/elk

#解壓
[root@ELK1 tools]# tar -zvxf elasticsearch-7.2.1-linux-x86_64.tar.gz -C /home/elk

  

2.創建用戶及授權

ElasticSerach要求以非root身份啟動,在每個節點創建用戶及用戶組

[root@ELK1 tools]# groupadd elasticsearch
[root@ELK1 tools]# useradd elasticsearch -g elasticsearch

 

 在每個節點上創建數據data和logs目錄:

[root@ELK1 tools]# mkdir -p /data/elasticsearch/{data,logs}
[root@ELK1 tools]# chown -R elasticsearch. /data/elasticsearch/
[root@ELK1 tools]# chown -R elasticsearch. /home/elk/elasticsearch-7.2.1

  

3.修改elasticsearch.yml配置文件

[root@ELK1 elk]# vim /home/elk/elasticsearch-7.2.1/config/elasticsearch.yml

path.data: /data/elasticsearch/data #數據
path.logs: /data/elasticsearch/logs #日志
cluster.name: ELK1 # 集群中的名稱
cluster.initial_master_nodes: ["192.168.3.181","192.168.3.182","192.168.3.183"] #主節點
node.name: ELK1 # 該節點名稱,與前面配置hosts保持一致
node.master: true # 意思是該節點是否可選舉為主節點
node.data: true # 表示這不是數據節點
network.host: 0.0.0.0 # 監聽全部ip,在實際環境中應為一個安全的ip
http.port: 9200 # es服務的端口號
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.zen.ping.unicast.hosts: ["192.168.3.181", "192.168.3.182", "192.168.3.183"] # 配置自動發現
discovery.zen.minimum_master_nodes: 2 #防止集群“腦裂”,需要配置集群最少主節點數目,通常為 (主節點數目/2) + 1

  

4.修改elasticsearch的JVM內存

elasticesearch在實際生產中非常消耗cpu,需要將初始申請的JVM內存調高,默認是1G

[root@ELK1 elk]# vim /home/elk/elasticsearch-7.2.1/config/jvm.options

#修改這兩行
-Xms4g #設置最小堆的值為4g
-Xmx4g #設置組大堆的值為4g

  

5.啟動elasticsearch

其它兩個節點也類似配置,只需要修改下node.name:即可,在配置好相應的節點后,首先啟動主節點,然后在啟動相應節點

[root@ELK1 elk]# su - elasticsearch
Last login: Mon Aug 12 09:58:23 CST 2019 on pts/1

[elasticsearch@ELK1 ~]$ cd /home/elk/elasticsearch-7.2.1/bin/
[elasticsearch@ELK1 bin]$ ./elasticsearch -d

  

查看端口號,分別為9200和9300

[root@ELK1 tools]# netstat -lntup|grep java
tcp6 0 0 192.168.3.181:9200 :::* LISTEN 9721/java tcp6 0 0 192.168.3.181:9300 :::* LISTEN 9721/java

 

集群基本操作

#查看集群的健康信息
curl '192.168.3.181:9200/_cluster/health?pretty'

#查看集群的詳細信息
curl '192.168.3.181:9200/_cluster/state?pretty'

#查詢索引列表
curl -XGET http://192.168.3.181:9200/_cat/indices?v

#創建索引
curl -XPUT http://192.168.3.181:9200/customer?pretty

#查詢索引
curl -XGET http://192.168.3.181:9200/customer/external/1?pretty

#刪除索引
curl -XDELETE http://192.168.3.181:9200/customer?pretty

#刪除指定索引
curl -XDELETE 192.168.3.181:9200/nginx-log-2019.08

#刪除多個索引
curl -XDELETE 192.168.3.181:9200/system-log-2019.0606,system-log-2019.0607

#刪除所有索引
curl -XDELETE 192.168.3.181:9200/_all

#在刪除數據時,通常不建議使用通配符,誤刪后果會很嚴重,所有的index都可能被刪除,為了安全起見需要禁止通配符,可以在elasticsearch.yml配置文件中設置禁用_all和*通配符
action.destructive_requires_name: true

  

四、安裝logstash

在主節點上進行部署

1.下載解壓

#下載
[root@ELK1 tools]# wget https://artifacts.elastic.co/downloads/logstash/logstash-7.2.1.tar.gz

#解壓
[root@ELK1 tools]# tar -zvxf logstash-7.2.1.tar.gz -C /home/elk

#創建數據及日志目錄
[root@ELK1 tools]# mkdir -p /data/logstash/{logs,data}

  

2.修改logstash配置文件

[root@ELK1 tools]# vim /home/elk/logstash-7.2.1/config/logstash.yml

http.host: "ELK1"
path.data: /data/logstash/data
path.logs: /data/logstash/logs
xpack.monitoring.enabled: true #kibana監控插件中啟動監控logstash
xpack.monitoring.elasticsearch.hosts: ["192.168.3.181:9200","192.168.3.182:9200","192.168.3.183:9200"]

  

3.創建配置文件

[root@ELK1 tools]# vim /home/elk/logstash-7.2.1/config/logstash.conf 

input {
  beats {
    port => 5044
  }
}
output {
  stdout {
    codec => rubydebug
  }
  elasticsearch {
    hosts => ["192.168.3.181:9200","192.168.3.182:9200","192.168.3.183"]
  }
}

  

4.啟動服務

[root@ELK1 tools]# cd /home/elk/logstash-7.2.1/
[root@ELK1 logstash-7.2.1]# nohup bin/logstash -f config/logstash.conf &

  

五、安裝kibana

1.下載及解壓

#進入工具目錄
[root@ELK1 tools] cd /home/tools

#下載
[root@ELK1 tools] wget https://artifacts.elastic.co/downloads/kibana/kibana-7.2.1-linux-x86_64.tar.gz

#解壓
[root@ELK1 tools] tar xf kibana-7.2.1-linux-x86_64.tar.gz -C /home/elk

#創建日志目錄
mkdir -p /data/kibana/logs/

  

2.修改kibana配置文件

[root@ELK1 tools]# vim /home/elk/kibana-7.2.1-linux-x86_64/config/kibana.yml

server.port: 5601 # 配置kibana的端口
server.host: 192.168.3.181 # 配置監聽ip(設置本地ip使用nginx認證登錄)
elasticsearch.hosts: ["http://192.168.3.181:9200","http://192.168.3.182:9200","http://192.168.3.183:9200"] # 配置es服務器的ip
logging.dest: /data/kibana/logs/kibana.log # 配置kibana的日志文件路徑,默認messages
i18n.locale: "zh-CN" #配置中文語言

  

3.啟動服務

[root@ELK1 tools]# cd /home/elk/kibana-7.2.1-linux-x86_64/
[root@ELK1 kibana-7.2.1-linux-x86_64]# nohup bin/kibana --allow-root &

  

六、安裝filebeat

1.下載及解壓

#進入工具目錄
[root@ELK1 kibana-7.2.1-linux-x86_64]# cd /home/tools/

#下載
[root@ELK1 tools]# 
https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.2.1-linux-x86_64.tar.gz

#解壓
[root@ELK1 tools]# tar -zvxf filebeat-7.2.1-linux-x86_64.tar.gz -C /home/elk/

  

2.修改filebeat配置文件

[root@ELK1 tools]# vim /home/elk/filebeat-7.3.0-linux-x86_64/filebeat.yml

#=========================== Filebeat inputs =============================
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/nginx/access.log
  fields:
    document_type: nginx

#============================= Filebeat modules =============================== filebeat.config.modules: path: ${path.config}/modules.d/*.yml reload.enabled: false #==================== Elasticsearch template setting ========================== setup.template.settings: index.number_of_shards: 1
#============================== Kibana ===================================== setup.kibana: host: "192.168.3.181:5601" #----------------------------- Logstash output -------------------------------- output.logstash: hosts: ["192.168.3.181:5044"]
#================================ Processors ===================================== processors: - add_host_metadata: ~ - add_cloud_metadata: ~

  

如果需要添加多個日志,只需要添加

- type: log
  enabled: true
  paths:
    - /var/log/*.log

  

3.啟動filebeat

[root@ELK1 tools]# cd /home/elk/filebeat-7.3.0-linux-x86_64/
[root@ELK1 filebeat-7.3.0-linux-x86_64]# nohup ./filebeat -e -c filebeat.yml &

通過tail -f nohup.out 可以看到我們的服務已經啟動!

 

 

 

 

 

 

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM