ELKB集群搭建,Centos环境,简单易懂,包教包会,避免踩坑~(ES7.15.1版本,CentOS-Stream-9)

目录

前言

简单而必要的理论知识,elkb之间的关系(就几句话,请务必看,我认为很重要!)

 开始搭建!

1.准备虚拟机

1.1创建虚拟机

1.2进入虚拟机

2.搭建ELKB集群

2.1elasticsearch的安装

 2.2 kibana的安装

 2.3 logstash的安装

 2.4 filebeat的安装

尾声


前言

        我发现国内关于ELK搭建教程很多,但是ELKB加上集群的结合的搭建教程却很少!以至于我自己在搭建的时候疯狂的踩坑,报废了一台又一台虚拟机

        因此我想帮助想要搭建elkb集群的朋友快速搭建!

简单而必要的理论知识,elkb之间的关系(就几句话,请务必看,我认为很重要!)

  • 集群部署只是将es集群部署。logstash、kibana和filebeat不需要和es一起部署在同一台虚拟机上。我将其搭建在一起只是为了方便演示集群搭建
  • es是数据分析处理和存储的工具。
  • filebeat是收集日志的工具。需要将其部署在需要被收集日志的应用的虚拟机上(打个比方说就是你要收集mysql的日志,就需要将filebeat部署在有mysql安装的windows上或虚拟机上)
  • logstash是管道,将filebeat收集到数据,经过过滤,传输给es做处理
  • kibana只是一个官方的可视化的管理工具,挺好用的,当然不使用也没有任何问题

        我也是看了许多博主大佬的文章并根据此搭建成功,也推荐有兴趣的各位去看看哟:

  • ELK集群搭建
  • Filebeat简介和演示
  • ELKB 7.X 日志系统搭建
  • elk7.15.1安装部署搭建
  • linux最小化安装后需要安装的一些东西
  • CentOS Stream 9设置静态IP
  • centos安装jdk完整步骤

 开始搭建!

1.准备虚拟机

1.1创建虚拟机

        由于本人电脑内存16G,8核处理器,因此只准备3台虚拟机,处理器和内存按最小配置来,并且都不要安装gui,建议最小安装省内存!(内存多的就随便你,可以不用那么省吃俭用)

        三台虚拟机处理器都这么分配

ELKB集群搭建,Centos环境,简单易懂,包教包会,避免踩坑~(ES7.15.1版本,CentOS-Stream-9)_第1张图片

        内存,最小建议:3个g

        如果你的电脑内存比较富余,那也可以4个g哦

        如果极限压缩的话,安装kibana和安装filebeat的那一台可以配置2.5个g,logstash那台还是别省了,logstash跑起来会疯狂的收割你的内存!怪不得es官方要给logstash搞那么多的辅助工具,我现在就想解决内存优化的问题,如果有大佬知道要怎么做,欢迎来讨论~

        硬盘的话就随意了,如果没有实际用到的话并不会真正的占用你宿主机的资源,我是分配了30g。20g也没问题

        总结:

  • ELKBCk 安装elasticsearch+kibana   2核  2.5g内存  30g硬盘
  • ELKBCl 安装elasticsearch+logstash   2核  3g内存  30g硬盘
  • ELKBCf 安装elasticsearch+filebeat   2核  2.5g  30g硬盘

1.2进入虚拟机

        1.由于我是最小安装,还需要为虚拟机安装一些额外的命令

//ifconfig命令,ping网络
yum install -y net-tools

//vim命令,偷偷说一句我本来连vim都没装,用自带的vi,结果还是发现vim好用。。。
yum -y install vim

//tab补全
yum -y install epel-release

//wget命令,获取网络资源
yum -y install wget

//安装zip解压缩,这我是没装,因为我有WinSCP可以在宿主机和虚拟机之间传文件
yum -y install unzip zip

         

        2.关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

        3.配置系统的环境变量,参考自ELK集群搭建

vim /etc/security/limits.conf

        添加下面的内容,注意 * soft nproc 4096 这里不要设置2048,我设置2048之后es运行是会报错的!

* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096

 vim /etc/sysctl.conf

        添加以下内容 

vm.max_map_count=655360

         配置生效

sysctl -p

        4.然后,强烈建议配置静态环ip,具体操作请看这篇文章:CentOS Stream 9设置静态IP

        5.jdk环境。你可以配jdk也可以不配,es会有源生自带。但如果想要配置但不会配置的话可以看这这位博主大佬的这篇:centos安装jdk完整步骤

        

        6.更改自己的hostname主机名

hostnamectl set-hostname ELKBCk

        ----自此虚拟机环境便搭建完成,接下来进入elkb集群搭建!

