本文共 3107 字,大约阅读时间需要 10 分钟。
ELK是什么?
E=ElasticSearch ,一款基于的Lucene的分布式搜索引擎,我们熟悉的github,就是由ElastiSearch提供的搜索,据传已经有10TB+的数据量。
L=LogStash , 一款分布式日志收集系统,支持多输入源,并内置一些过滤操作,支持多输入元
K=Kibana , 一款配合ElasticSearch的web可视化界面,内置非常各种查询,聚合操作,并拥有漂亮的图形化展示功能
为什么要用ELK?
在实际应用中,我们的日志是非常重要的,它通常会记录一些比较重要的信息,如应用程序的log记录的error,warn级别的log,通常在量小的情况下,我们可以直接vi+awk+sed+grep定位原因,在量大的时候,这种方式就捉襟见肘了,而且我们还要各种聚合,或者基于异常多个关键词的搜索,并有且,或,交,并,差,补,排序等一些操作,而且相应速度必须给力,如果线上环境出了故障,能够立刻准确定位,ELK就是高手,在百万大军中取上将首级,犹如探囊取物,所以这时候ELK就非常适合了,当然除此之外,ELK也经常在运维工作中大放光彩,在应用级别的实时监控,非常适合一些重要核心服务的预警。
ELK如何安装搭建?
环境要求:
Linux系统:Centos6.5
[root@ELK-Server ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
Java版本:JDK1.8
[root@ELK-Server ~]# java -version
openjdk version "1.8.0_51"
OpenJDK Runtime Environment (build 1.8.0_51-b16)
OpenJDK 64-Bit Server VM (build 25.51-b03, mixed mode)
ELK均为最新版本:
(1)ElasticSearch1.7.2 基于Lucene4.10.4的版本
(2)Logstash1.5.4
(3)Kibana4.1.2
集群拓扑:
ElasticSearch 3台机器:
集群名:search
机器名+es节点名 => ip地址
h1 => 192.168.1.120
h2 => 192.168.1.121
h3 => 192.168.1.122
Logstash 192.168.1.120
Kibana 192.168.1.120
下载:
elasticsearch: wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.3.tar.gz
logstash : wget https://download.elastic.co/logstash/logstash/logstash-1.5.4.tar.gz
kibana : wget https://download.elastic.co/kibana/kibana/kibana-4.1.2-linux-x64.tar.gz
一: 安装elasticsearch集群:
(1)解压到指定目录
(2)配置elasticsearch.yml里面,集群名字和节点名字,如果不配置默认集群名为elasticsearch,节点名随机生成一个
(3) 在线安装head和bigdisk插件
直接在elasticsearch的根目录下,分别输入:
bin/plugin --install mobz/elasticsearch-head 安装head
bin/plugin --install lukas-vlcek/bigdesk 安装bigdesk
(4)scp分发安装完毕后的elasticsearch
(5)依次启动各个机器上的elasticsearch
#/usr/local/elasticsearch/bin/elasticsearch
如果启动时遇到以下报错信息:
[root@localhost elasticsearch]# ./bin/elasticsearch
{1.7.3}: Initialization Failed ...
- RuntimeException[Java version: 1.7.0_45 suffers from critical bug https://bugs.openjdk.java.net/browse/JDK-8024830 which can cause data corruption.
Please upgrade the JVM, see http://www.elastic.co/guide/en/elasticsearch/reference/current/_installation.html for current recommendations.
If you absolutely cannot upgrade, please add -XX:-UseSuperWord to the JVM_OPTS environment variable.
Upgrading is preferred, this workaround will result in degraded performance.]
解决方法:
# yum -y install java-1.8.0*
# yum remove java
查看下java版本号:是否是1.8.0(因为最新版elasticsearch需要最新的java支持)
[root@localhost elasticsearch]# java -version
openjdk version "1.8.0_71"
OpenJDK Runtime Environment (build 1.8.0_71-b15)
OpenJDK 64-Bit Server VM (build 25.71-b15, mixed mode)
问题2:
[root@localhost elasticsearch]# ./bin/elasticsearch
Can't start up: not enough memory
解决方法也是重启安装下java 就行了
(6)head显示如下:
(7)bigdisk显示如下:
二:安装logstash
(1)解压到指定目录
(2)在根木下新建一个conf目录,在里面新建一个配置文件first.conf
(3)启动logstash
执行命令: bin/logstash -f conf/first.conf
三:安装kibana
(1)解压到指定目录
(2)在根目录执行bin/kibana直接启动
(3)访问http://192.168.1.120:5601/ 配置一个ElasticSearch索引
(4)在logstach里面添加数据
(5)查看图表:刚新加的数据
四: 至此,ELK组件已经安装完毕,带图形化界面的简单日志查询分析系统就搞定了
本篇只是一个简单的入门例子,如需深入可以研究elastic的官网文档:
https://www.elastic.co/guide/index.html
本文转自yangxuncai110 51CTO博客,原文链接:http://blog.51cto.com/zlyang/1737622,如需转载请自行联系原作者