安装测试环境:Ubuntu 16.04.2 LTS

前言

(1)ELK是Elasticsearch,Logstash,Kibana 开源软件的集合,对外是作为一个日志管理系统的开源方案。它可以从任何来源,任何格式进行日志搜索,分析获取数据,并实时进行展示。

(2)基本软件作用如下:

1、Filebeat:监控日志文件、转发,获取指定路径的日志文件,传输日志文件给Logstash;

2、Logstash: 日志收集,管理,存储,转发日志给Elasticsearch进行处理;

3、Elasticsearch:搜索,提供分布式全文搜索引擎,搜索是实时进行处理的,对数据进行索引和聚合等;

4、Kibana :日志的过滤web展示,图形界面话操作日志记录。别名Elasticsearch Dashboard 
顾名思义是基于游览器的Elasticsearch分析和仪表盘工具;

(3)官网地址:https://www.elastic.co

(4)分支软件官方文档地址:

1、Logstash官方文档地址:https://www.elastic.co/guide/en/logstash/current/index.html

2、Filebeat官方文档地址:https://www.elastic.co/guide/en/beats/filebeat/current/index.html

3、Elasticsearch官方文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

4、Kibana 官方文档地址:https://www.elastic.co/guide/en/kibana/current/index.html

ELK之间的架构关系

最简单的一个安装ELK的架构图如下:

以下是各数字代表箭头的含义:

(1)第1、2步代表使用FileBeat获取Tomcat服务器上的日志。当启动Filebeat时,它将启动一个或多个prospectors (检测者),查找Tomcat上指定的日志文件,作为日志的源头等待输出到Logstash。

(2)第3步代表Logstash从FileBeat获取日志文件。Filebeat作为Logstash的输入input将获取到的日志进行处理(FileBeat其实就是Logstash的一个输入插件beats,具体的处理过程后边学习),将处理好的日志文件输出到Elasticsearch进行处理。

(3)第4步代表Elasticsearch得到Logstash的数据之后进行相应的搜索存储操作。将写入的数据可以被检索和聚合等以便于搜索操作。

(4)第5代表Kibana 通过Elasticsearch提供的API将日志信息可视化的操作。

上述的1-5步骤中,我们可以看出一个Tomcat服务器产生的日志文件,如何由ELK系统获取,传输,处理,存储,可视化等操作的。

明白了ELK个软件的关系,那么安装起来就相对简单了很多,不会出现他们之间不知道具有什么关系的问题,下边就开始具体的安装过程。

Logstash安装与使用

Logstash官方文档地址:https://www.elastic.co/guide/en/logstash/current/index.html

根据上图中的架构图的话,应该是先安装FileBeat的,其实FileBeat只是Logstash的一个输入插件beats,Logstash具有很多输入插件,例如:标准输入插件stdin、文件输入插件file、syslog输入插件等等。

具体的Logstash输入插件可以参考官方文档:https://www.elastic.co/guide/en/logstash/current/input-plugins.html

既然,Logstash可以有多个输入插件,那么就使用最简单的方式进行Logstash的安装与验证工作。

一、Logstash安装

(1)确保JDK版本为1.8以上

(2)下载Logstash并解压

下载地址:https://www.elastic.co/downloads/logstash

选择红色框中版本!右键复制下载地址

这里为:https://artifacts.elastic.co/downloads/logstash/logstash-5.2.1.tar.gz

(3)使用wget下载:

(4)等待下载完成后解压:

使用tar -xvf logstash-5.1.1.tar.gz 命令解压文件,解压后使用cd命令进入文件夹内部:

主要文件夹包含bin、data、lib、config等。其中bin包含了一写可执行脚本文件,data是用于存储数据的,lib是一些系统所依赖的jar文件,config包含一些配置文件。

(5)要测试Logstash安装,运行最基本的Logstash管道:

-e 参数表示执行后边的语句,标志使您能够直接从命令行指定配置。在命令行中指定配置允许您快速测试配置,而无需在迭代之间编辑文件。示例中的管道从标准输入stdin获取输入,并以结构化格式将输入移动到标准输出stdout。

(6)等待片刻等提示信息之后,就可以在控制台输入任何内容,他都会输出:

至此,一个Logstash的安装与使用完成!

二、Logstash使用配置文件的方式运行

上述,是通过命令行运行的,下边就是通过配置文件运行的一个完整的例子:

首先创建一个名为logstash.conf的配置文件放置在logstash-5.1.1目录下,内容就是刚才使用命令行方式的代码,如下:

然后在终端上运行:

bin/logstash -f logstash.conf

-f 表示指定使用哪一个配置文件进行执行。

