ELK + filebeat集群部署

一、ELK简介

1. Elasticsearch

Elasticsearch是一个实时的分布式搜索分析引擎, 它能让你以一个之前从未有过的速度和规模,去探索你的数据。它被用作全文检索、结构化搜索、分析以及这三个功能的组合

2.Logstash

Logstash是一款强大的数据处理工具,它可以实现数据传输,格式处理,格式化输出,还有强大的插件功能,常用于日志处理。

3.Kibana

kibana是一个开源和免费的工具,它可以为Logstash和ElasticSearch提供的日志分析友好的Web界面,可以帮助您汇总、分析和搜索重要数据日志。

4.ELK版本信息为7.2.1,你可以从官网下,也可以直接从下面地址下载:

  1. https://artifacts.elastic.co/downloads/logstash/logstash-7.2.1.tar.gz
  2.  
  3. https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.2.1-linux-x86_64.tar.gz
  4.  
  5. https://artifacts.elastic.co/downloads/kibana/kibana-7.2.1-linux-x86_64.tar.gz

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

百度网盘地址:

  1. 链接: https://pan.baidu.com/s/1G7zfve-XnWwQcSQx6wqHuA
  2. 提取码: 8816

二、环境准备

1.三台Linux服务器,系统统一

  1. [root@ELK1 ~]# cat /etc/redhat-release
  2.  
  3. 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会报错,具体可看官方文档:

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

下载安装包

  1. [root@ELK1 tools]# pwd
  2.  
  3. /home/tools
  4.  
  5. [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

百度网盘

  1. 链接:https://pan.baidu.com/s/1QK82p1eb-NbgxaFLKsSlqg
  2. 提取码:9dx8

  

解压到指定目录

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

  

配置环境变量

  1. #set java environment
  2. JAVA_HOME=/usr/local/jdk/jdk-11.0.1
  3. CLASSPATH=$JAVA_HOME/lib/
  4. PATH=$PATH:$JAVA_HOME/bin
  5. export PATH JAVA_HOME CLASSPATH

使环境变量生效

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

查看

[root@ELK1 tools]# java -version

  1. openjdk version "11.0.1" 2018-10-16
  2.  
  3. OpenJDK Runtime Environment 18.9 (build 11.0.1+13)
  4.  
  5. OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)

三、 安装Elasticsearch(简称ES)集群

1.下载及解压

  1. #下载
  2. [root@ELK1 tools]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.2.1-linux-x86_64.tar.gz
  3.  
  4. #创建目录
  5. [root@ELK1 tools]# mkdir -p /home/elk
  6.  
  7. #解压
  8. [root@ELK1 tools]# tar -zvxf elasticsearch-7.2.1-linux-x86_64.tar.gz -C /home/elk

  

2.创建用户及授权

ElasticSerach要求以非root身份启动,在每个节点创建用户及用户组

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

在每个节点上创建数据data和logs目录:

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

  

3.修改elasticsearch.yml配置文件

  1. [root@ELK1 elk]# vim /home/elk/elasticsearch-7.2.1/config/elasticsearch.yml
  2.  
  3. path.data: /data/elasticsearch/data #数据
  4. path.logs: /data/elasticsearch/logs #日志
  5. cluster.name: ELK1 # 集群中的名称
  6. cluster.initial_master_nodes: ["192.168.3.181","192.168.3.182","192.168.3.183"] #主节点
  7. node.name: ELK1 # 该节点名称,与前面配置hosts保持一致
  8. node.master: true # 意思是该节点是否可选举为主节点
  9. node.data: true # 表示这不是数据节点
  10. network.host: 0.0.0.0 # 监听全部ip,在实际环境中应为一个安全的ip
  11. http.port: 9200 # es服务的端口号
  12. http.cors.enabled: true
  13. http.cors.allow-origin: "*"
  14. discovery.zen.ping.unicast.hosts: ["192.168.3.181", "192.168.3.182", "192.168.3.183"] # 配置自动发现
  15. discovery.zen.minimum_master_nodes: 2 #防止集群“脑裂”,需要配置集群最少主节点数目,通常为 (主节点数目/2) + 1

  

