ElasticSearch实战
ElasticSearch实战-入门
1.概述
今天接着《ElasticSearch实战-日志监控平台》一文来给大家分享后续的学习,在《ElasticSearch实战-日志监控平台》中给大家介绍一个日志监控平台的架构方案,接下来给大家分享如何去搭建部署这样一个平台,给大家做一个入门介绍。下面是今天的分享目录:
- 搭建部署 Elastic 套件
- 运行集群
- 截图预览
下面开始今天的内容分享。
2.搭建部署 Elastic 套件
搭建 Elastic 套件较为简单,下面我们开始去搭建部署相关套件,首先我们准备必要的环境。
2.1 基础软件
大家可以 Elastic 的官方网站下载对应的安装包,地址如下所示:
[下载地址]
另外,一个基础环境就是需要用到 JDK,ES 集群依赖 JDK,地址如下所示:
[下载地址]
2.2 Logstash 部署
这里我们将 Logstash 的服务部署在中心节点中,其核心配置文件如下所示:
- central.conf

input {
redis {
host => "10.211.55.18"
port => 6379
type => "redis-input"
data_type => "list"
key => "key_count"
}
}
filter {
grok {
match => ["message", "%{IPORHOST:client} (%{USER:ident}|-) (%{USER:auth}|-) \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:http_version})?|-)\" %{NUMBER:response} %{NUMBER:bytes} \"(%{QS:referrer}|-)\" \"(%{QS:agent}|-)\""]
}
kv {
source => "request"
field_split => "&?"
value_split => "="
}
urldecode {
all_fields => true
}
}
output {
elasticsearch {
cluster => "elasticsearch"
codec => "json"
protocol => "http"
}
}

其代理节点,分别部署在日志生产节点之上,核心配置文件如下所示:
- shipper.conf

input {
file {
type => "type_count"
path => ["/home/hadoop/dir/portal/t_customer_access.log"]
exclude => ["*.gz", "access.log"]
}
}
output {
stdout {}
redis {
host => "10.211.55.18"
port => 6379
data_type => "list"
key => "key_count"
}
}

2.3 Elasticsearch 部署
接着,我们部署 ES 集群,配置较为简单,其配置内容如下所示:
- elasticsearch.yml
node.name: "node1"
这里我只配置了其节点名称信息,集群名称使用默认的,若大家需要配置其他信息可自行处理,需要注意的是,这里在实用 scp 命令分发到其他节点时,需要修改其属性值,保持每个节点的 node.name 值不一样即可。
另外,在安装插件 ES 集群的相关插件时,可以使用以下命令:
- head 插件
sudo elasticsearch/bin/plugin -install mobz/elasticsearch-head
- bigdesk 插件
sudo elasticsearch/bin/plugin -install lukas-vlcek/bigdesk
其对应的 Web UI 界面如下图所示:
- head插件的界面

- bigdesk的界面

关于其他的 ES 集群的插件,搭建可以根据实际业务需求进行选择性的安装,这里就不多赘述了。
2.4 Kibana 部署
这里我们需要安装一个能够去可视化 ES 集群数据的工具,这里我们选择 Kibana 工具去可视化我们的数据,其安装较为简单,只需配置对应的核心文件即可,配置如下:
kibana.yml
elasticsearch_url: "http://10.211.55.18:9200"
这里去可视化 node1 节点 ES 集群中数据。
3.运行集群
接着,我们启动整个系统,启动步骤如下所示:
- 启动 Redis
[hadoop@dn1 ~]$ redis-server &
- 启动代理节点(分别在其代理节点启动shipper)
bin/logstash agent --verbose --config conf/shipper.conf --log logs/stdout.log &
- 启动中心服务
bin/logstash agent --verbose --config conf/central.conf --log logs/stdout.log &
- 启动 ES 集群(分别在 ES 节点启动)
bin/elasticsearch start
- 启动 Kibana 服务
bin/kibana
4.预览截图
这里,我们可以预览收集的日志,日志信息我只抽取了几条,截图如下:

我们还可以使用筛选功能,选取我们需要观察的数据结果,这里我们筛选了 IP 和 AppName 属性进行观察,如下图所示:

5.总结
这里需要注意的是,若是我们首次启动 Kibana 服务,收集日志信息为空的情况下,在我们创建索引时,Settings 模块下的界面中 Create 按钮会是灰色状态,导致无法创建,这里大家在创建的时候需要保证我们有日志已被收集存储到 ES 集群。如下图,由于我已收集存储日志到 ES 集群,所以按钮呈现绿色状态,供点击创建。如下图所示:

6.结束语
这篇博客就和大家分享到这里,如果大家在研究学习的过程当中有什么问题,可以加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!
邮箱:smartdengjie@gmail.com
QQ群(董的博客):306184597
温馨提示:请大家加群的时候写上加群理由(姓名+公司/学校),方便管理员审核,谢谢!
热爱生活,享受编程,与君共勉!
作者:哥不是小萝莉
ElasticSearch实战的更多相关文章
- ElasticSearch实战-入门
http://www.cnblogs.com/smartloli/ 1.概述 今天接着<ElasticSearch实战-日志监控平台>一文来给大家分享后续的学习,在<ElasticS ...
- ElasticSearch实战-日志监控平台
1.概述 在项目业务倍增的情况下,查询效率受到影响,这里我们经过讨论,引进了分布式搜索套件——ElasticSearch,通过分布式搜索来解决当下业务上存在的问题.下面给大家列出今天分析的目录: El ...
- ElasticSearch实战-编码实践
1.概述 前面在<ElasticSearch实战-入门>中给大家分享如何搭建这样一个集群,在完成集群的搭建后,今天给大家分享如何实现对应的业务功能模块,下面是今天的分享内容,目录如下所示: ...
- I-team 博客全文检索 Elasticsearch 实战
一直觉得博客缺点东西,最近还是发现了,当博客慢慢多起来的时候想要找一篇之前写的博客很是麻烦,于是作为后端开发的楼主觉得自己动手丰衣足食,也就有了这次博客全文检索功能Elasticsearch实战,这里 ...
- ElasticSearch实战系列二: ElasticSearch的DSL语句使用教程---图文详解
前言 在上一篇中介绍了ElasticSearch集群和kinaba的安装教程,本篇文章就来讲解下 ElasticSearch的DSL语句使用. ElasticSearch DSL 介绍 Elastic ...
- ElasticSearch实战系列三: ElasticSearch的JAVA API使用教程
前言 在上一篇中介绍了ElasticSearch实战系列二: ElasticSearch的DSL语句使用教程---图文详解,本篇文章就来讲解下 ElasticSearch 6.x官方Java API的 ...
- ElasticSearch实战系列四: ElasticSearch理论知识介绍
前言 在前几篇关于ElasticSearch的文章中,简单的讲了下有关ElasticSearch的一些使用,这篇文章讲一下有关 ElasticSearch的一些理论知识以及自己的一些见解. 虽然本人是 ...
- ElasticSearch实战系列五: ElasticSearch的聚合查询基础使用教程之度量(Metric)聚合
Title:ElasticSearch实战系列四: ElasticSearch的聚合查询基础使用教程之度量(Metric)聚合 前言 在上上一篇中介绍了ElasticSearch实战系列三: Elas ...
- ElasticSearch实战系列六: Logstash快速入门和实战
前言 本文主要介绍的是ELK日志系统中的Logstash快速入门和实战 ELK介绍 ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是 ...
随机推荐
- 使用ZeroMQ(clrzmq)实现异步通信
ZeroMQ是对Socket的封装,通过组合多种类型的结点可以实现复杂的网络通信模式.而且ZeroMQ设计简单,可以有多种平台实现,对于跨平台项目是一个福音. clrzmq是ZeroMQ的C#语言的实 ...
- 匿名方法,Lambda表达式,高阶函数
原文:匿名方法,Lambda表达式,高阶函数 匿名方法 c#2.0引入匿名方法,不必创建单独的方法,因此减少了所需的编码系统开销. 常用于将委托和匿名方法关联,例如1. 使用委托和方法关联: this ...
- w3wp与w3svc
如何找到w3wp与w3svc的对应关系 在生产环境中,一般会有多个IIS进程在运行,这里面可能是有Web Garden的设置,也可能是有多个application pool在运行.而我们经常在 ...
- Cocos2d-x学习笔记(9)(CCTextFieldTTF使用输入框)
1.CCTextFieldTTF创建和使用 CCTextFieldTTF::create(const char* placeholder,const char* fontName.float font ...
- 每位iOS开发人员不容错过的10大实用工具
内容简介 1.iOS简介 2.iOS开发十大实用工具之开发环境 3.iOS开发十大实用工具之图标设计 4.iOS开发十大实用工具之原型设计 5.iOS开发十大实用工具之演示工具 6.iOS开发十大实用 ...
- TCP连接建立过程中为什么需要“三次握手”(转)
传输控制协议(Transmission Control Protocol, TCP)是一种面向连接的.可靠的.基于字节流的运输层(Transport layer)通信协议.是专门为了在不可靠的互联网络 ...
- chrome主页被篡改为360该溶液的导航
昨天,安装游戏后,,发现chrome该主页被篡改为360导航. 进入chrome设置更改主页,再次启动chrome或360导航,后来头发今天chrome快捷方式目标再加上一堆的属性后面360网站导航, ...
- 轻松搭建Windows8云平台开发环境
原文:轻松搭建Windows8云平台开发环境 Windows Store应用是基于Windows 8操作系统的新一代Windows应用程序,其开发平台以及运行模式和以往传统平台略有不同.为了帮助更多开 ...
- Android设计模式(十)--生成器模式
回头看自己写的东西,大概Android当自己控制的定义,编写代码适用性比较高.但是,看看没有什么技术含量,因此,当在学习设计模式,想想有些东西是否可以改善,例如: 自己定义Dialog是Android ...
- 读书时间《JavaScript高级程序设计》三:函数,闭包,作用域
上一次看了第6章,面向对象.这里接着看第7章. 第7章:函数表达式 定义函数有两种方式:函数声明.函数表达式 //函数声明 function functionName(arg0,arg1,arg2){ ...