三、Logstash基本原理

Logstash管道有两个必需的元素,输入和输出,以及一个可选元素,过滤器。输入插件从源消耗数据,过滤器插件根据您指定的内容修改数据,输出插件将数据写入目标。如下图:

Logstash事件处理管道有三个阶段:输入→过滤器→输出。输入生成事件,过滤器修改它们,并将输出发送到其他地方。输入和输出支持编解码器,使您能够在数据进入或退出流水线时对其进行编码或解码,而无需使用单独的过滤器。也就是说,其实Logstash是一个input–decode –filter–encode–output的数据流!

使用Filebeat将日志行发送到Logstash

在创建Logstash管道之前,可以配置Filebeat以将日志行发送到Logstash。Filebeat客户端是一个轻量级的,资源友好的工具,他可以从服务器上的文件中收集日志,并将这些日志转发到Logstash实例进行处理。

Filebeat设计用于可靠性和低延迟。 Filebeat占用主机上轻量级的资源,Beats input插件可以最大限度地减少对Logstash实例的资源需求。

注意:

在实际的开发和生产环境中,Filebeat在运行Logstash实例机器的单独机器上运行。为了本教程的目的,Logstash和Filebeat在同一台机器上运行。

默认情况下Logstash安装的时候,已经包括Beats输入插件。Beats输入插件使Logstash能够从Elastic Beats框架中接收事件,这意味着任何写入Beat框架的Beat(如Packetbeat和Metricbeat)都可以将事件数据发送到Logstash。

一、下载安装Filebeat

由于新版本中已经默认安装了Filebeat插件,下边只是简要介绍:

(1)下载地址:https://www.elastic.co/downloads/beats/filebeat

(2)同样右键复制下载地址,通过wget下载:

(3)通过 tar -xvf filebeat-5.2.1-Linux-x86_64.tar.gz 解压:

(4)修改配置文件将Tomcat服务器和Filebeat连接起来:

打开位于Filebeat安装目录中的filebeat.yml文件,修改需要检测的Tomcat服务器的文件位置:

