加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Elastic Stack (ELK 5)- 运维数据分析系统

发布时间:2021-01-12 08:35:45 所属栏目:大数据 来源:网络整理
导读:概述 本文将简单介绍运维数据分析系统 Elastic Stack,并描述其基础部署过程。 简介 ELK(Elasticsearch + Logstash + Kibana)用于日志集中分析系统,Elasticsearch 用于存储、搜索、分析数据,Logstash 用于接收并处理数据,Kibana 提供 Web UI 管理数据,

概述

本文将简单介绍运维数据分析系统 Elastic Stack,并描述其基础部署过程。

简介

ELK(Elasticsearch + Logstash + Kibana)用于日志集中分析系统,Elasticsearch 用于存储、搜索、分析数据,Logstash 用于接收并处理数据,Kibana 提供 Web UI 管理数据,客户端通过 Logstash-Forwarder 将指定的日志数据传递数据给 ELK 系统,大体流程如下图:

ELK 系统结构

后来Elastic 团队收购了 Packetbeat 团队,就建立了 Beat,Beat 是一个轻量级的数据收集平台,可以将不同的数据发送 ELK 系统,例如日志、网络数据、系统信息等等。Elastic 团队在命名时最终将 ELK + Beat 命名为 Elastic Stack,并将整个产品线的版本提升至 5.0。

之前使用 ELK 时,几个产品的版本需要对应,例如使用 Elasticsearch 1.6,Logstash 1.5,Kibana 4.1,如果版本没有正确对应,将可能导致无法正常运行。目前 Elastic 团队已将整体产品线都提升到 5.0(Kibana 已经到 4 了),这样在部署系统时免去了操心版本对应的事情。

Elastic Stack (之后简称 ES)已经不单单用于分析日志,Beat 可以代理更多类型的数据输出,Beat 可以直接输出数据至 Elasticsearch,也可输出数据给 Logstash,再由 Logstash 处理后输出到 Elasticsearch,如下图

Elastic Stack 结构图

目前发布的 Beats 产品(Beats 的几个产品均为独立发布):

  • Filebeat:收集日志数据
  • Packetbeat:收集网络数据
  • Metricbeat:收集系统及服务数据(替代Topbeat)
  • Winlogbeat:收集 Windows 事件

Elastic Stack 中还包含一个以独立产品发布的插件 X-Pack,集成了监控、报警、报表及图表的功能。X-Pack 相当于一个插件集合包,简化了以往安装相关功能插件的过程。同时 X-Pack 还提供了管理(包括用户和角色的管理)及监控的 UI 界面。本文的安装配置先不涉及这个插件,以后再独立的文章中来介绍。

安装配置 Elastic Stack 5.0

下列描述均以操作系统?Centos7 为例部署,涉及服务端和客户端两台服务器,请确保服务端所在服务器内存至少大于 2G。

步骤:

  • 1 准备工作
  • 2 安装配置 Elasticsearch
  • 3 安装配置 Kibana
  • 4 安装配置 Filebeat
  • 5 安装配置 Logstash (可选)
  • 6 安装配置 Nginx (可选)
  • 7 单独配置一个客户端

由于 FileBeat 可以直接输出数据给 Elasticsearch,因此前 4 部完成后,ES 系统已经可以运行。Nginx 用于反向代理 Kibana,生产环境中建议配置。

1 准备工作

1.1 安装 Java 环境

使用 yum 安装?Java:

 
 
  • 1
  • 1
yum install java-1.8.0-openjdk java.0-openjdk-devel

这里?java-1.8.0-openjdk-devel?非必须安装,但以后安装插件时可能会需要 Java 的编译器(javac),因此建议提前安装好。

1.2 配置 ES 的 yum 源

导入签名:

 设置 yum 源

 Elastic Stack 相关产品均需要使用这个源。

1.3 操作系统配置

官方提供了生产环境下 Elasticsearch 所在操作系统的相关建议,详见?这里

虚拟内存设置,编辑?/etc/sysctl.conf,追加:

 修改文件句柄限制,编辑?/etc/security/limits.conf,追加:

 2 安装配置 Elasticsearch 

通过 yum 安装

 启动 Elasticsearch:

 检查安装,执行

 得到类似如下结果,则说明安装正确

 Elasticsearch 配置文件在?/etc/elasticsearch/elasticsearch.yml,如果不使用 Logstash 或者 Logstash 与 Elasticsearch 不在同一服务器,那么需要使 Elasticsearch 监听到指定的 IP 地址和端口,例如修改?elasticsearch.yml?中的下边两行:

 如进行如上修改,请确保防火墙关闭或允许端口 9200 通过,可以参考这样设置

 3 安装配置 Kibana 

