Centos7 安装ELK/EFK 7.x 集群搭建实战

环境准备

  • 点击查看ELK对操作系统是否兼容
  • 点击查看ELK对JDK是否兼容信息列表
虽然官网说ES 7.12 支持JDK8,但是实际测试发现,ES 7.12 开始至少需要JDK11 以上版本。
  • 因此我们的服务器最好使用JDK11长期支持版本。
Future versions of Elasticsearch will require Java 11; your Java version from [/usr/local/java/jdk/jdk1.8.0_161/jre] does not meet this requirement. Consider switching to a distribution of Elasticsearch with a bundled JDK. If you are already using a distribution with a bundled JDK, ensure the JAVA_HOME environment variable is not set.

ELK 是Elasticsearch ,Logstash, Kibana 的简称缩写,主要专注于可视化日志分析和查询
Elastic Stack 主要包括三大部分:
  • 海量数据存储和检索----- Elasticsearch 分布式存储和查询
  • 可视化界面和图表生成----Kibana 可提供可视化界面和各种图表的生成。
  • 数据采集-----可以用Logstash采集日志也可以使用FileBeat 采集日志。
ELK 不过是Elastic Stack 用法中日志分析栈的一部分
Centos7 安装ELK/EFK 7.x 集群搭建实战
文章图片

说明:
  • 不知道你们有没有注意到,官网似乎已经有意在使用FileBeat 替换Logstash 采集日志了。
  • Logstash 是由 Elastic 公司推出的一款开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送指定的存储库中。Logstash 官方介绍。
  • Filebeat 是 Elastic 公司为解决 Logstash “太重” 的问题推出的一款轻量级日志采集器,在处理数量众多的服务器、虚拟机和容器生成的日志时可使用 Logstash + Filebeat 的日志采集方式。Filebeat 官方介绍。
安装ELK/EFK
服务器IP 主机名 软件列表
10.0.0.11 node-1 Elasticsearch、Kibana、Logstash、FileBeat
10.0.0.12 node-2 Elasticsearch、Logstash、FileBeat
10.0.0.13 node-3 Elasticsearch、Logstash、FileBeat
安装Elasticsearch
  • Elasticsearch,江湖人称ES,它是一个实时的分布式存储,搜索和分析引擎。
下载和解压
  1. ES 的官方下载地址: https://www.elastic.co/cn/dow...
  2. 下载方式二: 使用命令行下载
yum install curl; curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.0-linux-x86_64.tar.gz; #如果操作系统不支持curl命令也可以使用wget命令下载 yum install wget wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.0-linux-x86_64.tar.gz;

这里使用的版本
elasticsearch-7.16.1-linux-x86_64.tar.gz
filebeat-7.16.1-linux-x86_64.tar.gz
logstash-7.16.2-linux-x86_64.tar.gz
kafka-3.0.0-src.tgz
网盘链接:https://pan.baidu.com/s/1JL_l...
提取码:7777
虚拟机给三台服务器的配置都是
Centos7 安装ELK/EFK 7.x 集群搭建实战
文章图片

修改操作系统限制
在Centos7 Linux 操作系统中,默认单个进程可以打开的最多文件数是1024
但是ES 对操作系统有些特殊要求
  • 要求操作系统单个进程可以打开的最大文件数最少要达到65535.
  • 而且ES 将会使用很多线程,也需要修改下操作系统限制。
    如果不配置就会报错如下所示:
bootstrap checks failed. You must address the points described in the following [3] lines before starting Elasticsearch. bootstrap check failure [1] of [3]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535] bootstrap check failure [2] of [3]: max number of threads [3687] for user [elasticsearch] is too low, increase to at least [4096] bootstrap check failure [3] of [3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

检查当前操作系统支持单个进程可以打开的最多文件数,返回值如果没修改会显示1024
ulimit -n

要修复bootstrap check failure [1] of [3] 和bootstrap check failure [2] of [3]错误
修改配置文件
vi /etc/security/limits.conf

在最后面加入
*softnofile65535 *hardnofile65535 *hardnproc4096 *softnproc4096

  • 设置限制数量,第一列表示用户,* 表示所有用户
  • soft nproc :单个用户可用的最大进程数量(超过会警告);
  • hard nproc:单个用户可用的最大进程数量(超过会报错);
  • soft nofile :可打开的文件描述符的最大数(超过会警告);
  • hard nofile :可打开的文件描述符的最大数(超过会报错);
    原文链接:https://blog.csdn.net/zxljsbk...
  • 断开session 链接,重新登陆生效
【Centos7 安装ELK/EFK 7.x 集群搭建实战】要修复bootstrap check failure [3] of [3] 错误,需要修改/etc/sysctl.conf
vi /etc/sysctl.conf

#添加内容 vm.max_map_count=262144

  • vm.max_map_count 配置确保操作系统拥有足够多的虚拟内存
  • 如果使用的是包管理器方式安装,那么不需要这个操作,默认会进行配置。
#刷新配置立即生效,重启一下 sysctl -p reboot

    推荐阅读