其中:/home/xuliugen/www/ufind/logs/*.log 是我Tomcat服务器下项目的日志文件。并且已经开启了Tomcat。

(5)修改配置文件将Filebeat和Logstash连接起来:

同样是修改filebeat.yml文件,将output.elasticsearch注释掉,并打开Logstash的注释,修改之后内容如下:

保存更改。

(6)启动Filebeat

在数据源计算机上,使用以下命令运行Filebeat:

./filebeat -e -c filebeat.yml -d "publish"

Filebeat将尝试在端口5044上连接。直到Logstash探测到活动的Beats插件开始,该端口将不会有任何内容,因此,您看到的有关无法在该端口上连接的任何消息是正常的。

如果配置成功的话,就会去读取你指定的日志文件,如下:

(6)修改Logstash的配置文件

由于使用Filebeat作为输入,则需要修改相应的输入插件,修改前几步创建的logstash.conf文件,修改后的配置文件如下:

这里将beats(就是Filebeat)插件作为输入插件,端口号为5044,通过标准输出插件stdout 将数据显示在控制台中,其中stdout{} 里的codec => rubydebug 其中,rubydebug就是一种Codec,一般也只用在stdout插件中,作为配置测试或者调试的工具。

要验证您的配置,请运行以下命令:

bin/logstash -f logstash.conf --config.test_and_exit

--config.test_and_exit 选项将解析配置文件并报告任何出现错误的错误。

如果配置文件通过配置测试,请使用以下命令启动Logstash:

bin/logstash -f logstash.conf --config.reload.automatic

--config.reload.automatic 选项启用自动配置重新加载,这样的话你就不必在每次修改配置文件时停止和重新启动Logstash。

如果配置成功的话,如果你的Tomcat服务器有日志更新,在Logstash和Filebeat都会显示出来:

这个时候Filebeat也不会在报错,因为已经在5044端口和Logstash建立了连接。

170228、Linux操作系统安装ELK stack日志管理系统--(1)Logstash和Filebeat的安装与使用的更多相关文章

  1. Centos7 之安装Logstash ELK stack 日志管理系统

    一.介绍 The Elastic Stack - 它不是一个软件,而是Elasticsearch,Logstash,Kibana 开源软件的集合,对外是作为一个日志管理系统的开源方案.它可以从任何来源 ...

  2. CentOS 7下安装Logstash ELK Stack 日志管理系统(上)

    介绍 The Elastic Stack - 它不是一个软件,而是Elasticsearch,Logstash,Kibana 开源软件的集合,对外是作为一个日志管理系统的开源方案.它可以从任何来源,任 ...

  3. CentOS 7下安装Logstash ELK Stack 日志管理系统(下)

    修改防火墙,对外开放tcp/5601 [root@elk elk]# firewall-cmd --permanent --add-port=5601/tcpSuccess[root@elk elk] ...

  4. Linux操作系统安装与VMTools的安装

    Linux操作系统安装:虚拟机+RedHat 1.安装虚拟机VMware_WorkstationV7.1.3 2.安装RedHat 自动安装(会自动安装VMTools): 打开虚拟机-->新建虚 ...

  5. 离线部署ELK+kafka日志管理系统【转】

    转自 离线部署ELK+kafka日志管理系统 - xiaoxiaozhou - 51CTO技术博客http://xiaoxiaozhou.blog.51cto.com/4681537/1854684 ...

  6. 达梦数据库学习(一、linux操作系统安装及数据库安装)

    达梦数据库学习(一.linux操作系统安装及数据库安装) 环境介绍: 使用VM12+中标麒麟V7.0操作系统+达梦8数据库 一.linux系统搭建 本部分没有需要着重介绍,注意安装时基本环境选择&qu ...

  7. linux 操作系统安装

    操作系统安装 安装虚拟机软件:一路Next即可 VMWare:如果14版本不支持你的CPU,就换成12版本 Virtual Box:比VMWare小很多 安装ubuntu操作系统:比较美观,实用性强 ...

  8. Linux云计算-01_介绍以及Linux操作系统安装

    1 学习目的 兴趣爱好 技能提升 找到满意的工作 2 什么是云计算 云计算(cloud computing)是分布式计算的一种,指的是通过网络"云"将巨大的数据计算处理程序分解成无 ...

  9. 日志分析平台ELK之日志收集器logstash

    前文我们聊解了什么是elk,elk中的elasticsearch集群相关组件和集群搭建以及es集群常用接口的说明和使用,回顾请查看考https://www.cnblogs.com/qiuhom-187 ...

随机推荐

  1. ubuntu下创建.net core时出现 Failed to create prime the NuGet cache

    https://docs.microsoft.com/en-us/aspnet/core/getting-started 根据微软给出的文档运行第一个web程序出现错误 Failed to creat ...

  2. python 脚本(获取指定文件夹、指定文件格式、的代码行数、注释行数)

    1.代码的运行结果: 获取 指定文件夹下.指定文件格式 文件的: 总代码行数.总注释行数(需指定注释格式).总空行数: #coding: utf-8 import os, re # 代码所在目录 FI ...

  3. .Net程序员面试 中级篇 (回答Scott Hanselman的问题)

    继<.Net 程序员面试 C# 语言篇 (回答Scott Hanselman的问题)>跟<.Net程序员面试 每个人都应知道篇 (回答Scott Hanselman的问题)>之 ...

  4. mybatis中分页查询

    1 如果在查询方法中有多个参数,可以使用map对象将所有数据都存储进去.比如分页查询,需要用到两个参数,可以将这两个参数包装到map中. 例子:分页查询 dao层方法 public List<S ...

  5. 利用putty的pscp命令上传文件

    1.有的时候,本地下载源码包的速度快过vps(主要指国内),那么可以用迅雷下载后上传到vps. 2.为了这么点事情,专门安装一个ftp软件,太麻烦,于是想到了putty贴心的pscp小程序. 3.首先 ...

  6. 利用dd命令制作u盘iso镜像

    现在安装系统都是用u盘安装,那么制作u盘的iso镜像就是必须的了.现在此类工具倒是不少,但是,好用的不多,有的还收费.唉,还是用dd吧,老配方,老味道. 首先:要df -h一下,看看u盘的盘符,类似  ...

  7. python学习之io模块

    class io.BytesIO([initial_bytes]) 他是一个_io.BytesIO对象. 用这个类的实例可以操作内存缓冲区中的字节流. >>> s = 'hello' ...

  8. Java 堆内存

    堆内存 Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象. 在 Java 中,堆被划分成两个不同的区域:新生代 ( Young ).老年代 ( Old ).新生代 ...

  9. php-fpm nginx 使用 curl 请求 https 出现 502 错误

    用php curl请求https的url出现502错误,请求帮忙解决. PHP版本:5.6.7Nginx版本:1.8.0 代码如下: $ch = curl_init(); curl_setopt($c ...

  10. 企业Shell面试题5:解决DOS攻击生产案例

    企业Shell面试题5:解决DOS攻击生产案例 写一个Shell脚本解决DOS攻击生产案例. 请根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100(读者根据实际情况设定 ...