从零开始!ELK的安装、配置以及集群搭建!
ELK的安装、配置以及集群搭建准备阶段vm虚拟机与配置java需要的安装包Elasticsearch解压ES安装包ES配置写在前面: 这是小白在学习过程中整理的笔记,不仅可以用于备忘疏漏的步骤,也希望抛砖引玉能与大家一起来讨论整个ELK安装到使用过程中遇到的各种状况,一起学习进步!下面就让我们开始吧!准备阶段vm虚拟机与配置javavmware虚拟机安装教程Linux配置java开发环境这两篇是同
ELK的安装、配置以及集群搭建
写在前面: 这是小白在学习过程中整理的笔记,不仅可以用于备忘疏漏的步骤,也希望抛砖引玉能与大家一起来讨论整个ELK安装到使用过程中遇到的各种状况,一起学习进步!
下面就让我们开始吧!
准备阶段
vm虚拟机与配置java
这两篇是同学写的相关教程,我个人认为十分详细,很实用。如果在虚拟机这里有问题可以参考以上两篇博文。按照博文里的步骤走到最后的话,我们的准备阶段就完成一大半了。
需要的安装包
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
elasticsearch-analysis-ik-6.2.2
以上是我们这里要使用的安装包,如果有需要的话可以在评论区留言。
在我们的虚拟机里先创建一个software根目录mkdir software
,专门存放这些安装包,把安装包都拖进来,这样方便以后查找和删除。
然后就可以开始安装了!
Elasticsearch
Elasticsearch,又简称ES,是基于Lucene的开源分布式搜索引擎,大幅降低了PB级海量数据存储、检索、分析门槛
解压ES安装包
第一步:解压
tar -zxvf elasticsearch-6.2.2.tar.gz -C /opt
# 解压es安装包到opt目录下
第二步:更名
cd /opt # 进入opt目录
mv elasticsearch-6.2.2/ es6
# 将这个名字很长的文件更名为es6,方便以后使用
ES配置
第一步: 修改主机名
vi /etc/hostname
初始化的名称是localhost.localdomain,建议改一个简短好记的主机名;我这里改成了cent001
:x保存退出 (下文基本省略这句话,修改完文件默认保存退出,除非有特殊说明)
第二步: 修改主机列表
vi /etc/hosts
进入这个文件后,在尾行添加本机IP地址 主机名
我个人的例子如下:
第三步: 配置es参数
vi /opt/es6/config/elasticsearch.yml
进入这个文件后,在尾行添加:
cluster.name: #集群名
node.name: #节点名
node.master: #是否为主节点 true/false
network.host: #本机IP地址
discovery.zen.ping.unicast.hosts: [] #[]内输入IP地址或主机名,要加双引号
http.cors.enabled: true
http.cors.allow-origin: "*"
注意!这里添加的文本中,在:后一定要加空格,否则可能会报错!
第四步: 配置系统参数(1)
vi /etc/sysctl.conf
插入内容:
vm.max_map_count=655360
然后在命令行输入以下命令即时刷新:
sysctl -w vm.max_map_count=655360
第五步: 配置系统参数(2)
vi /etc/security/limits.conf
插入内容:
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
第六步: 新建用户并修改所属
做这一步的根本原因在于:ES不能使用root启动!
useradd es
passwd es
这里需要我们给新用户es设置密码,大家请按自己实际情况来操作
然后修改es6目录的属组:
chown -R es:es es6
可以使用ll
来查看是否修改完成:
至此,ES配置已完成,然后让我们来测试一下!
启动ES
输入su 用户名
,切换到刚才新建的普通用户
在/opt/es6目录下输入./bin/elasticsearch
底部出现started则表示启动成功
还可以去浏览器输入本机IP地址:9200
,可以正常出页面,切有节点的信息,即是启动成功!
head-master及node
这里在上述步骤操作完之后,如果想让es一直开启,我们可以在标签页右键选择Duplicate Tab,然后在新的标签页继续操作
解压head-master
由于这里head-master是zip文件,所以我们需要unzip来解压。有的同学可能还没有装unzip工具,这里要先安装一下:
unzip安装好之后输入如下指令:
unzip elasticsearch-head-master.zip
mv elasticsearch-head-master /opt
cd /opt
mv elasticsearch-head-master/ head
将head-master解压并移动到opt目录下,然后改名成head(或者自己认为比较简便的文件名)
再解压node安装包:(并改名为node8)
tar -zxvf node-v8.9.1-linux-x64.tar.gz -C /opt
cd /opt
mv node-v8.9.1-linux-x64/ node8
配置
第一步:
vi /etc/profile
底部添加:
export NODE_HOME=/opt/node8
export PATH=$PATH:$NODE_HOME/bin
需要注意的是:如之前在java配置过PATH变量,则在原先的尾部增加:$NODE_HOME/bin
(注意要有英文冒号)
此外,个人还建议使用echo $PATH
来获取初始路径信息,并将其添加进来;最后的profile文件内容应当如下:
export JAVA_HOME=/opt/jdk1.8.0_221 #这里因人而异
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin #初始路径
export NODE_HOME=/opt/node8 #这里因人而异
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$NODE_HOME/bin:$PATH
然后source /etc/profile
激活配置文件,node -v
可以查看是否配置成功:
第二步:
cd /opt/head
npm install -g grunt-cli #等待的时间比较长
npm install
如果这里出错或者长时间卡顿,则强行中止并输入:
npm install phantomjs-prebuilt@2.1.14 --ignore-scripts
第三步:
vi Gruntfile.js
然后在下面这个段落位置添加:hostname: '*',
connect: {
server: {
options: {
port: 9100,
hostname: '*', <---添加的内容
base: '.',
keepalive: true
}
}
}
第四步:
vi _site/app.js
找到如下代码,并进行修改:(大约在4360行)
this.base_uri =this.config.base_uri ||this.prefs.get("app-base_uri") || "http://localhost:9200";
修改成为:
this.base_uri =this.config.base_uri ||this.prefs.get("app-base_uri") || "http://192.168.23.31:9200"; <---localhost修改成自己本机的IP地址
启动
输入如下命令,即可启动
npm run start
在浏览器输入http://IP地址:9100/
可以查看是否启动成功
注意! es需要处于开启状态,否则这里会报错,无法启动
使用hm对es测试
1.点击索引页签,点击新建索引
2.点击总览页签,即可查看索引的情况
kibana
依旧是解压—安装—改名三部曲
这里解压时间耗时可能比较久,不 要 恐 慌
配置
进入/opt/kibana目录
输入vi config/kibana.yml
尾行添加:(IP地址因人而异)
server.host: "本机IP地址"
elasticsearch.url: "http://本机IP地址:9200"
启动
还是在kibana目录下,输入./bin/kibana
,启动kibana
浏览器输入http://本机IP地址:5601
使用dev tools可以进行更多对数据的处理,这里不多进行赘述
logstash
如图三部曲,不多复述了
测试
进入/opt/logstash目录下:
- 输入:./bin/logstash -e ‘input { stdin{} } output { stdout{} }’ 来测试logstash是否正常工作
- 输入:./bin/logstash -e ‘input { stdin{} } output { stdout{ codec => json } }’ 把控制台输入的数据转换成json格式的数据,也可以替换成rubydebug类型的
然后更多的是logstash的语法,这里只是安装及配置,先不做过多描述了
集群
克隆虚拟机
所谓集群,就是由多台机器“捆绑”在一起,形成了一个群体。
为了实现这一目标,我们需要对刚才配置好的虚拟机进行克隆!
右键虚拟机,选择管理,选择克隆(注意虚拟机要处于关闭状态)
然后选择 “克隆自:虚拟机当前的状态” —> “克隆方法:创建完整克隆” —> “虚拟机名称、位置:请自行输入” —> “完成!”
这时候不要急着打开新的虚拟机,我们还需要对它的mac地址重新生成一下:“编辑虚拟机设置” —> “网络适配器” —> “高级” —> “MAC地址:生成”
对两个网络适配器(仅主机和NAT)的mac地址都重新生成之后,再开启克隆的虚拟机
修改主机名和主机列表
先在虚拟机下修改本机的IP地址:修改IPADDR=…
vi /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart network
#如果连接不上moba,可以查看防火墙设置
systemctl status firewalld
systemctl disable firewalld #禁用防火墙
连接MobaXtreme
修改主机名: (两种方法)
1.hostnamectl set-hostname 主机名
2.vi /etc/hostname
内容修改为主机名
可能需要重启才生效
修改主机列表:
vi /etc/hosts
内容增加:主机IP地址 主机名
注意:
1.这里克隆虚拟机的IP地址和主机名都要和原来的不同!
2.所有集群内的虚拟机都要在/etc/hosts
下互相添加对方的IP地址和主机名
配置免密登录
1.ssh-keygen
生成私钥
具体步骤基本上是一路回车,如果有问“Overwrite(y/n)?” 输入y就好了
2.cat .ssh/id_rsa.pub >> .ssh/authorized_keys
复制私钥到公钥
注意!这一步需要在/root/
目录下完成,不然会报错
3.ssh-copy-id -i .ssh/id_rsa.pub -p22 root@主机名
远程复制到另一台机器
有需要输入yes/no的就输入yes,有需要输入密码的就输入密码
4.ssh -p 22 root@主机名
远程登录验证,不需要输入密码即可
配置elasticsearch集群
1.vi /opt/es6/config/elasticsearch.yml
修改节点名,ip地址,主机列表
因为克隆的虚拟机我们不做主节点,这里的node.master要改成false,node.name也要改一下;还有要在每个虚拟机的discovery.zen.ping.unicast.hosts
下添加集群内的所有主机名
2.在/opt/es6
目录下删除data和log目录
rm -rf data/
rm -rf logs/
3.su es
切换用户
先运行主节点,再运行子节点
主节点的虚拟机运行head-master,如果不记得可以翻看上文
浏览器输入主节点IP地址:9100
,出现下图所示,就代表集群搭建成功!
总结
这里介绍的是安装配置ELK和简单的集群搭建,不涉及个中工具的语法,之后我会再写一篇博客,专门总结一下具体如何使用这些工具!希望这篇博文能帮到大家!
更多推荐
所有评论(0)