看完肯定会系列之——ELK:ES的安装与配置、head_master和node配置、kibana安装和配置、ELK集群的搭建、logstash实例

一、ES安装与配置:

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

1、事前准备

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
还有一个jdk1.8

2、创建虚拟机

创建虚拟机并安装java
完成后 在根目录下创建software目录用来放置安装包
mkdir /software
cd /software
将jdk和ELK所需要的五个压缩包拖入software目录

3、解压 移动 改名

把下载好的安装包,拖拽到/software目录中
输入:yum install -y unzip 下载解压缩工具
输入:cd /software 进入安装包目录,输入ll可以查看目录中的文件
输入:tar -zxvf jdk-8u221-linux-x64.tar.gz -C /opt/
输入:tar -zxvf elasticsearch-6.2.2.tar.gz -C /opt
输入:tar -zxvf kibana-6.2.2-linux-x86_64.tar.gz -C/opt
输入:tar -zxvf logstash-6.2.2.tar.gz -C /opt
输入:tar -zxvf node-v8.9.1-linux-x64.tar.gz -C/opt
输入:unzip elasticsearch-head-master.zip (zip与其他格式不一样)
输入:mv elasticsearch-head-master /opt/eshead 把解压的文件夹移动并改名
输入:cd /opt (下面给他们改名)
输入:mv kibana-6.2.2-linux-x86_64/ kibana622
输入:mv logstash-6.2.2/ logstash622
输入:mv node-v8.9.1-linux-x64/ node8
输入:mv elasticsearch-6.2.2/ es622
输入:mv jdk1.8.0_221/ java8
在这里插入图片描述

4、配置文件

vi /etc/hostname 修改名字bigdata01

vi /etc/hosts
添加
192.168.56.111 bigdata01
192.168.56.112 bigdata02
192.168.56.113 bigdata03

vi /opt/es622/config/elasticsearch.yml
添加:
cluster.name : bigdata
node.name : 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 : “*”
(注意空格)

vi /etc/sysctl.conf 添加
vm.max_map_count=655360
保存退出后
sysctl -w vm.max_map_count=655360

vi /etc/security/limits.conf
添加

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

关闭防火墙
systemctl status firewalld(查看)
systemctl stop firewalld(关闭)
systemctl disable firewalld(禁用)

vi /etc/profile(配置java环境变量)

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

source /etc/profile(刷新文件使配置生效)

javac测试
在这里插入图片描述

5、新建页面创建普通用户es

useradd es
切回root输入
chown -R es:es es622 修改es622目录的属组(es不能使用root启动)
切换用户es 在opt目录下输入
./es622/bin/elasticsearch
在这里插入图片描述浏览器输入IP地址:9200访问
在这里插入图片描述出现上述页面表示成功

二、head_master和node配置

第一步:新建页面,修改环境变量

vi /etc/profile 环境变量配置为

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
export JAVA_HOME=/opt/java8
export CLASSPATH=.:$JAVA_HOME/rt.jar:$JAVA_HOME/tools.jar:$JAVA_HOME/dt.jar
export JRE_HOME=$JAVA_HOME/jre
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$NODE_HOME/bin
export NODE_HOME=/opt/node8

source /etc/profile 激活配置文件,输入node -v 返回版本号可以查看是否配置成功

第二步:下载

cd /opt/eshead
npm install -g grunt-cli 下载
npm install 要等 不行就 npm install [email protected] --ignore-scripts

第三步:修改配置文件

vi Gruntfile.js
在post:9100下面添加 hostname: ‘*’,
vi _site/app.js
set nu开启行号显示 切到4360 修改 http://192.168.56.110:9200

第四步:运行

新建页面普通用户opt目录下
./es622/bin/elasticsearch 开启(前面开过就不用开了)
切回root
npm run start 启动head-master

浏览器IP地址:9100查看

三、kibana安装 配置