2.搭建ELKB集群

        回顾一下

  • ELKBCk 安装elasticsearch+kibana   2核  2.5g内存  30g硬盘
  • ELKBCl 安装elasticsearch+logstash   2核  3g内存  30g硬盘
  • ELKBCf 安装elasticsearch+filebeat   2核  2.5g  30g硬盘

         说明一下我的安装目录吧,我是都安装在/user/local/下的,如果精致一点可以安装在自己喜欢的目录下!

2.1elasticsearch的安装

        1.首先三台机子都要安装elasticsearch,es7.15.1可以在华为的镜像源找到

//cd进入想要安装的目录下
wget https://mirrors.huaweicloud.com/elasticsearch/7.15.1/elasticsearch-7.15.1-linux-x86_64.tar.gz

        2.解压,我这里就不重命名了,方便自己以后可以查看版本

tar -zxvf elasticsearch-7.15.1-linux-x86_64.tar.gz

        3.进入elasticsearch-7.15.1内,建data文件夹

mkdir data

        4.进入config文件夹下,更改配置文件 

vim elasticsearch.yml

        添加以下内容。我这里是让所有节点都有资格成为data和master节点,而在正式的生产环境中,会指定特点的节点让他们参与选举

#集群名称
cluster.name: elkbc
#节点名称
node.name: ELKBCk
#master节点选举资格
node.master: true
#data节点选举资格
node.data: true
path.data: /usr/local/elasticsearch-7.15.1/data
path.logs: /usr/local/elasticsearch-7.15.1/logs
bootstrap.memory_lock: false
#配置自己的ip
network.host: 192.168.10.130
http.port: 9200
#包含候选主节点的名称,并在集群中每个候选主节点上进行定义
cluster.initial_master_nodes: ["ELKBCk", "ELKBCf", "ELKBCl"]
#节点地址,互相连通
discovery.zen.ping.unicast.hosts: ["192.168.10.130", "192.168.10.131", "192.168.10.132"]
#这里的值为:候选节点数 / 2 + 1
discovery.zen.minimum_master_nodes: 2
http.cors.enabled: true
http.cors.allow-origin: "*"

        5.创建用户并授权,es不允许root用户启动

useradd elkb
passwd elkb
chown -R elkb:elkb /usr/local/elasticsearch-7.15.1

        6.启动并测试

 su - elkb -c "/usr/local/elasticsearch-7.15.1/bin/elasticsearch -d"

         启动之后,可以在宿主机上先配置一下hosts,就可以直接输入elkbck进行访问

ELKB集群搭建,Centos环境,简单易懂,包教包会,避免踩坑~(ES7.15.1版本,CentOS-Stream-9)_第2张图片

        浏览器输入

http://elkbck:9200/

         出现以下结果,证明这台虚拟机配置成功!you Know,for Search~

        ELKB集群搭建,Centos环境,简单易懂,包教包会,避免踩坑~(ES7.15.1版本,CentOS-Stream-9)_第3张图片

        

        其他2台虚拟机步骤与上述没有区别,仅仅只要改变一下节点名称就可以了。

        当你3台机子都配置完成后,检查一下他们的主节点是否一样,在浏览器上输入

http://elkbck:9200/_cat/master?v
http://elkbcl:9200/_cat/master?v
http://elkbcf:9200/_cat/master?v

        得到的结果一定是一样的,证明三台都成功了!

         

         ----此时,es的安装就结束了,你可以休息一下,喝一口水奖励一下自己了。之后一口气搞完所有的搭建。

         

 2.2 kibana的安装

        在ELKBCk这台虚拟机上安装kibana

        进入/usr/local,下载,可以通过华为的镜像源进行下载

wget https://mirrors.huaweicloud.com/kibana/7.15.1/kibana-7.15.1-linux-x86_64.tar.gz

         解压,并且重命名为kibana

tar -zxvf kibana-7.15.1-linux-x86_64.tar.gz && mv kibana-7.15.1-linux-x86_64 /usr/local/kibana

        进入kibana,创建logs文件夹

mkdir /usr/local/kibana/logs

         进入logs文件夹,创建空的log文件

touch /usr/local/kibana/logs/kibana.log

        进入 /usr/local/kibana/conf/ 修改配置文件kibana.yml。

        kibana还有官方的汉化,只不过不太完善,翻译的也很怪!我个人是不太喜欢

