ELK搭建实时日志分析系统

1 软件介绍

1.1 Elasticsearch

Elasticsearch is a distributed, RESTful search and analytics engine capable of solving a growing number of use cases. As the heart of the Elastic Stack, it centrally stores your data so you can discover the expected and uncover the unexpected.

Elasticsearch是一个分布式的RESTful搜索和分析引擎,能够解决越来越多的用例。 作为弹性堆栈的核心,它集中存储您的数据,所以你能够自主的操作您的数据。

大概意思是说,ES既可以为用户提供数据存储,有能为用户提供用户接口以作数据分析。

官网:https://www.elastic.co/products/elasticsearch

1.2 Logstash

Logstash is an open source, server-side data processing pipeline that ingests data from a multitude of sources simultaneously, transforms it, and then sends it to your favorite “stash.” (Ours is Elasticsearch, naturally.)

Logstash是一个开源的服务器端数据处理管道,它从多个源同时获取数据,对其进行转换,然后将其发送到您所想要的“存储”(这里主要是ES)。

大概意思是说,Logstash是一个不局限于数据源和目的源的数据管道工具,它提供了各种数据源插件,以供用户搜集、转换不同的日志。

官网:https://www.elastic.co/products/logstash

1.3 Kibana

Kibana lets you visualize your Elasticsearch data and navigate the Elastic Stack, so you can do anything from learning why you're getting paged at 2:00 a.m. to understanding the impact rain might have on your quarterly numbers.

Kibana让你可视化你的Elasticsearch数据和导航弹性堆栈。让您清晰的了解到您的但不局限于系统日志等信息的操作。

官网:https://www.elastic.co/products/kibana

2 环境搭建

2.1 软件环境要求

系统:CentOS 6.5 x86_64

Java:JDK 1.8_64bit

Nodejs:v6.10.0

软件:Elasticsearch-5.2.2、Logstash-5.2.2、Kibana-5.2.2-x86_64

2.2 Elasticsearch安装

说明:新版ES必须要使用普通用户启动,不能使用root用户。

1)下载ES安装包

https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.2.tar.gz

~]#sudo tar -xvzf elasticsearch-5.2.2.tar.gz

2)修改ES的配置文件

编辑config下的elasticsearch.yml

cluster.name: elk-sdnware

node.name: elk-node1

node.attr.rack: r1

path.data: /home/esuser/es/data

path.logs: /home/esuser/es/logs

bootstrap.memory_lock: false

bootstrap.system_call_filter: false

network.host: 192.168.200.201

http.port: 9200

discovery.zen.ping.unicast.hosts: ["192.168.200.201", "[::1]"]

discovery.zen.minimum_master_nodes: 1

gateway.recover_after_nodes: 1

http.cors.enabled: true

http.cors.allow-origin: "*"

表1 - ES配置参数说明

参数含义

cluster.name    集群名称

node.name    节点名称

node.attr.rack    默认参数描述

path.dataES    数据文件

path.logsES    日志文件路径

bootstrap.memory_lock    是否锁定使用内存,为了不产生内存交换以保证性能(CentOS7以下不支持SecComp)

bootstrap.system_call_filter    同上

network.host    网络主机

http.port    HTTP端口

discovery.zen.ping.unicast.hosts    初始节点列表

discovery.zen.minimum_master_nodes    集群至少有n个master

gateway.recover_after_nodes    n个节点启动后开始数据恢复

http.cors.enabled    是否支持跨域

http.cors.allow-origin    当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址。 /https?:\/\/localhost(:[0-9]+)?/

3)启动ES

~/bin/elasticsearch >/dev/null 2>&1 &

启动成功后访问http://192.168.200.201:9200,如下图:


4)安装Elasticsearch-head插件

该插件是为了方便简单的管理ES中的索引、集群等信息,新版head插件安装与老版ES有所差异,官方已经独立出来成为了一个插件库,需要独立安装。

a)下载head插件安装包

git clone git://github.com/mobz/elasticsearch-head.git

b)下载安装nodejs

wget https://nodejs.org/dist/v6.10.0/node-v6.10.0-linux-x64.tar.xz

tar -xvf node-v6.10.0-linux-x64.tar.xz

设置NODE环境变量,node -v、npm -v测试安装是否成功

c)进入刚下载的elasticsearch-head目录,执行npm install

~/elasticsearch-head/ ] # npm install

在执行安装head插件时会去下载phantomjs,网络不好情况下下载极慢而导致npm install执行失败,为了保证正常安装,建议下载好该安装包,默认放在/tmp/phantomjs/,当前版本使用的是phantomjs-2.1.1-linux-x86_64.tar.bz2,具体版本看安装时打印信息;

d)安装完成后,需要修改相应的web文件

i.修改服务器监听地址

目录:head/Gruntfile.js

connect: {

    server: {

        options: {

            port: 9100,

            hostname: '*',

            base: '.',

            keepalive: true

        }

    }

}

增加hostname属性,设置为*

ii.修改连接地址

目录:head/_site/app.js

修改head的连接地址:

this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";

把localhost修改成你es的服务器地址,如:

this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.200.201:9200";

e)启动head服务

elasticsearch-head ] # node_modules/grunt/bin/grunt server &

在此之前保证ES已经启动成功

打开http://192.168.200.201:9100,如下图:


2.3 Logstash安装

1)下载Logstash安装包

https://artifacts.elastic.co/downloads/logstash/logstash-5.2.2.tar.gz

~]#sudo tar -xvzflogstash-5.2.2.tar.gz

2)添加Logstash的用户(agent)配置

vim log4jes.conf,内容如下:

input {

    log4j {

        mode => "server"

        host => "192.168.200.201"

        port => 4567

    }

}

filter {

#Only matched data are send to output.

}

output {

    elasticsearch {

        action => "index"

        hosts  => ["192.168.200.201:9200"]

        index  => "cloudap-%{+YYYY.MM.dd}"

    }

}

3)模拟Log4j的java应用

a)创建一个maven项目,结构如下:


b)编辑Log4jDemo.java文件


c)修改log4j.properties配置文件


4)启动Logstash服务

logstash-5.2.2 ] # bin/logstash -f log4jes.conf>/dev/null 2>&1 &

启动成功后,运行java应用,然后打开elasticsearch-head,如图:


会看到有cloudap-2017.03.08的索引,切换数据浏览,可以查看到详细的数据信息:


2.4 Kibana安装

1)下载Kibana安装包

https://artifacts.elastic.co/downloads/kibana/kibana-5.2.2-linux-x86_64.tar.gz

~]#sudo tar -xvzf kibana-5.2.2-linux-x86_64.tar.gz

2)修改Kibana配置

kibana-5.2.2 ] # vim config/kibana.yml

server.port: 5601

server.host: “192.168.200.201”

elasticsearch.url: http://192.168.200.201:9200

kibana.index: “.kibana”

3)启动Kibana

kibana-5.2.2 ] #bin/kibana>/dev/null 2>&1 &

打开浏览器输入:http://192.168.200.201:5601

初始进入是,需要自行添加索引,如图:


创建成功,后便可以针对索引进行数据的查看了。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容