新建页面
输入:cd /opt/kibana622
输入:vi config/kibana.yml 按shift+g跳转到行末,按o增加以下内容:
server.host: “192.168.56.111”
elasticsearch.url: “http://192.168.56.111:9200”
输入:./bin/kibana 运行kibana
浏览器IP地址:5601查看

四、ELK集群的搭建

第一步:复制虚拟机(复制两个)

将之前的操作全部关闭,复制虚拟机需要虚拟机关机 运行状态下不行

第二步:修改配置 (两个虚拟机都要操作)

修改网络地址
输入:
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
修改网络ip地址(例如第一个IP地址设置为111,后两个就为112,113)
systemctl restart network 激活配置
主机名
vi /etc/hostname 内容修改为bigdata01/02/03
主机列表
vi /etc/hosts 内容增加 主机的ip地址 主机名(之前做过不用做)

第三步:配置免密登录

ssh-keygen -t rsa -P “” 生成私钥
cat .ssh/id_rsa.pub >> .ssh/authorized_keys 复制私钥到公钥
ssh-copy-id -i .ssh/id_rsa.pub -p22 root@bigdata02 远程复制到另一台机器
ssh -p 22 root@bigdata02 远程登录验证,不需要输入密码即可

第四步:再次修改配置 三个页面全部执行

cd /opt/es622
vi config/elasticsearch.yml
在这里插入图片描述第一个里面只需要修改倒数第三行 添加其他两个ip地址
二和三需要修改
node.name为任意名字
node.master为false
network.host为自己的ip地址
下一行像111一样添加ip地址就行

第五步:删除data和logs文件

修改完配置文件之后
三个页面都切换到普通用户
112和113要先删除data和logs两个文件夹 再运行(因为这两个文件是之前111运行时生成的,所以要先删除,2和3运行时会自动生成自己的)
cd /opt/es622
rm -rf data
rm -rf logs

启动es
./bin/elasticsearch
浏览器分别测试每一个的9200是否成功
成功后
新开111页面
eshead目录下运行head-master
cd /opt/eshead
npm run start (如果出现找不到命令 输入source /etc/profile再启动)
在这里插入图片描述
浏览器IP:9100测试

在这里插入图片描述搭建成功

五:logstash实例

在上述情况下新开页面
输入:cd /opt/logstash622 进入logstash的安装目录
输入:./bin/logstash -e ‘input { stdin{} } output { stdout{} }’
(这里单引号注意改成英文) 来测试logstash是否正常工作 随意输入字符后回车(输入什么反回什么)
输入:./bin/logstash -e ‘input { stdin{} } output { stdout{ codec => json } }’
把控制台输入的数据转换成json格式的数据,也可以替换成rubydebug类型的
输入:./bin/logstash -e ‘input { stdin{} } output { stdout{ codec => rubydebug } elasticsearch { hosts =>[“192.168.56.111:9200”] } }’
把控制台输入的数据转换成rubydebug类型的数据,同时上传到es服务器,可以在对应192.168.56.111:9100的页面刷新进行查看
在这里插入图片描述
使用logstash读取文件
先停止之前的运行(Ctrl+c)
创建数据文件
创建一个tmp文件夹 在其中创建一个test文件 在里面随意输入N行数据
mkdir tmp
vi tmp/test.txt
创建配置文件
vi tmp/logstash.conf
其中输入下方代码 保存退出
在这里插入图片描述
./bin/logstash -f tmp/logstash.conf
运行 效果等同于之前的第一个命令 输入什么输出什么
在这里插入图片描述
这样效果等同于上述第三个代码,以rubydebug格式输出

连接到es
在这里插入图片描述保存退出后 运行
./bin/logstash -f tmp/logstash.conf
出现之前test.txt文本中的内容
在这里插入图片描述浏览器IP地址:9200刷新 完成

猜你喜欢

转载自blog.csdn.net/wgyzzzz/article/details/106877516