且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

ELK日志分析集群部署笔记

更新时间:2022-09-29 19:28:13

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均为最新版本: 


ELK日志分析集群部署笔记 



(1)ElasticSearch1.7.2 基于Lucene4.10.4的版本 

ELK日志分析集群部署笔记 

(2)Logstash1.5.4 

ELK日志分析集群部署笔记 


(3)Kibana4.1.2 

ELK日志分析集群部署笔记 



集群拓扑: 

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显示如下: 

ELK日志分析集群部署笔记 
ELK日志分析集群部署笔记 

(7)bigdisk显示如下: 

ELK日志分析集群部署笔记 


ELK日志分析集群部署笔记 


二:安装logstash 

(1)解压到指定目录 
(2)在根木下新建一个conf目录,在里面新建一个配置文件first.conf 

ELK日志分析集群部署笔记 


(3)启动logstash 
执行命令: bin/logstash -f conf/first.conf 

ELK日志分析集群部署笔记 



三:安装kibana 
(1)解压到指定目录 
(2)在根目录执行bin/kibana直接启动 
(3)访问http://192.168.1.120:5601/ 配置一个ElasticSearch索引 
(4)在logstach里面添加数据 

ELK日志分析集群部署笔记 


(5)查看图表:刚新加的数据 

ELK日志分析集群部署笔记 




四: 至此,ELK组件已经安装完毕,带图形化界面的简单日志查询分析系统就搞定了 

本篇只是一个简单的入门例子,如需深入可以研究elastic的官网文档: 
https://www.elastic.co/guide/index.html 



     本文转自yangxuncai110 51CTO博客,原文链接:http://blog.51cto.com/zlyang/1737622,如需转载请自行联系原作者