server.port: 5601
#此配置是允许远程的机子连接,默认是localhost,我直接改为0.0.0.0
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://192.168.10.130:9200", "http://192.168.10.131:9200", "http://192.168.10.132:9200"]
#kibana的索引
kibana.index: ".kibana"
#kibana日志文件输出
logging.dest: /usr/local/kibana/logs/kibana.log
#汉化,汉化不完全,有些翻译有点怪,没有默认的英文解释的清楚,想体验的朋友也可使试一下
#i18n.locale: "zh_CN"

        kibana也不允许root用户启动,因此要授权

chown -R elkb:elkb /usr/local/kibana

        启动kibana

su - elkb -c "/usr/local/kibana/bin/kibana &"

        在浏览器输入elkbck:5601,出现这个图标就是成功!(需要启动全部部署的es才能正常访问kibana)

ELKB集群搭建,Centos环境,简单易懂,包教包会,避免踩坑~(ES7.15.1版本,CentOS-Stream-9)_第4张图片

        ----至此kibana的安装就完成了!

 2.3 logstash的安装

        在ELKBCl上安装

        进入 /usr/local/ ,下载,也是通过华为的镜像

wget https://mirros.huaweicloud.com/logstash/7.15.1/logstash-7.15.1-linux-x86_64.tar.gz

        解压缩,重命名

tar -zxvf logstash-7.15.1-linux-x86_64.tar.gz && mv logstash-7.15.1-linux-x86_64 /usr/local/logstash

        进入logstash中的conf配置文件夹下,修改配置

vim logstash.yml

#添加以下内容
http.host: "192.168.10.131"
http.port: 9600

        新建一个logstash-log.conf配置文件,专门用于日志传输

vim logstash-log.conf

#添加以下内容
# Beats -> Logstash -> Elasticsearch pipeline.
# 输入通过filebeat,输出到es

input {
  beats {
    port => 5044
  }
}

#我没有设置用户,有设置用户的在下面加上就行
output {
  elasticsearch {
    hosts => ["http://192.168.10.130:9200", "http://192.168.10.131:9200", "http://192.168.10.132:9200"]
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
    action => "index"
    #user => "elastic"
    #password => "changeme"
  }
}

        logstash需要以root用户启动!启动logstash,将日志输出到output.log中

nohup /usr/local/logstash/bin/logstash -f /usr/local/logstash/config/logstash-log.conf >> /usr/local/logstash/output.log 2>&1 & 

        检查启动是否成功,可以查看日志

tail -f /usr/local/logstash/output.log

         出现以下结果“Starting server on port: 5044”说明启动成功!

        ----logstash的安装也弄完了! 

 2.4 filebeat的安装

        在ELKBCf上安装filebeat

        进入 /usr/local/ ,下载filebeat。

        华为的镜像只更新filebeat至7.9.3版本,以后的版本不再提供,很是可惜。因此我们直接从官方网站上下载

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.15.1-linux-x86_64.tar.gz

        解压,重命名

tar -zxvf filebeat-7.15.1-linux-x86_64.tar.gz && mv filebeat-7.15.1-linux-x86_64 /usr/local/filebeat

        进入filebeat中,新建一个filebeat-log.yml专门负责log文件的收集,paths为要收集的路径(我这里是随便找了个地方收集日志,方便后续实验)

vim logstash-log.yml

#添加以下内容
#其中paths为读取读取日志的路径
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /usr/local/filebeat/logs/*.log
    #- /usr/.*log 可以设置多路径,按这种方式就可以了

output.logstash:
  hosts: ["192.168.10.131:5044"] 

setup.kebana:
  enabled: true
  host: "192.168.10.130:5601"

        进入filebeat的logs文件夹下,新建一个b.log文件

vim b.log

#添加以下内容
this is b.log

        启动filebeat

/usr/local/filebeat/filebeat -e -c /usr/local/filebeat/filebeat-log.yml >/dev/null 2>&1 &

         在es,logstash,filebeat,kibana都启动成功的前提下,我们进入到kibana下,点击Management下的Stack Management;进入后在点击kibana下的Index Patterns,再点击右上角的按钮“create index pattern”,新建一个index pattern。

        ELKB集群搭建,Centos环境,简单易懂,包教包会,避免踩坑~(ES7.15.1版本,CentOS-Stream-9)_第5张图片

        之后返回主页,在Discover下就可以看到我们的filebeat传输的日志内容了,this is b.log,成功!!

ELKB集群搭建,Centos环境,简单易懂,包教包会,避免踩坑~(ES7.15.1版本,CentOS-Stream-9)_第6张图片

        

        ----自此filebeat的安装就完成了 ,整个ELKB集群的搭建也完成了!

尾声

        呼,写完了~

        如果本文章能帮到你,那可真是我莫大的荣幸呀!

        如果有发现错误,欢迎指正~

        

         

你可能感兴趣的:(elasticsearch,大数据,搜索引擎,运维,centos)