Linux安装搭建ELK集群

Linux安装搭建ELK集群

一、ES简介

ES是一个基于RESTful web接口并且构建在Apache Lucene之上的开源分布式搜索引擎
特点是:高可用,高扩展,是一种NOSQL的数据存储工具

二、ES安装前的准备(elk安装包版本要求一致)

①:创建虚拟机:elk001
  设置IP地址为:192.168.56.111

②:下载安装包:

  • elasticsearch-6.2.2.tar.gz
  • elasticsearch-head-master.zip
  • kibana-6.2.2-linux-x86_64.tar.gz
  • logstash-6.2.2.tar.gz
  • node-v8.9.1-linux-x64.tar.gz
  • jdk-8u221-linux-x64.tar.gz

安装包链接:https://pan.baidu.com/s/1ppxqunJrYUO2tTwUiLFKNA
提取码:x1rh

三、安装ELK

  1. 根目录下创建software文件夹,mkdir /software  把下载好的安装包,拖拽到/software目录中
    拖拽之后的安装包:
    在这里插入图片描述
    输入 ll 查看目录下所有文件:
    在这里插入图片描述

  2. 输入:yum install -y unzip 下载解压缩工具
    在这里插入图片描述

  3. 输入:tar -zxvf elasticsearch-6.2.2.tar.gz -C /opt将文件解压安装至opt目录下

  4. 输入:tar -zxvf jdk-8u221-linux-x64.tar.gz -C /opt将文件解压安装至opt目录下

  5. 输入:tar -zxvf kibana-6.2.2-linux-x86_64.tar.gz -C/opt将文件解压安装至opt目录下

  6. 输入:tar -zxvf logstash-6.2.2.tar.gz -C /opt将文件解压安装至opt目录下

  7. 输入:tar -zxvf node-v8.9.1-linux-x64.tar.gz -C/opt将文件解压安装至opt目录下

  8. 输入:unzip elasticsearch-head-master.zip解压至当前文件夹

  9. 输入 mv elasticsearch-head-master /opt/eshm  把解压的文件夹移动并改名为eshm

  10. 输入:cd /opt ,输入ll查看文件是否全部解压成功
    在这里插入图片描述

  11. 输入: mv elasticsearch-6.2.2/ es622  文件夹重命名为es622

  12. 输入:mv jdk1.8.0_221/ java8  文件夹重命名为java8

  13. 输入:mv kibana-6.2.2-linux-x86_64/ kibana622  文件夹重命名为kibana622

  14. 输入:mv logstash-6.2.2/ logstash622  文件夹重命名为logstash622

  15. 输入:mv node-v8.9.1-linux-x64/ node891  文件夹重命名为node891

  16. 文件夹重命名完成,输入ll查看:
    在这里插入图片描述

四、ES的配置

  1. 输入:vi /etc/hostname  修改主机名,删除localhost.localdomain
    在这里插入图片描述
    设置主机名为:bigdata01,退出保存
    在这里插入图片描述
  2. 输入:vi /etc/hosts   修改主机列表此处bigdata02、bigdata03是下文创建集群的子节点)
    在这里插入图片描述
  3. 配置es的参数 (虚拟机IP地址为:192.168.56.111)
    输入:
vi /opt/es622/config/elasticsearch.yml

按 shift+g,快速定位到尾行,按o在下一行插入以下代码:
①:cluster.name : test---->集群名
②:node.name : test-master---->节点名
③:node.master : true---->是否是主节点
④:network.host : 192.168.56.111---->本机地址
⑤:discovery.zen.ping.unicast.hosts : [“192.168.56.111”]   ---->本机地址 ([“…”]不要复制粘贴,"“可能会粘贴为中文状态下双引号”")
⑥:http.cors.enabled : true
⑦:http.cors.allow-origin : “*” (“*”不要复制粘贴,可能会粘贴为中文状态下双引号"")
在这里插入图片描述
4. 配置系统参数
(1)输入:vi /etc/sysctl.conf   修改Linux系统一个进程能拥有的最大虚拟内存区域 (可以设为262144)
插入内容:vm.max_map_count=655360
在这里插入图片描述
使用命令刷新: sysctl -w vm.max_map_count=655360
会输出:vm.max_map_count = 655360
在这里插入图片描述
(2)输入:vi /etc/security/limits.conf
   末行插入内容:(此处* soft…中间是有空格的),解除Linux系统最大文件打开数限制,设置当前系统针对所有用户最大文件打开数数为65536
