分享好友

×
取消 复制
Elastic Stack(ELK)入门
2020-06-03 13:41:52

Elastic Stack入门

是否在寻找Elastic Stack(“ELK”)指南,该指南显示了如何设置Elastic Stack并快速启动并运行?您来对地方了!首先,您安装核心产品:

  • Elasticsearch
  • Kibana
  • Beats
  • Logstash (optional)

然后,您将学习如何实施使用Metricbeat收集服务器指标并将数据发送到Elasticsearch的系统监视解决方案,您可以在其中使用Kibana搜索和可视化数据。完成基本设置后,添加Logstash进行其他解析。

首先,您可以在单个VM甚至笔记本电脑上安装Elastic Stack。

开始之前

安装Elasticsearch

Elasticsearch是一个实时的分布式存储,搜索和分析引擎。它可以用于许多目的,但是它擅长的一种环境是索引半结构化数据流,例如日志或解码的网络数据包。

要下载并安装Elasticsearch,请打开终端窗口并使用与您的系统配合使用的命令(deb for Debian/Ubuntu, rpm for Redhat/Centos/Fedora, mac or brew for OS X, linux for Linux, and win for Windows)::

deb:

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

rpm:

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

mac:

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

brew:

brew tap elastic/tap
brew install elastic/tap/elasticsearch-full
elasticsearch

linux:

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

win:

  1. Elasticsearch下载页面下载Elasticsearch 7.5.0 Windows zip文件 。
  2. 将zip文件的内容提取到计算机上的目录中,例如C:\Program Files。
  3. 以管理员身份打开命令提示符,然后导航到包含解压缩文件的目录,例如:cd C:\Program Files\elasticsearch-7.5.0
  4. 启动Elasticsearch: bin\elasticsearch.bat

对于其他操作系统,请转到 Elasticsearch下载页面

tip 默认的cluster.name和 node.name分别是elasticsearch和您的主机名。如果您打算继续使用此群集或添加更多节点,则最好将这些默认值更改为唯一名称。有关更改文件中这些设置和其他设置的详细信息elasticsearch.yml,请参阅“ 配置Elasticsearch”。

要了解有关安装,配置和运行Elasticsearch的更多信息,请阅读 Elasticsearch Reference

确保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" : "7.5.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, rpm, or linux:

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

mac:

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

brew:

brew tap elastic/tap
brew install elastic/tap/kibana-full
kibana
  1. Kibana下载页面下载Kibana 7.5.0 Windows zip文件 。
  2. 将zip文件的内容提取到计算机上的目录中,例如C:\Program Files
  3. 以管理员身份打开命令提示符,然后导航到包含解压缩文件的目录,例如:cd C:\Program Files\kibana-7.5.0-windows
  4. 启动Kibana:bin\kibana.bat

对于其他操作系统,请转到 Kibana下载页面

要了解有关安装,配置和运行Kibana的更多信息,请阅读 Kibana Reference

启动Kibana Web界面

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

安装Beats

Beats是开源数据发送者,您可以将其作为代理安装在服务器上,以将运营数据发送到Elasticsearch。Beats可以将数据直接发送到Elasticsearch或通过Logstash发送,您可以在其中进一步处理和增强数据。

每个Beat是单独安装的产品。在本指南中,您将学习如何在system启用了收集系统指标的模块的情况下安装和运行Metricbeat 。

要了解有关安装和配置其他Beats的更多信息,请参阅《入门指南》文档:

Elastic BeatsTo captureAuditbeat审核数据Filebeat日志文件Functionbeat云数据Heartbeat可用性监控Journalbeat系统日记Metricbeat指标Packetbeat网络流量WinlogbeatWindows事件日志

安装 Metricbeat

要下载并安装Metricbeat,请打开一个终端窗口并使用与您的系统一起使用的命令:
deb:

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

rpm:

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

mac:

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

brew:

