共计 11007 个字符,预计需要花费 28 分钟才能阅读完成。
安装测试环境: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 之间的架构关系
最简单的一个安装 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 管道:
cd logstash-5.1.1
bin/logstash -e 'input {stdin {} } output {stdout {} }'
-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
文件,修改后的配置文件如下:
input {
beats {port => "5044"
}
}
output {
stdout {codec => rubydebug}
}
这里将 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 建立了连接。
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-09/147092p2.htm
上一篇介绍了 Logstash 和 Filebeat 的安装,以及使用 Filebeat 作为 Logstash 输入进行数据的获取,接下来将学习一下 Elasticsearch 与 Kibana 的安装与使用以及如何与 Logstash 的连接,打通整个 ELK 的流程!
前言
Elasticsearch 是一个高度可扩展的开源全文搜索和分析引擎。它允许您快速和近实时地存储,搜索和分析大量数据。
Kibana 作为日志的过滤 web 展示,图形界面话操作日志记录。别名 Elasticsearch Dashboard 顾名思义是基于游览器的 Elasticsearch 分析和仪表盘工具。
Elasticsearch 的安装
一、Elasticsearch 下载和解压
下载地址:https://www.elastic.co/downloads/elasticsearch
选择红色框中的,注意右键复制下载链接地址,这里是:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.1.tar.gz
使用 wget
命令下载到服务器指定目录:
使用 tar -xvf elasticsearch-5.2.1.tar
命令解压,使用 cd 命令进入文件夹目录:
二、启动 Elasticsearch
进入 bin 目录,使用./elasticsearch
命令启动 elasticsearch:
,如果没有出现报错信息的话!这个时候,已经成功启动了!
二、将 Logstash 和 Elasticsearch 进行关联
根据上图可以看到需要将 Logstash 和 Elasticsearch 进行关联,这样的话才可以将数据输入到 Elasticsearch 进行处理。
(1)配置 Logstash 将 stdout 标准输出设置为 Elasticsearch
修改上一篇文章中自己定义的配置文件 logstash.conf,修改为如下内容:
input {
beats {port => "5044"
}
}
filter {
grok {match => { "message" => "%{COMBINEDAPACHELOG}"}
}
geoip {source => "clientip"
}
}
output {
elasticsearch {hosts => [ "localhost:9200" ]
}
}
其中,新增了两个 filter 插件,这个后期再进行学习,然后 output 输出为 elasticsearch,退出保存!
(2)启动 Filebeat
./filebeat -e -c filebeat.yml -d "publish"
(3)启动 Logstash
bin/logstash -f logstash.conf
(4)查看 Elasticsearch 的反应
到此 Elasticsearch 安装完成,也和 Logstash 进行了关联,下边安装 Kibana 进行可视化的操作。
Kibana 的安装与使用
Kibana 是一个开源的分析和可视化平台,旨在与 Elasticsearch 一起工作。您使用 Kibana 搜索,查看和与存储在 Elasticsearch 索引中的数据进行交互。您可以轻松地在各种图表,表格和地图中执行高级数据分析和可视化数据。
一、Kibana 下载与解压
下载地址:https://www.elastic.co/downloads/kibana
同样右键复制下载链接!
使用 wget 命令进行下载:
使用 tar -xvf kibana-5.2.1-linux-x86_64.tar.gz
命令进行解压,进入目录:
二、配置 Kibana
Kibana 的配置文件是在config/kibana.yml
(1)修改主机绑定的 IP 地址:
将 IP 地址修改为 0.0.0.0
表示全匹配!
(2)指定要进行连接到 Elasticsearch
这里,由于全部是在一台机子上进行的实验,因此默认就可以,也就是
elasticsearch.url: http://localhost:9200
三、启动 Kibana
在 bin 目录下使用命令:./kibana
启动:
红色框中内容表示 Kibana 正在 5601 端口监听,使用游览器访问!
* 四、访问 Kibana*
首先确保你是用的 Liunx 服务器开启了 5601 端口!
因为我的机子访问地址为:http://192.168.1.220:5601,访问结果如下:
看到界面,然后配置 index,点击 create!
只要你的 Tomcat 产生了日志,就可以在 Discover 中看到,如果进入之后看不到任何结果,可能是你的 Tomcat 未产生日志:
至此!Elasticsearch 与 Kibana 的安装已经完成!贯穿了从 Filebeat 达到 logstash,再到 Elasticsearch 和 Kibana 的整个过程!
总结
当然,这只是跑通了最简单的配置操作。对于 ELK 的知识还有很多需要学习,后期也会把一些学习中遇到的问题和经验写出来和大家一起分享!
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-09/147092.htm
安装测试环境: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 之间的架构关系
最简单的一个安装 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 管道:
cd logstash-5.1.1
bin/logstash -e 'input {stdin {} } output {stdout {} }'
-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
文件,修改后的配置文件如下:
input {
beats {port => "5044"
}
}
output {
stdout {codec => rubydebug}
}
这里将 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 建立了连接。
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-09/147092p2.htm