①:* soft nofile 65536
②:* hard nofile 65536
③:* soft nproc 4096
④:* hard nproc 4096
在这里插入图片描述
5. 配置jdk环境
①:vi /etc/profile   配置系统环境
②:在第53行插入:

export JAVA_HOME=/opt/java8
export JRE_HOME=/opt/java8/jre
export CLASSPATH=.:$JAVA_HOME/lib/rt.jar:$jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

在这里插入图片描述
③:source /etc/profile   重新加载配置
④:输入:java -version、javac 测试java是否安装配置成功
安装成功显示如下:
在这里插入图片描述

  1. 新增一个用户es,useradd es,   修改es622目录的属组(将es622目录赋权给es,因为elasticsearch需要普通用户才能启动, 不能使用root启动)
    在这里插入图片描述
    chown -R es:es es622
    在这里插入图片描述
  2. 输入:su es   切换到普通用户es
  3. 在/opt目录下输入:./es622/bin/elasticsearch
  4. 在这里插入图片描述
    底部出现 started 表示启动成功
    在这里插入图片描述
  5. 在windows界面打开网页,输入http://192.168.56.111:9200/,可以正常出页面,切有节点的信息,即是启动成功
    在这里插入图片描述

五、Head-master及node的配置

1.输入:vi /etc/profile   配置系统环境 按shift+g定位到底部,然后按o在下一行插入以下内容:

export NODE_HOME=/opt/node891
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
export PATH=$PATH:$NODE_HOME/bin

(如之前在java配置过PATH变量则在原先的尾部增加: :$NODE_HOME/bin)
在这里插入图片描述
(echo $PATH   可以查看系统标准路径)
在这里插入图片描述
2.输入:source /etc/profile 激活配置文件,输入node -v 可以查看是否配置成功
在这里插入图片描述
3.输入:cd /opt/eshm
4.输入:npm install -g grunt-cli   --加载时间较长,需耐心等待
  加载完成:
在这里插入图片描述
5.输入:npm install   --下载时间尤其长

或者下载慢或者出错可以下载其他版本:npm install [email protected] --ignore-scripts
在这里插入图片描述

6.输入:vi Gruntfile.js,shift+g定位到末行,在图示位置增加一行代码:hostname: ‘*’,
在这里插入图片描述

7.输入:vi _site/app.js,输入4360,定位到该行,找到如下代码,并进行修改:
在这里插入图片描述
localhost修改为本机ip地址:
在这里插入图片描述

