原文链接
Elastic Stack简称ELK,在本教程你将学习如何快速搭建并运行Elastic Stack。
首先你要安装核心开源产品:
Elasticsearch:
Kibana:
Beats:
Logstash:
然后,你将了解如何实现一个系统监视解决方案,该方案使用Metricbeat收集服务器度量并将数据发送到Elasticsearch,在Elasticsearch里你可以使用Kibana搜索和可视化数据。在你完成基本的设置之后,你可以添加Logstash来进行额外的解析。
你可以在一个单个虚拟机甚至你的笔记本上安装Elastic Stack。
重要
实现安全性是建立Elastic Stack的关键步骤。要使用示例安装快速启动和运行,现在就跳过这些步骤。在通过网络发送敏感数据之前,请确保对Elastic Stack进行安全保护,并启用加密通信
在你开始之前

安装Elasticsearch

Elasticsearch是一个实时、分布式存储、搜索和分析引擎。它可以用于许多用途,但它擅长的一个上下文是对半结构化数据流(如日志或解码网络数据包)进行索引。

要下载和安装Elasticsearch,打开终端窗口,使用系统的命令(deb为Debian/Ubuntu, rpm为Redhat/Centos/Fedora, mac为OS X, win为Windows):

deb

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.deb
sudo dpkg -i elasticsearch-6.4.0.deb
sudo /etc/init.d/elasticsearch start

rpm

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.rpm
sudo rpm -i elasticsearch-6.4.0.rpm
sudo service elasticsearch start

mac

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.tar.gz
tar -xzvf elasticsearch-6.4.0.tar.gz
cd elasticsearch-6.4.0
./bin/elasticsearch

win
1.从Elasticsearch下载页面下载Elasticsearch 6.4.0 Windows zip文件。

2.将zip文件的内容解压缩到计算机上的一个目录,例如,C:\Program Files

3.作为管理员打开命令提示符并进入到包含提取文件的目录,例如:

cd C:\Program Files\elasticsearch-6.4.0

4.启动Elasticsearch

bin\elasticsearch.bat

对于其他操作系统,请访问Elasticsearch下载页面
要了解关于安装、配置和运行Elasticsearch的更多信息,请阅读Elasticsearch参考资料

确保elasticsearch已经启动并运行

要测试Elasticsearch守护进程是否启动并运行,请尝试在端口9200上发送HTTP GET请求。

curl http://127.0.0.1:9200

在Windows上,如果没有安装cURL,则将浏览器指向URL。
你会看到类似这样的回应:

{
"name" : "QtI5dUu",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "DMXhqzzjTGqEtDlkaMOzlA",
"version" : {
"number" : "6.4.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "00d8bc1",
"build_date" : "2018-06-06T16:48:02.249996Z",
"build_snapshot" : false,
"lucene_version" : "7.3.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}

安装kibana

Kibana是一个开源的分析和可视化平台,设计用于Elasticsearch。使用Kibana搜索、查看和与存储在Elasticsearch索引中的数据交互。你可以轻松地执行高级数据分析并在各种图表、表格和地图中可视化数据。
我们建议你将Kibana安装在与Elasticsearch相同的服务器上,但这不是必需的。如果将产品安装在不同的服务器上,在开始Kibana之前,则需要更改Kibana配置文件kibana.yml中的Elasticsearch服务器的URL (IP:PORT)。
要下载和安装Kibana,打开终端窗口,使用与系统匹配的命令:
deb or rpm

curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-6.4.0-linux-x86_64.tar.gz
tar xzvf kibana-6.4.0-linux-x86_64.tar.gz
cd kibana-6.4.0-linux-x86_64/
./bin/kibana

mac

curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-6.4.0-darwin-x86_64.tar.gz
tar xzvf kibana-6.4.0-darwin-x86_64.tar.gz
cd kibana-6.4.0-darwin-x86_64/
./bin/kibana

win

  1. 从Kibana下载页面下载Kibana 6.4.0 Windows zip文件。

2.将zip文件的内容解压缩到一个目录在您的计算机上,例如,C:\Program Files
3.作为管理员打开命令提示符并导航到包含提取文件的目录,例如:

cd C:\Program Files\kibana-6.4.0-windows

4.启动Kibana

bin\kibana.bat

对于其他操作系统,请访问Kibana下载页面
要了解关于安装、配置和运行Kibana的更多信息,请阅读Kibana参考资料

启动Kibana web界面

要启动Kibana web界面,请将浏览器指向端口5601。例如,http://127.0.0.1:5601

安装Beats

Beats是作为开源数据托运人代理安装在服务器上,用于向Elasticsearch发送操作数据。Beats可以直接将数据发送到Elasticsearch或通过Logstash,在Logstash里你可以进一步处理和增强数据。
每个Beat是一个单独的可安装的产品。在本教程中,你将了解如何安装、运行Metricbeat和系统模块,使之能够收集系统指标。
要了解关于安装和配置其他Beat的更多信息,请参阅入门文档:
<colgroup style="box-sizing: border-box;"><col class="col_1" style="box-sizing: border-box;"><col class="col_2" style="box-sizing: border-box;"></colgroup>

Elastic Beats To capture
Auditbeat Audit data
Filebeat Log files
Heartbeat Availability monitoring
Metricbeat Metrics
Packetbeat Network traffic
Winlogbeat Windows event logs

安装Metricbeat

要下载和安装Metricbeat,打开终端窗口并使用与您的系统匹配的命令:
deb

curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-6.4.0-amd64.deb
sudo dpkg -i metricbeat-6.4.0-amd64.deb

rpm

curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-6.4.0-x86_64.rpm
sudo rpm -vi metricbeat-6.4.0-x86_64.rpm

mac

curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-6.4.0-darwin-x86_64.tar.gz
tar xzvf metricbeat-6.4.0-darwin-x86_64.tar.gz

win
1.从Metricbeat下载页面下载Metricbeat Windows zip文件。
2.将zip文件的内容解压缩到 C:\Program Files中。
3.将Metricbeat -6.4.0-windows目录重命名为Metricbeat。
4.作为管理员打开PowerShell提示符(右键单击PowerShell图标并选择以管理员身份运行)。
5.从PowerShell提示符,运行以下命令将Metricbeat安装为Windows服务

PS > cd 'C:\Program Files\Metricbeat'
PS C:\Program Files\Metricbeat> .\install-service-metricbeat.ps1

对于其他操作系统,请访问Beats下载页面

将系统指标传到Elasticsearch

Metricbeat提供预先构建的模块,您可以使用这些模块在大约5分钟内快速实现和部署一个系统监控解决方案,包括样例指示板和数据可视化。

在本节中,您将了解如何运行系统模块,以从运行在服务器上的操作系统和服务收集指标。系统模块收集系统级指标,如CPU使用率、内存、文件系统、磁盘IO和网络IO统计数据,以及系统上运行的每个进程的顶级统计数据。

在你开始之前验证Elasticsearch和Kibana正在运行,Elasticsearch准备从Metricbeat接收数据。
建立系统模块并开始收集系统指标。
1.从Metricbeat安装目录,启用系统模块:
deb and rpm

sudo metricbeat modules enable system

mac

./metricbeat modules enable system

win

PS C:\Program Files\Metricbeat> .\metricbeat.exe modules enable system

2.设置初始环境
deb and rpm

sudo metricbeat setup -e

mac

./metricbeat setup -e

win

PS C:\Program Files\Metricbeat> metricbeat.exe setup -e

setup命令加载Kibana仪表板。如果仪表板已经设置好,则省略此命令。e标志是可选的,并将输出发送到标准错误,而不是syslog。
3.启动Metricbeat
deb and rpm

sudo service metricbeat start

mac

./metricbeat -e

win

PS C:\Program Files\Metricbeat> Start-Service metricbeat

Metricbeat运行并开始向Elasticsearch发送系统指标。

在Kibana中可视化系统指标

要可视化系统指标,打开浏览器并导航到Metricbeat系统概述仪表板:
http://localhost:5601/app/kibana#/dashboard/Metricbeat-system-overview

TIP:如果在Kibana没有看到数据,请尝试将日期范围更改为更大的范围。默认情况下,Kibana会显示最后15分钟。如果看到错误,请确保Metricbeat正在运行,然后刷新页面。

现在你已经知道了如何为Elastic Stack建立最简单的体系结构—一个或多个Beats将事件数据直接发送到同一个服务器上运行的Elasticsearch实例—现在让我们添加Logstash。

安装Logstash

Logstash是一个强大的工具,可以集成多种部署。它提供了大量可供选择的插件,可以帮助您解析、充实、转换和缓冲各种来源的数据。

要下载和安装Logstash,打开终端窗口并使用与您的系统匹配的命令:
deb

curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-6.4.0.deb
sudo dpkg -i logstash-6.4.0.deb

rpm

curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-6.4.0.rpm
sudo rpm -i logstash-6.4.0.rpm

mac

curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-6.4.0.tar.gz
tar -xzvf logstash-6.4.0.tar.gz

win
1.从Logstash下载页面下载Logstash 6.4.0 Windows zip文件。
2.将zip文件的内容解压缩到计算机上的一个目录,例如,C:\Program Files。使用短路径(少于30个字符)以避免在Windows上遇到文件路径长度限制。

对于其他操作系统,请访问Logstash的下载页面

要了解关于安装、配置和运行Logstash的更多信息,请阅读logstash的参考资料

配置logstash监听beats输入

Logstash提供从各种输入读取的输入插件。在本教程中,你将创建一个Logstash管道配置,它侦听Beats输入并将接收到的事件发送到Elasticsearch输出。

配置logstash:
1.创建一个新的日志存储管道配置文件,名为demo-metrics-pipeline.conf。如果您将Logstash作为deb或rpm包安装的,请在Logstash config目录中创建该文件。该文件必须包含:

  • 一种输入阶段,配置Logstash在端口5044上侦听传入Beats连接。
  • 一个输入阶段,将事件索引到Elasticsearch。输出阶段还配置Logstash写入Metricbeat索引。
    例如:
input {
beats {
port => 5044
}
} # The filter part of this file is commented out to indicate that it
# is optional.
# filter {
#
# } output {
elasticsearch {
hosts => "localhost:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
}
}

当你开始使用这个管道配置Logstash时,Beats事件是通过logstash输出出来的,你可以完全访问logstach输出出来的收集、充实和转换数据的功能。

启动logstash

使用与系统匹配的命令。如果你将Logstash作为deb或rpm包安装的,请确保config文件位于config目录中。
deb

sudo /etc/init.d/logstash start

rpm

sudo service logstash start

mac

./bin/logstash -f demo-metrics-pipeline.conf

win

bin\logstash.bat -f demo-metrics-pipeline.conf

TIP:如果你收到JVM错误消息,请检查Java版本,如安装Logstash中所示。

Logstash开始侦听来自Beats输入的事件。接下来需要配置Metricbeat将事件发送到Logstash。

配置Metricbeat以发送事件到logstash

Metricbeat默认向Elasticsearch发送事件。要将事件发送到Logstash中,请修改Metricbeat配置文件Metricbeat .yml。你可以在Metricbeat安装目录下找到这个文件,或者对于rpm和deb,在找到/etc/metricbeat。

通过注释它以禁用输出到Elasticsearch,然后取消注释以启用输出到logstash:

#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:
# Array of hosts to connect to.
#hosts: ["localhost:9200"]
.
.
.
#----------------------------- Logstash output --------------------------------
output.logstash:
# The Logstash hosts
hosts: ["localhost:5044"]

保存文件,然后重新启动Metricbeat应用配置更改。

Logstash从Beats输入读取数据并将事件索引到Elasticsearch。你还没有定义筛选器部分,因此Logstash只是将事件转发给Elasticsearch,而没有进行额外的处理。接下来,您将学习如何定义筛选器阶段。

定义一个过滤器以使从字段中提取数据

Metricbeat收集的系统度量包括一个名为cmdline的字段,该字段包含用于启动系统进程的完整命令行参数。例如:

"cmdline": "/Applications/Firefox.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container -childID 3
-isForBrowser -boolPrefs 36:1|299:0| -stringPrefs 285:38;{b77ae304-9f53-a248-8bd4-a243dbf2cab1}| -schedulerPrefs
0001,2 -greomni /Applications/Firefox.app/Contents/Resources/omni.ja -appomni
/Applications/Firefox.app/Contents/Resources/browser/omni.ja -appdir
/Applications/Firefox.app/Contents/Resources/browser -profile
/Users/dedemorton/Library/Application Support/Firefox/Profiles/mftvzeod.default-1468353066634
99468 gecko-crash-server-pipe.99468 org.mozilla.machname.1911848630 tab"

与其将整个命令行参数发送到Elasticsearch,不如只发送命令的路径。一种方法是使用Grok过滤器。学习Grok超出了本教程的范围,但是如果您想了解更多,请参阅Grok filter插件文档。

要提取路径,在之前创建的Logstash配置文件的输入和输出部分之间添加以下Grok过滤器:

filter {
if [system][process] {
if [system][process][cmdline] {
grok {
match => {
"[system][process][cmdline]" => "^%{PATH:[system][process][cmdline_path]}"
}
remove_field => "[system][process][cmdline]"
}
}
}

  • 使用正则模式匹配路径,然后将路径存储在一个名为cmdline_path的字段中。
  • 移除原始字段cmdline,所以它不在Elasticsearch中索引。

完成之后,完整的配置文件应该如下所示:

input {
beats {
port => 5044
}
} filter {
if [system][process] {
if [system][process][cmdline] {
grok {
match => {
"[system][process][cmdline]" => "^%{PATH:[system][process][cmdline_path]}"
}
remove_field => "[system][process][cmdline]"
}
}
}
} output {
elasticsearch {
hosts => "localhost:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
}
}

重新启动Logstash以获取更改。事件现在包含一个名为cmdline_path的字段,该字段包含命令路径:

"cmdline_path": "/Applications/Firefox.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container"

接下来是什么

恭喜你! 你已经成功地建立了Elastic Stack。你学习了如何流传输系统度量到Elasticsearch中在Kibana中可视化这些数据。你还学习了如何使用Logstash来过滤Metricbeat收集的事件。

Elastic Stack学习的更多相关文章

  1. ELK学习实验001:Elastic Stack简介

    1 背景介绍 在我们日常生活中,我们经常需要回顾以前发生的一些事情:或者,当出现了一些问题的时候,可以从某些地方去查找原因,寻找发生问题的痕迹.无可避免需要用到文字的.图像的等等不同形式的记录.用计算 ...

  2. ELK学习001:Elastic Stack简介

    ELK简介: ELK Stack:ELK是Elasticsearch.Logstash.Kibana的缩写简称,这三者都是开源软件.ELK是5.0版本前的统称:这是一套统一的日志收集分析系统.它能够方 ...

  3. Elastic Stack之ElasticSearch分布式集群yum方式搭建

    Elastic Stack之ElasticSearch分布式集群yum方式搭建 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.搜索引擎及Lucene基本概念 1>.什么 ...

  4. Elastic Stack 笔记(八)Elasticsearch5.6 Java API

    博客地址:http://www.moonxy.com 一.前言 Elasticsearch 底层依赖于 Lucene 库,而 Lucene 库完全是 Java 编写的,前面的文章都是发送的 RESTf ...

  5. SpringBoot 整合 Elastic Stack 最新版本(7.14.1)分布式日志解决方案,开源微服务全栈项目【有来商城】的日志落地实践

    一. 前言 日志对于一个程序的重要程度不用过多的言语修饰,本篇将以实战的方式讲述开源微服务全栈项目 有来商城 是如何整合当下主流日志解决方案 ELK +Filebeat . 话不多说,先看实现的效果图 ...

  6. Beats:使用 Elastic Stack 记录 Python 应用日志

    文章转载自:https://elasticstack.blog.csdn.net/article/details/112259500 日志记录实际上是每个应用程序都必须具备的功能.无论你选择基于哪种技 ...

  7. Elastic Stack

    Elastic Stack 开发人员不能登陆线上服务器查看详细日志 各个系统都有日志,日志数据分散难以查找 日志数据量大,查询速度慢,或者数据不够实时 官网地址:https://www.elastic ...

  8. Elastic Stack之kibana入门

    为了解决公司的项目在集群环境下查找日志不便的问题,我在做过简单调研后,选用Elastic公司的Elastic Stack产品作为我们的日志收集,存储,分析工具. Elastic Stack是ELK(E ...

  9. Elastic Stack之kibana使用

    Elastic Stack之kibana使用 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客数据流走向:FileBeat ===>Redis  ===>log ...

随机推荐

  1. Highcharts基本名词解释

    1.Highcharts基本组成: 2.名词解释 lang 语言文字对象 所有Highcharts文字相关的设置 chart 图表 图表区.图形区和通用图表配置选项 colors 颜色 图表数据列颜色 ...

  2. Django学习系列13:Django ORM和第一个模型

    ORM—对象关系映射器,是一个数据抽象层,描述存储在数据库中的表,行和列.处理数据库时,可以使用熟悉的面向对象方式,写出更好的代码. 在ORM的概念中,类对应数据库中的表,属性对应列,类的单个实例表示 ...

  3. VMware中的桥接模式--来自网络

    在桥接模式下,VMware虚拟出来的操作系统就像是局域网中的一独立的主机,它可以访问网内任何一台机器.不过你需要多于一个的IP地址,并且需要手工为虚拟系统配置IP地址.子网掩码,而且还要和宿主机器处于 ...

  4. JZOJ5358【NOIP2017提高A组模拟9.12】BBQ

    题目 分析 发现,\(C_{ai+aj+bi+bj}^{ai+aj}\),其实就等于从(0,0)走最短路到(ai+aj,bi+bj). 我们可以想办法将i.j分开,从(0,0)走最短路到(ai+aj, ...

  5. 18-Node.js学习笔记-Express-请求处理-构建模块化路由

    构建模块化路由 const express = require('express') //创建路由对象 const home = express.Router(); //将路由和请求路径进行匹配 ap ...

  6. malloc,calloc,realloc

    与堆操作相关的两个函数 malloc #include<stdio.h> #include<stdlib.h> #include<string.h> int mai ...

  7. 深入理解二阶段提交协议(DDB对XA悬挂事务的处理分析)(一)

    https://sq.163yun.com/blog/article/165554812476866560

  8. HDU 6089 Rikka with Terrorist (线段树)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=6089 题解 这波强行维护搞得我很懵逼... 扫描线,只考虑每个点能走到左上方(不包括正上方,但包括正左 ...

  9. flink⼿手动维护kafka偏移量量

    flink对接kafka,官方模式方式是自动维护偏移量 但并没有考虑到flink消费kafka过程中,如果出现进程中断后的事情! 如果此时,进程中段: 1:数据可能丢失 从获取了了数据,但是在执⾏行行 ...

  10. Linux-expect脚本-1

    expect是基于tcl演变而来的,所以很多语法和tcl类似,基本的语法如下所示: 首行加上/usr/bin/expect spawn: 后面加上需要执行的shell命令,比如说spawn sudo ...