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.结束语

  这篇博客就和大家分享到这里,如果大家在研究学习的过程当中有什么问题,可以加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
目录
相关文章
|
Ubuntu 编译器 开发工具
|
5月前
|
IDE 数据库 开发工具
SQLALCHEMY中DeclarativeBase,MappedAsDataclass
Python 中 SQLAlchemy 中这一开源库的使用方法
250 3
|
7月前
|
监控 安全 Linux
Linux如何部署服务并设置为开机自启
系统ctl命令用于管理Linux服务,包括启动、停止、重启和重载配置等操作。journalctl命令可查看特定服务日志。编写服务文件时需定义[Unit]、[Service]和[Install]部分,通过systemctl管理新服务并设置开机自启。
667 14
|
6月前
|
存储 关系型数据库 调度
|
9月前
|
XML Java 数据格式
常用SpringBoot注解汇总与用法说明
这些注解的使用和组合是Spring Boot快速开发和微服务实现的基础,通过它们,可以有效地指导Spring容器进行类发现、自动装配、配置、代理和管理等核心功能。开发者应当根据项目实际需求,运用这些注解来优化代码结构和服务逻辑。
581 12
|
消息中间件 存储 中间件
分布式消息中间件基础
消息中间件是一种基于异步消息传递的分布式系统通信工具,核心功能包括消息传输、存储、路由与投递,能够实现系统解耦、异步处理和流量削峰。其主要组件包括生产者、消费者、Broker、主题/队列等,支持点对点和发布-订阅两种消息模型。主流中间件如Kafka(高吞吐)、RabbitMQ(灵活路由)、RocketMQ(事务支持)各有特色,适用于不同场景。此外,中间件还涉及多种协议(AMQP、MQTT等)、可靠性传输机制(持久化、确认机制)、顺序性与重复性问题解决以及事务支持(两阶段提交、本地消息表等)。选择中间件需根据业务需求权衡性能、功能和运维成本。
613 6
|
JSON 缓存 JavaScript
如何解决跨域问题?
除了上述方法外,还有一些其他的跨域解决方案,如`postMessage` API等,可以根据具体的项目需求和场景选择合适的方法来解决跨域问题。
469 51
|
移动开发 JSON JavaScript
|
编解码 移动开发 HTML5
简要描述多媒体的格式都有哪些
【10月更文挑战第5天】简要描述多媒体的格式都有哪些。
562 3
|
缓存 负载均衡 安全
如何应对DDoS攻击:技术策略与实践
【8月更文挑战第20天】DDoS攻击作为一种常见的网络威胁,对信息系统的安全稳定运行构成了严峻挑战。通过采用流量清洗、CDN、负载均衡、防火墙与IPS、协议与连接限制、强化网络基础设施、实时监测与响应以及专业DDoS防护服务等策略,企业可以构建更加健壮的防御体系,有效应对DDoS攻击。然而,防御DDoS攻击的最佳方法是预防,企业应定期进行风险评估和安全演练,及时更新和强化安全措施,以提高网络的抵御能力和应对能力。