闲来无事,最近感觉现在企业招聘信息中要求会elk,作为小白的我当然也要紧跟技术界的潮流了【虽然跟的有点晚了哈@_@】
本文章是借鉴网上一篇文章并结合我自己实践过程写下的,文章最后会贴出借鉴文章的链接~
系统:
注:我这里为测试和实验方便,ELK整套都装在同一台虚拟机中了,生产环境的话,可以分开搭建在不同的服务器上,只要能互相联通。
虚拟机中防火墙以及selinux都已关闭!
相关部署环境:
一个MVC模型,logstash是controller层,Elasticsearch是一个model层,kibana是view层。
将数据传给logstash,它将数据进行过滤和格式化(转成JSON格式);
然后传给Elasticsearch进行存储、建搜索的索引;
kibana提供前端的页面再进行搜索和图表可视化,它是调用Elasticsearch的接口返回的数据进行可视化。
logstash和Elasticsearch是用Java写的,kibana使用node.js框架。
中文官网 https://www.elastic.co/cn/
一、安装JAVA和设置JAVA变量环境 {注意:如果系统自带的jdk环境不满足需求,则需先卸载【rpm -e --nodeps 软件包名称】在安装}
1.解压:tar zxvf jdk-8u152-linux-x64.tar.gz
2.配置环境变量:
#vim /etc/profile
在底部添加以下内容 :
export JAVA_HOME=/opt/jdk1.8.0_152
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
#source /etc/profile 使环境变量生效
二、下载elasticsearch回来后解压
ELK下载:https://www.elastic.co/downloads/
linux系统一般就选择tar包下载可以了。
下载后在服务器/opt目录上解压:tar -zxvf elasticsearch-6.1.3.tar.gz
出于系统安全考虑设置,ElasticSearch不允许以root用户模式运行。
由于Elasticsearch可以接收用户输入的脚本并且执行,
为了系统安全考虑,必须创建一个单独的用户用来运行Elasticsearch,
否则会导致运行失败。
故为elsearch创建一个组和用户如下:
sudo groupadd elk #创建ELK组
sudo useradd elk -g elk
sudo passwd 111111
#创建新用户elk加入elk组并设置输入密码,注意如果直接-p指定明文密码的话是不对的,-p后面接的是加密形式后的密文。
sudo chown -R elk.elk /opt/elasticsearch-6.1.3 #变更elasticsearch目录的权限所有者
su elk #切换elsearch用户
/opt/elasticsearch-6.1.3/bin/elasticsearch -d #后台启动elasticsearch
或su - elsearch -c "/opt/elasticsearch-6.1.3/bin/elasticsearch -d" #临时切换到elsearch用户执行一条命令
jps #查看后台运行程序
netstat -lnp | grep 9200 #确认9200端口已监听即elasticsearch启动成功
tcp 0 0 127.0.0.1:9200 0.0.0.0:* LISTEN -
验证
在服务器浏览器(安装links或lynx)中输入:http://localhost:9200/
或 127.0.0.1:9200(elasticsearch默认端口号为9200)
暂时不能在别的客户机测试,因为侦听的只是127.0.0.1本机,之后开放侦听公网的时候记得systemctl stop iptabels关闭一下防火墙
或防火墙及安全组上配置开放端口。
curl 127.0.0.1:9200 出现下载和显示的选择,选择显示后会显示json内容:
修改监听端口,允许外部系统远程访问(不然不方便呐):
编辑文件
sudo vim /opt/elasticsearch-6.1.3/config/elasticsearch.yml
在Network区域中修改默认参数
network.host的数值,另外http.port也可将默认的9200端口修改。
network.host: 0.0.0.0
(注意这里表示设置侦听你所有网卡上的ip地址,也可以只针对单个网卡地址进行设置)
保存好设置,需重启 elasticsearch服务。
elsearch是用java启动的,我们可以先查找java进程再筛选,当然java也有可能运行了多个进程,所以还是直接查找elsearch为好。