Kibana 读音:/ki?bana/

通过 yum 安装

 编辑配置文件?/etc/kibana/kibana.yml,修改下列两行

 启动 Kibana:

server.host?默认也是 localhost,使用 nginx 反向代理的话可以不修改,这里现将其修改为监听所有地址的 5601 端口,方便检查。

请确保防火墙关闭或允许端口 5601 通过,可以参考这样设置

 浏览器打开?http://192.168.1.150:5601(请将 192.168.1.150 换成您服务器的 ip 地址),看到如下界面说明 Kibana 安装正确。

ELK UI

4 安装配置 Filebeat

这里先将 ES 服务器当作一个客户端,部署 Filebeat 将服务器的日志也输入 Elasticsearch 系统。

通过 yum 安装

 Filebeat 默认配置会传输?/var/log/*.log?(对于 Centos 系统来说,这下边至少会有 yum.log)传输至本地的 Elasticsearch,因此不需要修改任何配置,目前 ES 系统已经可以收集日志数据了。

启动 Filebeat

 现在在浏览器中打开?http://192.168.1.150:5601(192.168.1.150 请更改为您服务器的 ip 地址):

将 index name or pattern 设置为?filebeat.*,点击?create?按钮,如下图

设置index-pattern

一切顺利的话,可以看到 ES 系统已经收集到日志数据了,如下图

ES 系统数据

5 安装配置 Logstash

通过 yum 安装:

 配置 Logstash 的输入和输出,新建输入输出配置文件:

 文件内容如下:

  • 输入:设置监听 5044 端口,接收 beats 的输入数据
  • 输出:将数据输出到 Elasticsearch
  • 启动 Logstash:

     之后我们还将部署另一台服务器作为数据输入的客户端,因此这里请确保防火墙关闭或允许端口 5044 通过,可以参考这样设置

     修改 Filebeat 将日志发送给 Logstash 
    

    Filebeat 可以将日志输入到 Elasticsearh,如刚才的配置。它也可以将日志输入给 Logstash,由 Logstash 处理日志,再将处理后的日志数据输入到 Elasticsearch。下边配置 Filebeat 将日志 输入到 Logstash。

    编辑 Filebeat 配置文件:

     注释掉 Elasticsearch output 的相关设置:

     配置输出到 Logstash:

     重新启动 Filebeat

     这时可以在操作系统上做一些产生日志的操作,例如使用 yum 安装一个工具

    在浏览器中打开?http://192.168.1.150:5601(更换 192.168.1.150 为您服务器的 ip 地址),就可以看到日志的输入,例如在这里我通过 yum 卸载了 screen 这个工具

    ES 系统示例图

    6 安装配置 Nginx

    生产环境下,出于安全及性能的考虑,应当使用反向代理来代理 Kibana,这里反向代理工具使用 Nginx。

    通过 yum 安装 Nginx,需要配置安装源,可以使用 EPEL 源或 Nginx 的源,这里使用 Nginx 的源为例:

    添加 nginx.repo:

     加入下列内容:

     通过 yum 安装 nginx:

     修改 nginx 配置,这里直接修改 default.conf

     改为如下内容

     启动 Nginx

     请确保防火墙关闭或允许端口 80 通过,可以参考这样设置

     有了反向代理,就可以将 Kibana 监听到本地端口了。

    7 配置另一台服务器作为客户端

    作为客户端的服务器只需要安装 Filebeat 即可,参见之前 1.2 配置 ES 的 yum 源来设置 yum。

    通过 yum 安装 Filebeat

     配置输出到 Logstash:

     
     

    注意 Loutput.logstash 中 hosts 需要设置为您 ES 服务器的地址。

    同样可以进行一些产生日志的操作,例如 yum 安装一个工具

    http://192.168.1.150(更换 192.168.1.150 为您服务器的 ip 地址),就可以看到日志的输入,例如在这里我通过 yum 安装了 screen 这个工具,如下图

    ES 系统示例图

    简单说一下 Kibana 的操作,右侧可以选择显示的数据列,如上图选择了 message 和 beat.hostname;右上角是时间设置,选择的是 15 分钟内的数据,点击可以修改。

    总结

    本文描述了 Elastic Stack 的安装过程,尽可能的简化了配置过程,目的在于可以快速完成环境的搭建,有数据输入,这样可以大体了解 ES 系统。在配置的过程中也仅对配置了进行简单描述,在之后的文章中会从实际功能出发,来进行详细配置、解释以及使用说明。

    本文参考 Elstaic Stack 官方文档:https://www.elastic.co/guide/index.html

    转自:http://blog.csdn.net/firstar521/article/details/52948093

    (编辑:核心网)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      热点阅读