brew tap elastic/tap
brew install elastic/tap/metricbeat-full

linux:

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

win:

  1. Metricbeat下载页面下载Metricbeat Windows zip文件 。
  2. 将zip文件的内容提取到中C:\Program Files
  3. metricbeat-7.5.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
note
如果在系统上禁用了脚本执行,请设置当前会话的执行策略以允许脚本运行。例如:PowerShell.exe
-ExecutionPolicy UnRestricted -File .\install-service-metricbeat.ps1.

对于其他操作系统,请转到 Beats下载页面

将系统指标发送到Elasticsearch

Metricbeat提供了预构建的模块,可用于在约5分钟内快速实施和部署系统监视解决方案,并带有示例仪表板和数据可视化。

在本节中,您将学习如何运行该system模块以从服务器上运行的操作系统和服务中收集指标。系统模块收集系统级别的度量标准,例如CPU使用率,内存,文件系统,磁盘IO和网络IO统计信息,以及系统上运行的每个进程的顶级统计信息。

要设置system模块并开始收集系统指标:

  1. 从Metricbeat安装目录中,启用system模块:
    deb and rpm:
    sudo metricbeat modules enable system
    mac and linux:
    ./metricbeat modules enable system
    brew:
    metricbeat modules enable system
    win:
    PS C:\Program Files\Metricbeat> .\metricbeat.exe modules enable system
  2. 设置初始环境:
    deb and rpm:
    sudo metricbeat setup -e
    mac and linux:
    ./metricbeat setup -e
    brew:
    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@TOC

Elastic Stack入门

是否在寻找Elastic Stack("ELK")指南,该指南显示了如何设置Elastic Stack并快速启动并运行?您来对地方了!首先,您安装核心产品:

  • Elasticsearch
  • Kibana
  • Beats
  • Logstash (optional)

然后,您将学习如何实施使用Metricbeat收集服务器指标并将数据发送到Elasticsearch的系统监视解决方案,您可以在其中使用Kibana搜索和可视化数据。完成基本设置后,添加Logstash进行其他解析。

首先,您可以在单个VM甚至笔记本电脑上安装Elastic Stack。

开始之前

安装Elasticsearch

Elasticsearch是一个实时的分布式存储,搜索和分析引擎。它可以用于许多目的,但是它擅长的一种环境是索引半结构化数据流,例如日志或解码的网络数据包。

要下载并安装Elasticsearch,请打开终端窗口并使用与您的系统配合使用的命令(deb for Debian/Ubuntu, rpm for Redhat/Centos/Fedora, mac or brew for OS X, linux for Linux, and win for Windows)::

deb:

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

rpm:

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

mac:

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

brew:

brew tap elastic/tap
brew install elastic/tap/elasticsearch-full
elasticsearch

linux:

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

win:

  1. Elasticsearch下载页面下载Elasticsearch 7.5.0 Windows zip文件 。
  2. 将zip文件的内容提取到计算机上的目录中,例如C:\Program Files。
  3. 以管理员身份打开命令提示符,然后导航到包含解压缩文件的目录,例如:cd C:\Program Files\elasticsearch-7.5.0
  4. 启动Elasticsearch: bin\elasticsearch.bat

对于其他操作系统,请转到 Elasticsearch下载页面

tip 默认的cluster.name和 node.name分别是elasticsearch和您的主机名。如果您打算继续使用此群集或添加更多节点,则最好将这些默认值更改为唯一名称。有关更改文件中这些设置和其他设置的详细信息elasticsearch.yml,请参阅“ 配置Elasticsearch”。

要了解有关安装,配置和运行Elasticsearch的更多信息,请阅读 Elasticsearch Reference

确保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" : "7.5.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, rpm, or linux:

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

mac:

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

brew:

