ELK搭建实时日志分析平台

导言

ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成,ELK平台可以同时实现日志收集、日志搜索和日志分析的功能。对于生产环境中海量日志信息的分析处理无疑不是一个好的解决方案。

官方网站:https://www.elastic.co/

1).Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

2).Logstash是一个接收,处理,转发日志的工具。

3).Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在Elasticsearch索引(index)里的数据,使用各种不同的图表、表格、地图等来进行数据的可视化。

先上一个原理图:



上图来自“摆渡者”

我相信,了解大数据的小伙伴们都对于上面这张图片应该不陌生,一看就会明白。类似我们的webserver=>flume=>kafka这么一条线。这里Logstash收集app、webServer产生的日志,并存放到ES集群中,而Kibana则从ES集群中定义的index生成图表,再返回给Browser。

ELK平台搭建

组件版本选择:

Centos6.4+

Jre1.7+[我原来就安装了jdk1.8,这个就没有管了]

ElasticSearch: 2.1.1

Logstash: 2.1.1[运行依赖于Java环境]

Kibana: 4.3.1

下载地址:

官网下载:https://www.elastic.co/downloads/,官网速度慢的话,你也可以从我们分享的百度云盘中下载,里面包含了所有软件

链接:http://pan.baidu.com/s/1eROKwDk 密码:w7uy

下载完成之后,就开始安装

说明:elk似乎是不能够使用root用户的,所以我们得新建一个用户

[root@hadoop000 ~]# useradd liuge

我一般是喜欢把下载的软件放在当前用户家目录下的softwares下,软件的下载存放位置看你习惯就好

[liuge@hadoop000 ~]$ cd software/
[liuge@hadoop000 software]$ ls
elasticsearch-2.1.1.zip logstash-2.1.1.zip
kibana-4.3.1-linux-x64.tar.gz
[liuge@hadoop000 software]$

接着就开始一个一个的解压安装

ElasticSearch

解压:

[liuge@hadoop000 software]$ tar -zxvf elasticsearch-2.1.1.zip -C ../app/

安装head插件:

[liuge@hadoop000 app]$ cd elasticsearch/
[liuge@hadoop000 elasticsearch]$ ./bin/plugin install mobz/elasticsearch-head

查看是否安装成功:

[liuge@hadoop000 elasticsearch]$ cd plugins/
[liuge@hadoop000 plugins]$ ls
head
[liuge@hadoop000 plugins]$
#看见head就说明没有什么问题了

接下来,就是开始简单的配置啦

[liuge@hadoop000 elasticsearch]$
[liuge@hadoop000 elasticsearch]$ vim config/elasticsearch.y
#只需要修改以下几条信息就好
#名称任意取
cluster.name=liuge_cluster
node.name=node0000
#这里的data/logs目录需要自己创建
path.data=/home/liuge/elasticsearch/data
path.logs=/home/liuge/elasticsearch/logs
#主机设置为自己的主机名就好
network.host=hadoop000
network.port=9200

上面的配置设置好了之后,就是可以开始启动啦:

[liuge@hadoop000 elasticsearch]$ ./bin/elasticsearch

查看是否正常启动,jps查看一下

[liuge@hadoop000 ~]$ jps
9954 Elasticsearch
10086 Jps
[liuge@hadoop000 ~]$
#可以看见,是有进程的

同时,也是可以通过web端访问的,主机+9200:

我这里是http://hadoop000:9200

上面显示了配置的name,cluster_name以及安装的版本等信息。

刚刚安装的head插件,它是一个用浏览器跟ES集群交互的插件,可以查看集群状态、集群的doc内容、执行搜索和普通的Rest请求等。访问地址:http://hadoop000:9200/_plugin/head

Logstash

Logstash是一个接收,处理,转发日志的工具。

下面,开始安装,其实logstash解压出来就可以使用了,比较简单。

[liuge@hadoop000 software]$ unzip logstash-2.1.1.zip

解压出来,之后,就可以编写我们的配置文件了,这里我的配置文件是放在解压目录下的config目录下,没有这个目录可以自己创一个