4.修改elasticsearch的JVM内存

elasticesearch在实际生产中非常消耗cpu,需要将初始申请的JVM内存调高,默认是1G

  1. [root@ELK1 elk]# vim /home/elk/elasticsearch-7.2.1/config/jvm.options
  2.  
  3. #修改这两行
  4. -Xms4g #设置最小堆的值为4g
  5. -Xmx4g #设置组大堆的值为4g

  

5.启动elasticsearch

其它两个节点也类似配置,只需要修改下node.name:即可,在配置好相应的节点后,首先启动主节点,然后在启动相应节点

  1. [root@ELK1 elk]# su - elasticsearch
  2. Last login: Mon Aug 12 09:58:23 CST 2019 on pts/1
  3.  
  4. [elasticsearch@ELK1 ~]$ cd /home/elk/elasticsearch-7.2.1/bin/
  5. [elasticsearch@ELK1 bin]$ ./elasticsearch -d

  

查看端口号,分别为9200和9300

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

 

集群基本操作

  1. #查看集群的健康信息
  2. curl '192.168.3.181:9200/_cluster/health?pretty'
  3.  
  4. #查看集群的详细信息
  5. curl '192.168.3.181:9200/_cluster/state?pretty'
  6.  
  7. #查询索引列表
  8. curl -XGET http://192.168.3.181:9200/_cat/indices?v
  9.  
  10. #创建索引
  11. curl -XPUT http://192.168.3.181:9200/customer?pretty
  12.  
  13. #查询索引
  14. curl -XGET http://192.168.3.181:9200/customer/external/1?pretty
  15.  
  16. #删除索引
  17. curl -XDELETE http://192.168.3.181:9200/customer?pretty
  18.  
  19. #删除指定索引
  20. curl -XDELETE 192.168.3.181:9200/nginx-log-2019.08
  21.  
  22. #删除多个索引
  23. curl -XDELETE 192.168.3.181:9200/system-log-2019.0606,system-log-2019.0607
  24.  
  25. #删除所有索引
  26. curl -XDELETE 192.168.3.181:9200/_all
  27.  
  28. #在删除数据时,通常不建议使用通配符,误删后果会很严重,所有的index都可能被删除,为了安全起见需要禁止通配符,可以在elasticsearch.yml配置文件中设置禁用_all和*通配符
    action.destructive_requires_name: true

  

四、安装logstash

在主节点上进行部署

1.下载解压

  1. #下载
  2. [root@ELK1 tools]# wget https://artifacts.elastic.co/downloads/logstash/logstash-7.2.1.tar.gz
  3.  
  4. #解压
  5. [root@ELK1 tools]# tar -zvxf logstash-7.2.1.tar.gz -C /home/elk
  6.  
  7. #创建数据及日志目录
  8. [root@ELK1 tools]# mkdir -p /data/logstash/{logs,data}

  

2.修改logstash配置文件

  1. [root@ELK1 tools]# vim /home/elk/logstash-7.2.1/config/logstash.yml
  2.  
  3. http.host: "ELK1"
  4. path.data: /data/logstash/data
  5. path.logs: /data/logstash/logs
  6. xpack.monitoring.enabled: true #kibana监控插件中启动监控logstash
  7. xpack.monitoring.elasticsearch.hosts: ["192.168.3.181:9200","192.168.3.182:9200","192.168.3.183:9200"]

  

3.创建配置文件

  1. [root@ELK1 tools]# vim /home/elk/logstash-7.2.1/config/logstash.conf
  2.  
  3. input {
  4. beats {
  5. port => 5044
  6. }
  7. }
  8. output {
  9. stdout {
  10. codec => rubydebug
  11. }
  12. elasticsearch {
  13. hosts => ["192.168.3.181:9200","192.168.3.182:9200","192.168.3.183"]
  14. }
  15. }

  