brew tap elastic/tap
brew install elastic/tap/kibana-full
kibana
  1. Kibana下载页面下载Kibana 7.5.0 Windows zip文件 。
  2. 将zip文件的内容提取到计算机上的目录中,例如C:\Program Files
  3. 以管理员身份打开命令提示符,然后导航到包含解压缩文件的目录,例如:cd C:\Program Files\kibana-7.5.0-windows
  4. 启动Kibana:bin\kibana.bat

对于其他操作系统,请转到 Kibana下载页面

要了解有关安装,配置和运行Kibana的更多信息,请阅读 Kibana Reference

启动Kibana Web界面

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

安装Beats

Beats是开源数据发送者,您可以将其作为代理安装在服务器上,以将运营数据发送到Elasticsearch。Beats可以将数据直接发送到Elasticsearch或通过Logstash发送,您可以在其中进一步处理和增强数据。

每个Beat是单独安装的产品。在本指南中,您将学习如何在system启用了收集系统指标的模块的情况下安装和运行Metricbeat 。

要了解有关安装和配置其他Beats的更多信息,请参阅《入门指南》文档: Elastic Beats | To capture -------- | ----- Auditbeat | 审核数据 Filebeat | 日志文件 Functionbeat | 云数据 Heartbeat| 可用性监控 Journalbeat| 系统日记 Metricbeat| 指标 Packetbeat| 网络流量 Winlogbeat| Windows事件日志

安装 Metricbeat

要下载并安装Metricbeat,请打开一个终端窗口并使用与您的系统一起使用的命令: deb:

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

rpm:

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

mac:

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

brew:

brew tap elastic/tap
brew install elastic/tap/metricbeat-full

linux:

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

win:

  1. Metricbeat下载页面下载Metricbeat Windows zip文件 。
  2. 将zip文件的内容提取到中C:\Program Files
  3. metricbeat-7.5.0-windows目录重命名为Metricbeat
  4. 以管理员身份打开PowerShell提示符(右键单击PowerShell图标,然后选择“以管理员身份运行”)。
  5. 在PowerShell提示符下,运行以下命令以将Metricbeat安装为Windows服务: powershell PS > cd 'C:\Program Files\Metricbeat' PS C:\Program Files\Metricbeat> .\install-service-metricbeat.ps1 note 如果在系统上禁用了脚本执行,请设置当前会话的执行策略以允许脚本运行。例如:PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-metricbeat.ps1.

对于其他操作系统,请转到 Beats下载页面

将系统指标发送到Elasticsearch

Metricbeat提供了预构建的模块,可用于在约5分钟内快速实施和部署系统监视解决方案,并带有示例仪表板和数据可视化。

在本节中,您将学习如何运行该system模块以从服务器上运行的操作系统和服务中收集指标。系统模块收集系统级别的度量标准,例如CPU使用率,内存,文件系统,磁盘IO和网络IO统计信息,以及系统上运行的每个进程的顶级统计信息。

开始之前:确认Elasticsearch和Kibana正在运行,并且Elasticsearch准备好从Metricbeat接收数据。

要设置system模块并开始收集系统指标:

  1. 从Metricbeat安装目录中,启用system模块: deb and rpm: bash sudo metricbeat modules enable system mac and linux: bash ./metricbeat modules enable system brew: bash metricbeat modules enable system win: bash PS C:\Program Files\Metricbeat> .\metricbeat.exe modules enable system
  2. 设置初始环境: deb and rpm: bash sudo metricbeat setup -e mac and linux: bash ./metricbeat setup -e brew: bash metricbeat setup -e win: bash PS C:\Program Files\Metricbeat> metricbeat.exe setup -e 该setup命令将加载Kibana仪表板。如果已经设置了仪表板,请忽略此命令。该-e标志是可选的,并将输出发送到标准错误而不是syslog。
  3. 启动Metricbeat: deb and rpm: bash sudo service metricbeat start mac and linux: bash ./metricbeat -e brew: bash metricbeat -e win: bash PS C:\Program Files\Metricbeat> Start-Service metricbeat Metricbeat运行并开始将系统指标发送到Elasticsearch。