[liuge@hadoop000 logstash]$ vim config/test1.conf

然后再里面,书写我们的代码,我这里就先直接把代码贴进去了,可以看着理解一下,

说明,我们的目的是从nginx服务器获取日志文件,然后,把文件output到es.就是这么简单:

input {
file {
#这个是你自己的nginx日志的文件位置
path => "/home/hadoop/data/project/logs/access.log"
start_position => beginning
}
}
filter { }
output {
elasticsearch {
#我们的es的地址
hosts => "hadoop000:9200"
#设置一个es的索引,用于kibana使用
index => "python-logstash-elasticsearch-kibana"
}
stdout { codec => rubydebug }
}

说明一下,我这个是依据官网上的案例自己修改的,基本上就是最简单的例子了。ps:官网是一个好的学习资源,希望大家不要浪费

分析:从上面的例子中,可以看出,写配合文件,基本上就是写inout,filter,output这三部分

这一点也是很像我们flume里面的agent的三个组件

接下来,我们就来启动我们的配置文件,开始日志的收集

[root@hadoop000 logstash]# ./bin/logstash agent -f config/test1.conf
Settings: Default filter workers: 1
Logstash startup completed
#看见上面的startup就说明ok啦

Kibana

Kibana是一个开源的分析与可视化平台,是一个用来做日志可视化的工具

同样,kibana的安装也是直接解压就好

[liuge@hadoop000 software]$ unzip kibana-4.3.1-linux-x64.tar.gz

来到,解压后的目录,修改默认的配合文件

[liuge@hadoop000 kibana]$ cd config/
[liuge@hadoop000 config]$ ls
kibana.yml
[liuge@hadoop000 config]$ vim kibana.yml #这里修改以下几条
server.port: 5601
server.host: "hadoop"
elasticsearch.url: http://hadoop000:9200
kibana.index:".kibana" #:wq保存退出

启动,

[liuge@hadoop000 ~]$ cd app/kibana/

使用浏览器访问web界面,地址:

到这里,我们已经成功安装好了ELK这个平台在我们自己的机器上

接下来,就是开始实时日志的统计:

任务需求:统计日志中404记录的条数,并且在页面上实时更新

开始

1.在kibana中的setting页面中new一个index

2.来到我们的发现页面

3.这里写我们的筛选条件,然后保存



设置名称:

4.来到可视化选项



在可视化中,我们可以创建各类图表

这里我们选一个饼图

5.对我们的图形进行设计

6.保存为仪表盘的

7.来到仪表盘

8.设置图表数据的更新周期

设置更新周期之后,我们的就可以看见数据在动态变化了,还是很有意思的,如果,感兴趣,不妨一试哟

由于我也只是初学者,只能先做这么一个简单的东西,不过,这个示例,起码,是把整个流程走通了,后面还会不断学习的

