搭建ELK日志分析平台-分布式集群

ELK安装准备工作
准备3台机器,这样才能完成分布式集群的实验,当然能有更多机器更好:
配置三台机器的hosts文件内容如下:
vim /etc/hosts
192.168.254.133 master-node
192.168.254.134 data-node1
192.168.254.135 data-node2
角色划分:
? 3台机器全部安装jdk1.8,因为elasticsearch是java开发的
? 3台全部安装elasticsearch (后续都简称为es)
? 192.168.254.133 作为主节点
? 192.168.254.134以及192.168.254.135作为数据节点
? 主节点上需要安装kibana
? 在192.168.254.134上安装 logstash

安装JDK1.8及以上版本!
删除自带的OpenJDK,一些开发版的centos会自带jdk,我们一般用自己的jdk,把自带的删除。先看看有没有安装:
java -version
查找他们的安装位置:
rpm -qa | grep java
删除全部,noarch文件可以不用删除
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.161-0.b14.el7_4.x86_64
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.161-2.6.12.0.el7_4.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.161-2.6.12.0.el7_4.x86_64
检查有没有删除
java -version
-bash: /usr/bin/java: 没有那个文件或目录
如果还没有删除,则用yum -y remove去删除他们
下载并安装:进入 /usr/local 目录,执行:
wget http://download.oracle.com/otn-pub/java/jdk/8u162-b12/0da788060d494f5095bf8624735fa2f1/jdk-8u162-linux-x64.tar.gz?AuthParam=1516699305_3ad4fe7353a00babea8146d5257b92e4
下载JDK压缩包,如果不行就自己上传到服务器
下载完成后解压tar包
tar -zxvf jdk-8u162-linux-x64.tar.gz
将解压后的文件夹剪切到usr/local 目录下,并改名为 jdk8
mv jdk1.8.0_162 /usr/local/jdk1.8
配置环境变量 :
vim /etc/profile
在export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL下面添加如下代码:
#jdk
export JAVA_HOME=/usr/local/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
追加完成后更新配置:source /etc/profile 查看是否安装成功:java -version

ELK版本信息:(也可以在官网自己选择版本)
https://www.elastic.co/downloads

我这里也是通过官方给的源进行安装,以下操作3台机器上都要执行,因为三台机器都需要安装es:
安装es
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
vim /etc/yum.repos.d/elastic.repo # 增加以下内容
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

yum install -y elasticsearch
已安装:
elasticsearch.noarch 0:6.3.0-1
如果使用官方的源下载实在太慢的话,也可以直接下载rpm包进行安装

配置es
elasticsearch配置文件在这两个地方,有两个配置文件:
ll /etc/elasticsearch
elasticsearch.yml
jvm.options
log4j2.properties

ll /etc/sysconfig/elasticsearch
/etc/sysconfig/elasticsearch