在Kibana中可视化系统指标

要可视化系统指标,请打开浏览器并导航到Metricbeat系统概述仪表板:选择 Metricbeat-system-overview-ecs

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

现在您已经知道如何为Elastic Stack设置最简单的架构-一个或多个Beats将事件数据直接发送到在同一服务器上运行的Elasticsearch实例-让我们添加Logstash。

安装Logstash(可选)

Logstash是一个功能强大的工具,可与多种部署集成。它提供了大量的插件,可帮助您解析,丰富,转换和缓冲来自各种来源的数据。如果您的数据需要Beats中没有的其他处理,则需要将Logstash添加到您的部署中。

要下载并安装Logstash,请打开一个终端窗口,然后使用适用于您的系统的命令: deb:

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

rpm:

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

mac and linux:

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

brew:

brew tap elastic/tap
brew install elastic/tap/logstash-full

win:

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

对于其他操作系统,请转到Logstash下载页面。 要了解有关安装,配置和运行Logstash的更多信息,请阅读 Logstash参考

配置Logstash收听Beats输入

Logstash提供了用于从多种输入中读取的输入插件。在本指南中,您将创建一个Logstash管道配置,该配置侦听Beats输入并将接收到的事件发送到Elasticsearch输出。

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

- 一个输入阶段,将Logstash配置为在端口5044上侦听传入的Beats连接。
- 将事件编入Elasticsearch的输出阶段。输出阶段还配置Logstash写入Metricbeat索引。

