Elastic Stack入门
是否在寻找Elastic Stack(“ELK”)指南,该指南显示了如何设置Elastic Stack并快速启动并运行?您来对地方了!首先,您安装核心产品:
- Elasticsearch
- Kibana
- Beats
- Logstash (optional)
然后,您将学习如何实施使用Metricbeat收集服务器指标并将数据发送到Elasticsearch的系统监视解决方案,您可以在其中使用Kibana搜索和可视化数据。完成基本设置后,添加Logstash进行其他解析。
首先,您可以在单个VM甚至笔记本电脑上安装Elastic Stack。
开始之前
- 有关受支持的操作系统和产品兼容性的信息, 请参阅《Elastic Support Matrix》。
- 验证系统是否满足Logstash和Elasticsearch 的 低JVM要求。
安装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:
- 从Elasticsearch下载页面下载Elasticsearch 7.5.0 Windows zip文件 。
- 将zip文件的内容提取到计算机上的目录中,例如C:\Program Files。
- 以管理员身份打开命令提示符,然后导航到包含解压缩文件的目录,例如:
cd C:\Program Files\elasticsearch-7.5.0
- 启动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
- 从Kibana下载页面下载
Kibana 7.5.0 Windows zip
文件 。 - 将zip文件的内容提取到计算机上的目录中,例如
C:\Program Files
。 - 以管理员身份打开命令提示符,然后导航到包含解压缩文件的目录,例如:
cd C:\Program Files\kibana-7.5.0-windows
- 启动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:
- 从Metricbeat下载页面下载
Metricbeat Windows zip
文件 。 - 将zip文件的内容提取到中
C:\Program Files
。 - 将
metricbeat-7.5.0-windows
目录重命名为Metricbeat
。 - 以管理员身份打开PowerShell提示符(右键单击PowerShell图标,然后选择“以管理员身份运行”)。
- 在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模块并开始收集系统指标:
- 从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 - 设置初始环境:
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。 - 启动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。
开始之前
- 有关受支持的操作系统和产品兼容性的信息, 请参阅《Elastic Support Matrix》。
- 验证系统是否满足Logstash和Elasticsearch 的 低JVM要求。
安装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:
- 从Elasticsearch下载页面下载Elasticsearch 7.5.0 Windows zip文件 。
- 将zip文件的内容提取到计算机上的目录中,例如C:\Program Files。
- 以管理员身份打开命令提示符,然后导航到包含解压缩文件的目录,例如:
cd C:\Program Files\elasticsearch-7.5.0
- 启动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
- 从Kibana下载页面下载
Kibana 7.5.0 Windows zip
文件 。 - 将zip文件的内容提取到计算机上的目录中,例如
C:\Program Files
。 - 以管理员身份打开命令提示符,然后导航到包含解压缩文件的目录,例如:
cd C:\Program Files\kibana-7.5.0-windows
- 启动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:
- 从Metricbeat下载页面下载
Metricbeat Windows zip
文件 。 - 将zip文件的内容提取到中
C:\Program Files
。 - 将
metricbeat-7.5.0-windows
目录重命名为Metricbeat
。 - 以管理员身份打开PowerShell提示符(右键单击PowerShell图标,然后选择“以管理员身份运行”)。
- 在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模块并开始收集系统指标:
- 从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
- 设置初始环境: 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。
- 启动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:
- 从Logstash下载页面下载
Logstash 7.5.0 Windows zip
文件 。 - 将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]"
}
}
}
}
- 使用模式匹配路径,然后将路径存储在名为的字段中
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"
下一步是什么?
恭喜你!您已经成功设置了弹性堆栈。您学习了如何将系统指标传输到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:
- 从Logstash下载页面下载
Logstash 7.5.0 Windows zip
文件 。 - 将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]"
}
}
}
}
- 使用模式匹配路径,然后将路径存储在名为的字段中
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"
下一步是什么?
恭喜你!您已经成功设置了弹性堆栈。您学习了如何将系统指标传输到Elasticsearch并可视化Kibana中的数据。您还学习了如何使用Logstash过滤Metricbeat收集的事件。
接下来,您需要设置Elastic Stack安全功能并激活您的试用许可证,以便您可以解锁Elastic Stack的全部功能。要了解操作方法,请阅读:
是否想通过指标监视和集中式日志分析来快速启动并运行?在Kibana中试用Metrics应用程序和Logs应用程序。有关更多详细信息,请参阅《度量标准监视指南》 和《日志监视指南》。
稍后,当您准备设置生产环境时,另请参阅《 Elastic Stack安装和升级指南》。