elasticsearch.yml 文件用于配置集群节点等相关信息的,elasticsearch 文件则是配置服务本身相关的配置,例如某个配置文件的路径以及java的一些路径配置什么的。
开始配置集群节点,在 192.168.254.133 上编辑配置文件:
[[email protected] ~]# vim /etc/elasticsearch/elasticsearch.yml # 增加或更改以下内容
cluster.name: master-node # 集群中的名称
node.name: master # 该节点名称
node.master: true # 意思是该节点为主节点
node.data: false # 表示这不是数据节点
network.host: 0.0.0.0 # 监听全部ip,在实际环境中应设置为一个安全的ip
http.port: 9200 # es服务的端口号
discovery.zen.ping.unicast.hosts: ["192.168.254.133", "192.168.254.134", "192.168.254.135"] # 配置自动发现
[[email protected] ~]#
然后将配置文件发送到另外两台机器上去:
[[email protected] ~]# scp /etc/elasticsearch/elasticsearch.yml data-node1:/tmp/
[[email protected] ~]# scp /etc/elasticsearch/elasticsearch.yml data-node2:/tmp/
到两台机器上去更改该文件,修改以下几处地方:
192.168.254.134:
[[email protected] ~]# vim /tmp/elasticsearch.yml
node.name: data-node1
node.master: false
node.data: true
[[email protected] ~]# cp /tmp/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml
cp: overwrite ‘/etc/elasticsearch/elasticsearch.yml’? yes
[[email protected] ~]#
192.168.254.135:
[[email protected] ~]# vim /tmp/elasticsearch.yml
node.name: data-node2
node.master: false
node.data: true
[[email protected] ~]# cp /tmp/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml
cp: overwrite ‘/etc/elasticsearch/elasticsearch.yml’? yes
[[email protected] ~]#
完成以上的配置之后,到主节点上,启动es服务:
systemctl start elasticsearch.service
主节点启动完成之后,再启动其他节点的es服务。
排错记录:
我这里启动主节点的时候没有启动成功,于是查看es的日志,但是却并没有生成,那就只能去看系统日志了:
[[email protected] ~]# ls /var/log/elasticsearch/
[[email protected] ~]# tail -n50 /var/log/messages
报错解决:
如果java安装了查看相关路径版本(如果没有请安装)
echo $JAVA_HOME
这是无法在环境变量中找到java可执行文件,那就好办了,做一个软链接过去即可:
[[email protected] ~]# ln -s /usr/local/jdk1.8/bin/java /usr/bin/
再次启动es服务,这次就终于启动成功了:
[[email protected] elasticsearch]# systemctl restart elasticsearch.service
[[email protected] elasticsearch]# ps aux |grep elasticsearch
elastic+ 1695 90.2 14.7 1678052 570592 ? Ssl 19:48 0:07 /bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.io.tmpdir=/tmp/elasticsearch.ioUbRBxw -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/lib/elasticsearch -XX:ErrorFile=/var/log/elasticsearch/hs_err_pid%p.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Xloggc:/var/log/elasticsearch/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=32 -XX:GCLogFileSize=64m -Des.path.home=/usr/share/elasticsearch -Des.path.conf=/etc/elasticsearch -Des.distribution.flavor=default -Des.distribution.type=rpm -cp /usr/share/elasticsearch/lib/* org.elasticsearch.bootstrap.Elasticsearch -p /var/run/elasticsearch/elasticsearch.pid --quiet
root 1747 0.0 0.0 112720 988 pts/0 S+ 19:48 0:00 grep --color=auto elasticsearch

9300端口是集群通信用的,9200则是数据传输时用的。
[[email protected] elasticsearch]# netstat -tunpl
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp6 0 0 :::9200 ::: LISTEN 1695/java
tcp6 0 0 :::9300 :::
LISTEN 1695/java

主节点启动成功后,依次启动其他节点即可,这里其他节点都是启动正常的就OK。

curl查看es集群情况
[[email protected] elasticsearch]# curl ‘192.168.254.133:9200/_cluster/health?pretty‘
{
"cluster_name" : "master-node",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 3,
"number_of_data_nodes" : 2,
"active_primary_shards" : 0,
"active_shards" : 0,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}

查看集群的详细信息:
[[email protected] elasticsearch]# curl ‘192.168.254.133:9200/_cluster/state?pretty‘
会显示一长串信息!

检查没有问题后,我们的es集群就搭建完成了。
这个集群的状态信息也可以通过浏览器查看:

但是显示出来的也是一堆字符串,我们希望这些信息能以图形化的方式显示出来,那就需要安装kibana来为我们展示这些数据了。

原文地址:http://blog.51cto.com/10158955/2133420

时间: 2024-08-09 00:56:59

搭建ELK日志分析平台-分布式集群的相关文章

Centos7下ELK+Redis日志分析平台的集群环境部署记录

之前的文档介绍了ELK的架构基础知识,下面简单记录下ELK结合Redis搭建日志分析平台的集群环境部署过程,大致的架构如下: + Elasticsearch是一个分布式搜索分析引擎,稳定.可水平扩展.易于管理是它的主要设计初衷 + Logstash是一个灵活的数据收集.加工和传输的管道软件 + Kibana是一个数据可视化平台,可以通过将数据转化为酷炫而强大的图像而实现与数据的交互将三者的收集加工,存储分析和可视转化整合在一起就形成了ELK. 基本流程:1)Logstash-Shipper获取日

在Windows系统下搭建ELK日志分析平台

再记录一下elk的搭建,个人觉得挺麻烦的,建议还是在linux系统下搭建,性能会好一些,但我是在windows下搭建的,还是记录一下吧,像我这种记性差的人还是得靠烂笔头 简介: ELK由ElasticSearch.Logstash和Kiabana三个开源工具组成: Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. Logstash是一个完全开源的工具,他可以对你的日志进行收集.过

搭建ELK日志分析平台

ELK即Elasticsearch+Logstash+Kibana组合,是一个开源分布式搜索平台,搭建该平台的目的就是为了方便的查询日志.Elasticsearch一个开源的搜索引擎框架,Logstash集成各种收集日志插件,还是一个比较优秀的正则切割日志工具:Kibana一个免费的web图形工具. 安装架构如图所示,安装环境为rhel6.4 一.安装redis #yum -y install gcc tcl-devel #tar xf redis-3.0.0.tar.gz -C /opt #c

ELK搭建实时日志分析平台之二Logstash和Kibana搭建

本文书接前回<ELK搭建实时日志分析平台之一ElasticSearch> 文:铁乐与猫 四.安装Logstash logstash是一个数据分析软件,主要目的是分析log日志. 1)下载和解压logstash 下载地址: https://www.elastic.co/cn/downloads/logstash 上传到服务器/usr/ELK目录后,解压:sudo tar -zxvf logstash-6.1.3.tar.gz 我下的这个6.1.3版本的logstash tar包大小有110多M了

极速赛车平台出租与ELK日志分析平台

什么是ELK呢?极速赛车平台出租 Q2152876294 论坛:diguaym.com ELK是三个组件的缩写, 分别是elasticsearch, logstash, kibana. ELK平台可以用于实现日志收集.日志搜索和日志分析 1.elasticsearch(es): 它是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. 2.logstash: 简单说是一个日志收集工具, 可以定义从哪里获取数据,

浅谈ELK日志分析平台

作者:珂珂链接:https://zhuanlan.zhihu.com/p/22104361来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 小编的话 "技术干货"系列文章意在分享技术牛人的知识干货,每期主题都不一样哟!期待各位读者在文后发表留言,来一场技术上的交流和思想上的碰撞! 2016年7月20日,本期品高云公开课由叶春草带来"可视化案发现场--浅谈ELK日志分析平台"的分享. 分享嘉宾 叶春草现就职于品高云软件技术支持工程师.就职

centos 7搭建ELK日志分析系统

一.ELK的组成 ELK由ElasticSearch.Logstash和Kiabana三个开源工具组成,其官方网站为https://www.elastic.co/cn Elasticsearch:是个开源分布实时分析搜索引擎,建立在全文搜索引擎库Apache Lucens基础上,同时隐藏了Apache Luces的复杂性.Elasticsearch将所有的功能打包成一个独立的服务,并提供了一个简单的RESTful API接口,它具有分布式.零配置.自动发现.索引自动分片.索引副本机制.RESTf

CentOS7.5搭建Hadoop2.7.6完全分布式集群

一 完全分布式集群(单点) Hadoop官方地址:http://hadoop.apache.org/ 1  准备3台客户机 1.1防火墙,静态IP,主机名 关闭防火墙,设置静态IP,主机名此处略,参考  Linux之CentOS7.5安装及克隆 1.2 修改host文件 我们希望三个主机之间都能够使用主机名称的方式相互访问而不是IP,我们需要在hosts中配置其他主机的host.因此我们在主机的/etc/hosts下均进行如下配置: [root@node21 ~]# vi /etc/hosts

Nginx之搭建反向代理实现tomcat分布式集群

参考博文: Nginx反向代理实现Tomcat分布式集群 1. jdk 安装 jdk 下载网址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 执行如下: # cd /usr # mkdir java # cp /xx/jdk-8u171-linux-x64.tar.gz /usr/java/ # cd /usr/java # tar -zxvf jdk-8u171-linu