美文网首页Java-Python-Django社区运维ELK文集
【ELK 实施与部署(二)】Elasticsearch 与 Ki

【ELK 实施与部署(二)】Elasticsearch 与 Ki

作者: 苍云横渡 | 来源:发表于2018-08-17 14:21 被阅读4次

    原文地址:https://www.cloudcrossing.xyz/post/56/

    【测试环境】:Ubuntu 16.04


    【ELK 实施与部署(一)】 介绍了 Filebeat 与 Logstash 的安装,以及使用 Filebeat 作为 Logstash 的输入进行数据获取,这一部分记录以下 Elasticsearch 和 Kibana 的安装,以及将 Elasticsearch 设为 Logstash 的输出,从而完成 ELK 架构的实施与部署。


    1 Elasticsearch

    1.1 Elasticsearch 概述

    ElasticSearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。作为 Elastic Stack 的核心,它集中存储数据,帮助发现意料之中以及意料之外的情况。

    为什么要用 Elasticsearch 呢?

    • 数据查询与分析:Elasticsearch 允许执行和合并多种类型的搜索 ( 结构化、非结构化、地理位置、度量指标 )搜索方式随心而变。其聚合让我们能够从大处着眼,探索数据的趋势和模式。
    • 运行速度快:Elasticsearch 通过有限状态机实现了用于全文检索的倒排索引,实现了用于存储数值数据和位置数据的 BKD 树, 以及用于分析的列存储。 而且由于每个数据都被编入了索引,因此再也不用因为某些数据没有索引,我们可以用快到令人发指的速度使用和访问您的所有数据。
    • 可扩展性:原型环境和生产环境可无缝切换。无论 Elasticsearch 是在一个节点上运行,还是在一个包含 300 个节点的集群上运行,我们都能够以相同的方式与 Elasticsearch 进行通信。它能够水平扩展,每秒钟可处理海量事件,同时能够自动管理索引和查询在集群中的分布方式,以实现极其流畅的操作。
    • 弹性:硬件故障。网络分割。Elasticsearch 为我们检测这些故障并确保我们的集群(数据)安全和可用。
    • RESTful:Elasticsearch 使用的是标准的 RESTful API 和 JSON。此外,其还构建和维护了很多其他语言的客户端,例如 Java、Python、.NET、SQL 和 PHP 。

    1.2 Elasticsearch 安装与使用

    (1)下载 Elasticsearch 和解压进入文件夹

    • wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.0.tar.gz
    • tar -xvf elasticsearch-5.6.0.tar.gz
    • cd elasticsearch-5.6.0

    (2)启动 Elasticsearch

    进入 bin 目录,执行以下命令启动 Elasticsearch:

    • ./elasticsearch

    如果没有出现 Error ,那么 Elasticsearch 就启动成功了。

    1.3 将 Logstash 和 Elasticsearch 进行关联

    可以看到,上一部分我们已将 Filebeat 作为 Logstash 的输入了,现在我们将 Elasticsearch 作为 Logstash 的输出,这样就能将数据传给 Elasticsearch 进行分析处理了。

    (1)配置 Logstash 将 stdout 标准输出设置为 Elasticsearch。修改 logstash.conf ,修改为如下内容:

    input {
        beats {
            port => "5044"
        }
    }
    filter {
        grok {
            match => { "message" => "%{COMBINEDAPACHELOG}"}
        }
        geoip {
            source => "clientip"
        }
    }
    output {
        elasticsearch {
            hosts => [ "localhost:9200" ]
        }
    }
    

    这里新增了一个过滤器,而过滤器中配置两个插件,其中:

    • gork:支持以正则表达式的方式提取所需要的信息,其中,正则表达式又分两种,一种是内置的正则表达式(可以满足我们大部分的要求),一种是自定义的正则表达式。在这里,过滤器中的 message 代表一条一条的日志,%{COMBINEDAPACHELOG} 代表解析日志的正则表达式。
    • geoip:支持通过 IP 获取到很多的信息,包括经纬度,国家,城市,地区等信息,需要注意的是这些信息并不是用户当前访问的实际地址,而是IP所在地(包括经纬度也只是当前城市)。

    (2)启动 Filebeat、Logstash。

    • ./filebeat -e -c filebeat.yml -d "publish"
    • bin/logstash -f logstash.conf

    查看 Elasticsearch 的反应(如果没有反应的话,可以在收集日志的文件夹下新建一个 文件 1.log,输入一下内容保存退出。这样就能检测到从而在 Elasticsearch 创建一个 Index)。

    至此,Elasticsearch 安装完成,也将其配置成 Logstash 的输出,下面安装 Kibana 进行可视化操作。


    2 Kibana

    2.1 Kibana 概述

    Kibana 是一个开源的分析和可视化平台,旨在与 Elasticsearch 一起工作。我们可以使用Kibana 搜索,查看和与存储在 Elasticsearch 索引中的数据进行交互。还可以轻松地在各种图表,表格和地图中执行高级数据分析和可视化数据。

    我们用来摄取数据的工具集在 Kibana 的首页都已就绪。有了 Kibana,命令行不再是管理 Elastic Stack 各项设置的唯一途径。与此同时,管理和升级 Elastic Stack 变得更加直观,能够让更多的人上手使用。

    Console 等 Kibana 开发工具提供多种方法帮助我们开发 Elastic Stack。您可以跳过在终端键入的过程,直接处理 Elasticsearch 数据。Search Profiler 可让我们轻松查看搜索请求期间花费的时间。并且在Logstash 配置中创建复杂的 Grok 模式,使 Grok Debugger 变得轻而易举。

    2.2 Kibana 安装与使用

    (1)下载 Kibana,解压进入文件夹

    • wget https://artifacts.elastic.co/downloads/kibana/kibana-5.6.0-linux-x86_64.tar.gz
    • tar -xvf kibana-5.6.0-linux-x86_64.tar.gz
    • cd kibana-5.6.0-linux-x86_64

    (2)配置 Kibana。进入 config 文件夹,修改 kibana.yml

    • 修改主机绑定的 IP 地址为 0.0.0.0,表示全匹配。
    • 指定连接到 Elasticsearch(这里连接本机)。

    (3)启动 Kibana

    在bin目录下使用命令:./kibana 启动:

    红色框中的内容表示 Kibana 正在 5061 端口监听,访问结果如下

    首先需要配置 Index,然后点击 Create。只要收集日志的地方产生了日志,就可以在 Discover 中看到,如果进入之后看不到任何结果,可能是没有产生日志,我们可以手动创建一个 .log 文件并输入一下内容保存退出。

    至此!Elasticsearch 与 Kibana 的安装已经完成!贯穿了从 Filebeat 到logstash,再到 Elasticsearch 和 Kibana 的整个过程!


    参考链接:Linux操作系统安装ELK stack日志管理系统--(2)Elasticsearch与Kibana的安装与使用以及和Logstash的连接

    相关文章

      网友评论

        本文标题:【ELK 实施与部署(二)】Elasticsearch 与 Ki

        本文链接:https://www.haomeiwen.com/subject/iyrzbftx.html