ELK搭建实时日志分析平台的更多相关文章

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

    本文书接前回<ELK搭建实时日志分析平台之一ElasticSearch> 文:铁乐与猫 四.安装Logstash logstash是一个数据分析软件,主要目的是分析log日志. 1)下载和 ...

  2. ELK搭建实时日志分析平台之一ElasticSearch搭建

    文:铁乐与猫 系统:CentOS Linux release 7.3.1611 (Core) 注:我这里为测试和实验方便,ELK整套都装在同一台服务器环境中了,生产环境的话,可以分开搭建在不同的服务器 ...

  3. 【转】ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台

    [转自]https://my.oschina.net/itblog/blog/547250 摘要: 前段时间研究的Log4j+Kafka中,有人建议把Kafka收集到的日志存放于ES(ElasticS ...

  4. 【Big Data - ELK】ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台

    摘要: 前段时间研究的Log4j+Kafka中,有人建议把Kafka收集到的日志存放于ES(ElasticSearch,一款基于Apache Lucene的开源分布式搜索引擎)中便于查找和分析,在研究 ...

  5. [Big Data - ELK] ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台

    ELK平台介绍 在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段: 以下内容来自: http://baidu.blog.51cto.com/71938/1676798 日志主要包括系统日志. ...

  6. ELK(ElasticSearch+Logstash+ Kibana)搭建实时日志分析平台

    一.简介 ELK 由三部分组成elasticsearch.logstash.kibana,elasticsearch是一个近似实时的搜索平台,它让你以前所未有的速度处理大数据成为可能. Elastic ...

  7. 13: ELK(ElasticSearch+Logstash+ Kibana)搭建实时日志分析平台

    参考博客:https://www.cnblogs.com/zclzhao/p/5749736.html 51cto课程:https://edu.51cto.com/center/course/less ...

  8. 手把手教你搭建 ELK 实时日志分析平台

    本篇文章主要是手把手教你搭建 ELK 实时日志分析平台,那么,ELK 到底是什么呢? ELK 是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch.Logstash 和 Kiban ...

  9. asp.net core结合NLog搭建ELK实时日志分析平台

    0.整体架构 整体架构目录:ASP.NET Core分布式项目实战-目录 一.介绍ELK 1.说明(此篇ELK采用rpm的方式安装在服务器上)-牛刀小试 承接上一篇文章的内容准备部署ELK来展示asp ...

随机推荐

  1. Leetcode之深度优先搜索(DFS)专题-1123. 最深叶节点的最近公共祖先(Lowest Common Ancestor of Deepest Leaves)

    Leetcode之深度优先搜索(DFS)专题-1123. 最深叶节点的最近公共祖先(Lowest Common Ancestor of Deepest Leaves) 深度优先搜索的解题详细介绍,点击 ...

  2. Leetcode之回溯法专题-131. 分割回文串(Palindrome Partitioning)

    Leetcode之回溯法专题-131. 分割回文串(Palindrome Partitioning) 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串. 返回 s 所有可能的分割方案. ...

  3. Leetcode之回溯法专题-47. 全排列 II(Permutations II)

    Leetcode之回溯法专题-47. 全排列 II(Permutations II) 给定一个可包含重复数字的序列,返回所有不重复的全排列. 示例: 输入: [1,1,2] 输出: [ [1,1,2] ...

  4. 在C和C++中struct与typedef struct的区别详细介绍

    c中测试code struct Cmstruct { int c; } Cm; // Cm是一个变量 typedef struct MyStruct //这里的 Mystruct 可以省略 { int ...

  5. Redis设计原理

    1.简介 Redis中的每个Key-Value在内存中都会被划分成DictEntry.RedisObject以及具体对象,其中DictEntry又分别包含指向Key和Value的指针(以RedisOb ...

  6. P2774 方格取数问题 网络最大流 割

    P2774 方格取数问题:https://www.luogu.org/problemnew/show/P2774 题意: 给定一个矩阵,取出不相邻的数字,使得数字的和最大. 思路: 可以把方格分成两个 ...

  7. zstu19一月月赛 duxing201606的原味鸡树

    duxing201606的原味鸡树 题意: 给定一颗有n(n<=1e9)个节点的完全二叉树,1e5次询问,问某个节点有几个子节点. 思路: 自己在月赛上没有思路,问了zfq才知道. 设两个指标, ...

  8. 洛谷P1582 倒水 二进制 lowbit __builtin_popcount

    P1582 倒水:https://www.luogu.org/problemnew/show/P1582 题意: 给定n瓶装有1升的水瓶,每次可以把两瓶装水量相同的水和成一瓶,问最少还要增加几瓶装有1 ...

  9. codeforces 284 C. Cows and Sequence(线段树)

    题目链接:http://codeforces.com/contest/284/problem/C 题意:就是给出3个操作 1)是将前i 个数加x 2)在数组最后添加一个数x 3)删除数组最后的那个数 ...

  10. codeforces 459 C. Pashmak and Buses(思维)

    题目链接:http://codeforces.com/problemset/problem/459/C 题意:有n个人,k辆车,d天要求没有两个人在d天都坐在一起.输出坐的方法. 题解:这题很有意思, ...