4.启动服务

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

  

五、安装kibana

1.下载及解压

  1. #进入工具目录
  2. [root@ELK1 tools] cd /home/tools
  3.  
  4. #下载
  5. [root@ELK1 tools] wget https://artifacts.elastic.co/downloads/kibana/kibana-7.2.1-linux-x86_64.tar.gz
  6.  
  7. #解压
  8. [root@ELK1 tools] tar xf kibana-7.2.1-linux-x86_64.tar.gz -C /home/elk
  9.  
  10. #创建日志目录
  11. mkdir -p /data/kibana/logs/

  

2.修改kibana配置文件

  1. [root@ELK1 tools]# vim /home/elk/kibana-7.2.1-linux-x86_64/config/kibana.yml
  2.  
  3. server.port: 5601 # 配置kibana的端口
  4. server.host: 192.168.3.181 # 配置监听ip(设置本地ip使用nginx认证登录)
  5. elasticsearch.hosts: ["http://192.168.3.181:9200","http://192.168.3.182:9200","http://192.168.3.183:9200"] # 配置es服务器的ip
  6. logging.dest: /data/kibana/logs/kibana.log # 配置kibana的日志文件路径,默认messages
  7. i18n.locale: "zh-CN" #配置中文语言

  

3.启动服务

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

  

六、安装filebeat

1.下载及解压

  1. #进入工具目录
  2. [root@ELK1 kibana-7.2.1-linux-x86_64]# cd /home/tools/
  3.  
  4. #下载
  5. [root@ELK1 tools]#
  6. https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.2.1-linux-x86_64.tar.gz
  7.  
  8. #解压
  9. [root@ELK1 tools]# tar -zvxf filebeat-7.2.1-linux-x86_64.tar.gz -C /home/elk/

  