8.输入:npm run start 启动head-master
前提是 (上文四.8elasticsearch为开启状态,另开一个窗口切换用户到es, 输入 ./es622/bin/elasticsearch打开elasticsearch
在这里插入图片描述

输入:npm run start ,显示以下界面表示启动成功(如果报错提示grunt命令找不到,则输入:npm install
在这里插入图片描述
9.在windows界面,打开网页,输入:http://192.168.56.111:9100/
打开显示为:
在这里插入图片描述

六、使用Head-master对ES进行测试

1.点击索引页签,点击新建索引
在这里插入图片描述
2.点击总览页签,即可查看索引的情况

在这里插入图片描述

七、kibana安装,配置和实例

1.输入:cd /opt/kibana622
2.输入:vi config/kibana.yml 按shift+g跳转到行末,按o增加以下内容:
  server.host: "192.168.56.111"
  elasticsearch.url: "http://192.168.56.111:9200"
在这里插入图片描述
3.输入:./bin/kibana 运行kibana
加载成功显示:
在这里插入图片描述
4.在windows界面打开网页,输入http://192.168.56.111:5601/
显示界面如图:
在这里插入图片描述

八、测试logstash实例

logstash是一个收集器 ,需要为它指定Input和Output(Input和Output可以为多个)。
由于我们需要把Java代码中Log4j的日志输出到ElasticSearch中,因此这里的Input就是Log4j,而Output就是ElasticSearch。
在这里插入图片描述

1.新建窗口,输入:cd /opt/logstash622   进入logstash的安装目录
2.测试logstash是否能正常工作:
①:普通输入输出:

./bin/logstash -e 'input { stdin{} } output { stdout{} }'

 输入代码加载成功后,测试输入 123,输出123
在这里插入图片描述
②:把控制台输入的数据转换成json格式的数据:

./bin/logstash -e 'input { stdin{} } output { stdout{ codec => json } }'

 输出代码加载成功后,测试输入 ABC,控制台输出json格式的数据:
在这里插入图片描述
③:把控制台输入的数据转换成rubydebug格式的数据:

./bin/logstash -e 'input { stdin{} } output { stdout{ codec => rubydebug } }'

 输入代码加载成功后,测试输入 ABC、娃哈哈,控制台输出rubydebug格式的数据:

在这里插入图片描述

④:把控制台输入的数据转换成rubydebug类型的数据,同时上传到es服务器,可以在对应192.168.56.103:9100的页面进行查看

./bin/logstash -e 'input { stdin{} } output { stdout{ codec => rubydebug } elasticsearch{ hosts => ["192.168.56.103:9200" ] } }'

 输入代码加载成功后,测试输入 ABC,控制台输出rubydebug格式的数据:
在这里插入图片描述

3.使用logstash读取文件
①:在logstash622文件夹下创建测试文件夹tmp:mkdir tmp
②:在tmp文件夹下创建文本:touch test.txt
③:在文本中随意编辑测试内容:vi test.txt
在这里插入图片描述
④:tmp目录下创建一个logstash的测试文档:vi demo.conf
输入一下代码:

input{
       file{
           path => "/opt/logstash622/tmp/test.txt"
           start_position => "beginning"
           sincedb_path => "/dev/null"
         }
}
output{
       stdout{
              codec => rubydebug
             }
       elasticsearch{
                    hosts => ["192.168.56.111:9200"]
       }
}


⑤:在logstash622目录下执行以下代码

./bin/logstash -f tmp/demo.conf

执行成功会读取输出test.txt文件中内容:

在这里插入图片描述

下文集群配好后可以在网页上读取到文件信息
在这里插入图片描述
显示文件信息:
在这里插入图片描述

九、搭建ELK集群

  1. 复制虚拟机
    ①:以elk001为对象,复制两台虚拟机elk002、elk003模拟集群:
    在这里插入图片描述
    ②:复制完成分别启动虚拟机elk001,elk002,elk003,输入用户名密码登录(用户名都为:root,密码:ok)
    ③:虚拟机elk002、elk003需分别重新配置网关,IP地址与(四.2中)设置一致   (设置完成后在用Moba连接,不然IP地址冲突,连接不上)
    在这里插入图片描述
    设置IP地址:vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
    输入:systemctl restart network重启网络
  2. 修改主机名和主机列表
    ①:设置 elk002 主机名为 bigdata02:hostnamectl set-hostname bigdata02
       vi /etc/hostname 内容修改为 bigdata02
    ②: 设置 elk003 主机名为 bigdata03:hostnamectl set-hostname bigdata03
       vi /etc/hostname 内容修改为 bigdata03
    3.主机列表输入: vi /etc/hosts 确认每个虚拟机主机列表都包含每个节点:
    在这里插入图片描述
  3. 配置免密登录
    ①:输入:ssh-keygen -t rsa -P “”enter键需点击两次,生成私钥
    在这里插入图片描述
    ②:cat .ssh/id_rsa.pub >> .ssh/authorized_keys   复制私钥到公钥,虚拟机elk001、elk002、elk003分别都执行一次
    在这里插入图片描述
    ③:对于虚拟机elk001,输入:
ssh-copy-id -i .ssh/id_rsa.pub -p22 root@bigdata02
ssh-copy-id -i .ssh/id_rsa.pub -p22 root@bigdata03

在这里插入图片描述
  添加另外两台虚拟机elk002、elk003连接,对于虚拟机elk002、elk003需分别进行上述操作
测试

ssh -p 22 root@bigdata01
ssh -p 22 root@bigdata02
ssh -p 22 root@bigdata03

远程登录验证,三台虚拟机相互切换,不需要输入密码即可
在这里插入图片描述
如果相互切换的时候提示要连续enter几次,在输入切换用户的密码,说明免密配置没有配置好,需要重新进行上述①②③步骤
4.配置elasticsearch集群
①:输入:vi /opt/es622/config/elasticsearch.yml   ( 修改节点名,ip地址,主机列表)
主节点elk001:
在这里插入图片描述
子节点elk002:
在这里插入图片描述
子节点elk003:
在这里插入图片描述

②:三个虚拟机都切换用户至es

su es

③:虚拟机elk002、elk003需分别删除es622目录下的datalogs目录, (因为elk002,elk003是复制elk001的,并且./es622/bin/elasticsearch启动过,会冲突)
在这里插入图片描述
5. 启动
①:elk001、elk002、elk003分别在/opt目录下输入:./es622/bin/elasticsearch
底部出现 started表示启动成功
在这里插入图片描述
②:主节点elk001新建窗口,切到eshm目录下输入:npm run start   (启动head-master)
在这里插入图片描述
③:输入网址:http://192.168.56.111:9100/
显示以下页面表示集群创建连接成功
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/and52696686/article/details/106840309