例如: ```javascript 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进行路由,您可以在其中完全访问Logstash功能以收集,充实和转换数据。

启动Logstash

使用适合您的系统的命令。如果将Logstash作为deb或rpm软件包安装,请确保配置文件位于config目录中。对于其他平台,config不需要目录,但这是保持一致的最佳实践。 deb:

sudo /etc/init.d/logstash start

rpm:

sudo service logstash start

mac and linux:

cd logstash-7.5.0
./bin/logstash -f path/to/config/demo-metrics-pipeline.conf

brew:

logstash -f path/to/config/demo-metrics-pipeline.conf

win:

bin\logstash.bat -f path\to\config\demo-metrics-pipeline.conf
tip
如果收到JVM错误消息,请检查Java版本,如安装Logstash中所示 。

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

配置Metricbeat以将事件发送到Logstash

Metricbeat默认将事件发送到Elasticsearch。要将事件发送到Logstash,请修改Metricbeat配置文件metricbeat.yml。您可以在Metricbeat安装目录下找到该文件,/etc/metricbeat用于rpm和deb或 /usr/local/etc/metricbeatbrew

output.elasticsearch通过将其注释掉来禁用该部分,然后output.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过滤器插件文档。

要提取路径,请在您之前创建的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]" 
      }
    }
  }
}
  1. 使用模式匹配路径,然后将路径存储在名为的字段中 cmdline_path
  2. 删除原始字段,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"

下一步是什么?

恭喜你!您已经成功设置了弹性堆栈。您学习了如何将系统指标传输到Elasticsearch并可视化Kibana中的数据。您还学习了如何使用Logstash过滤Metricbeat收集的事件。

接下来,您需要设置Elastic Stack安全功能并激活您的试用许可证,以便您可以解锁Elastic Stack的全部功能。要了解操作方法,请阅读:

是否想通过指标监视和集中式日志分析来快速启动并运行?在Kibana中试用Metrics应用程序和Logs应用程序。有关更多详细信息,请参阅《度量标准监视指南》 和《日志监视指南》。

稍后,当您准备设置生产环境时,另请参阅《 Elastic Stack安装和升级指南》。
mac and linux:
./metricbeat -e
brew:
metricbeat -e
win:
PS C:\Program Files\Metricbeat> Start-Service metricbeat

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

在Kibana中可视化系统指标

要可视化系统指标,请打开浏览器并导航到Metricbeat系统概述仪表板:选择 Metricbeat-system-overview-ecs

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

现在您已经知道如何为Elastic Stack设置最简单的架构-一个或多个Beats将事件数据直接发送到在同一服务器上运行的Elasticsearch实例-让我们添加Logstash。

安装Logstash(可选)

Logstash是一个功能强大的工具,可与多种部署集成。它提供了大量的插件,可帮助您解析,丰富,转换和缓冲来自各种来源的数据。如果您的数据需要Beats中没有的其他处理,则需要将Logstash添加到您的部署中。

要下载并安装Logstash,请打开一个终端窗口,然后使用适用于您的系统的命令:
deb:

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

rpm:

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

mac and linux:

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

brew:

brew tap elastic/tap
brew install elastic/tap/logstash-full

win:

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

对于其他操作系统,请转到Logstash下载页面
要了解有关安装,配置和运行Logstash的更多信息,请阅读 Logstash参考

配置Logstash收听Beats输入

Logstash提供了用于从多种输入中读取的输入插件。在本指南中,您将创建一个Logstash管道配置,该配置侦听Beats输入并将接收到的事件发送到Elasticsearch输出。

要配置Logstash:

  • 创建一个名为的新Logstash管道配置文件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进行路由,您可以在其中完全访问Logstash功能以收集,充实和转换数据。

启动Logstash

使用适合您的系统的命令。如果将Logstash作为deb或rpm软件包安装,请确保配置文件位于config目录中。对于其他平台,config不需要目录,但这是保持一致的最佳实践。
deb:

sudo /etc/init.d/logstash start

rpm:

sudo service logstash start

mac and linux:

cd logstash-7.5.0
./bin/logstash -f path/to/config/demo-metrics-pipeline.conf

brew:

logstash -f path/to/config/demo-metrics-pipeline.conf

win:

bin\logstash.bat -f path\to\config\demo-metrics-pipeline.conf
tip
如果收到JVM错误消息,请检查Java版本,如安装Logstash中所示 。

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

配置Metricbeat以将事件发送到Logstash

Metricbeat默认将事件发送到Elasticsearch。要将事件发送到Logstash,请修改Metricbeat配置文件metricbeat.yml。您可以在Metricbeat安装目录下找到该文件,/etc/metricbeat用于rpm和deb或 /usr/local/etc/metricbeatbrew

output.elasticsearch通过将其注释掉来禁用该部分,然后output.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过滤器插件文档。

要提取路径,请在您之前创建的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]" 
      }
    }
  }
}
  1. 使用模式匹配路径,然后将路径存储在名为的字段中 cmdline_path
  2. 删除原始字段,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"

下一步是什么?

恭喜你!您已经成功设置了弹性堆栈。您学习了如何将系统指标传输到Elasticsearch并可视化Kibana中的数据。您还学习了如何使用Logstash过滤Metricbeat收集的事件。

接下来,您需要设置Elastic Stack安全功能并激活您的试用许可证,以便您可以解锁Elastic Stack的全部功能。要了解操作方法,请阅读:

是否想通过指标监视和集中式日志分析来快速启动并运行?在Kibana中试用Metrics应用程序和Logs应用程序。有关更多详细信息,请参阅《度量标准监视指南》 和《日志监视指南》。

稍后,当您准备设置生产环境时,另请参阅《 Elastic Stack安装和升级指南》。

分享好友

分享这个小栈给你的朋友们,一起进步吧。

Elasticsearch
创建时间:2020-05-22 14:49:51
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创建是非常困难的。我们希望搜索解决方案要运行速度快,我们希望能有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP来索引数据,我们希望我们的搜索服务器始终可用,我们希望能够从一台开始并扩展到数百台,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。因此我们利用Elasticsearch来解决所有这些问题及可能出现的更多其它问题。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 栈栈
    专家
戳我,来吐槽~