2.修改filebeat配置文件

  1. [root@ELK1 tools]# vim /home/elk/filebeat-7.3.0-linux-x86_64/filebeat.yml
  2.  
  3. #=========================== Filebeat inputs =============================
  4. filebeat.inputs:
  5. - type: log
  6. enabled: true
  7. paths:
  8. - /var/log/nginx/access.log
  9. fields:
  10. document_type: nginx

  11. #============================= Filebeat modules ===============================
  12. filebeat.config.modules:
  13. path: ${path.config}/modules.d/*.yml
  14. reload.enabled: false
  15.  
  16. #==================== Elasticsearch template setting ==========================
  17. setup.template.settings:
  18. index.number_of_shards: 1

  19. #============================== Kibana =====================================
  20. setup.kibana:
  21. host: "192.168.3.181:5601"
  22.  
  23. #----------------------------- Logstash output --------------------------------
  24. output.logstash:
  25. hosts: ["192.168.3.181:5044"]

  26. #================================ Processors =====================================
  27. processors:
  28. - add_host_metadata: ~
  29. - add_cloud_metadata: ~

  

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

  1. - type: log
  2. enabled: true
  3. paths:
  4. - /var/log/*.log

  

3.启动filebeat

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

通过tail -f nohup.out 可以看到我们的服务已经启动!

 

ELK + filebeat集群部署的更多相关文章

  1. ELK5.2+kafka+zookeeper+filebeat集群部署

    架构图 考虑到日志系统的可扩展性以及目前的资源(部分功能复用),整个ELK架构如下: 架构解读 : (整个架构从左到右,总共分为5层) 第一层.数据采集层 最左边的是业务服务器集群,上面安装了file ...

  2. Windows下ELK环境搭建(单机多节点集群部署)

    1.背景 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时 ...

  3. zookeeper集群+kafka集群 部署

    zookeeper集群 +kafka 集群部署 1.Zookeeper 概述: Zookeeper 定义 zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目 Zooke ...

  4. ELK+Kafka集群日志分析系统

    ELK+Kafka集群分析系统部署 因为是自己本地写好的word文档复制进来的.格式有些出入还望体谅.如有错误请回复.谢谢! 一. 系统介绍 2 二. 版本说明 3 三. 服务部署 3 1) JDK部 ...

  5. ActionMQ集群部署

    ActiveMQ集群部署 一.应用场景 消息中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题.实现高性能,高可用,可伸缩和最终一致性架构.是大型分布式系统不可缺少的中间件.目 ...

  6. centos7搭建ELK Cluster集群日志分析平台(四):Fliebeat-简单测试

    续之前安装好的ELK集群 各主机:es-1 ~ es-3 :192.168.1.21/22/23 logstash: 192.168.1.24 kibana: 192.168.1.25 测试机:cli ...

  7. centos7搭建ELK Cluster集群日志分析平台(三):Kibana

    续  centos7搭建ELK Cluster集群日志分析平台(一) 续  centos7搭建ELK Cluster集群日志分析平台(二) 已经安装好elasticsearch 5.4集群和logst ...

  8. centos7搭建ELK Cluster集群日志分析平台(二):Logstash

    续  centos7搭建ELK Cluster集群日志分析平台(一) 已经安装完Elasticsearch 5.4 集群. 安装Logstash步骤 . 安装Java 8 官方说明:需要安装Java ...

  9. centos7搭建ELK Cluster集群日志分析平台(一):Elasticsearch

    应用场景: ELK实际上是三个工具的集合,ElasticSearch + Logstash + Kibana,这三个工具组合形成了一套实用.易用的监控架构, 很多公司利用它来搭建可视化的海量日志分析平 ...

随机推荐

  1. 使用idea上传项目到码云

    首先,基本流程是这样的:       1.在码云生成SSH公钥       2.在码云创建项目      3.克隆项目到本地      4.在本地创建项目      5.搭建本地仓库,关联远程仓库   ...

  2. Vue中基本指令用法

    指令在Vue中是个很重要的功能,在Vue项目中是必不可少的.根据官网的介绍,指令 (Directives) 是带有 v- 前缀的特殊属性.指令的职责是,当表达式的值改变时,将其产生的连带影响,响应式地 ...

  3. IDEA使用一套代码启动多个应用

    在为公司开发一个消息中心,开发过程中需要模拟多个消费者.具体方式: 1.编辑应用配置 2.复制应用配置 3.重命名配置 4.修改端口,-Dserver.port=9991

  4. k8s网络通信

    K8s有三种网络, 1.节点网络 2.pod网络 3.service集群网络,由kube-proxy来负责

  5. zay大爷的神仙题目 D1T1-大美江湖

    在前几天的时候,千古神犇zay(吊打zhx那个)出了一套神仙题目,所以我得来分析分析QWQ 先补个网易云链接QWQ 毕竟是T1嘛,还算是比较简单的,那道题,读完题目就发现是个中等模拟(猪国杀算大模拟的 ...

  6. Type.MakeGenericType 方法 (Type[]) 泛型反射

    替代由当前泛型类型定义的类型参数组成的类型数组的元素,并返回表示结果构造类型的 Type 对象. 命名空间:   System程序集:  mscorlib(mscorlib.dll 中) public ...

  7. 七、chromedriver各版本下载网址

    http://chromedriver.storage.googleapis.com/index.html

  8. HTTPS 证书制作及使用

    一 证书的制作 进入jdk/bin,使用keytools.exe制作证书. 1.创建keystore 创建一个别名为serverkeystore的证书,该证书存放在名为server.keystore的 ...

  9. 关于自定义 List集合排序的方法!

    大致流程: 排序是用到排序的接口Comparator<T>你要先建一个类实现比较器Comparator //大致流程public class StuComp implements Comp ...

  10. nginx创建默认虚拟主机

    创建默认虚拟主机配置文件作用:禁止任何人通过ip或未允许的域名访问web服务. 如:vim vhosts/default.conf server { listen 80 default; server ...