Logstash【从无到有从有到无】【L15】使用X-Packedit监视Logstash

目录

1.使用X-Packedit监视Logstash

Logstash配置X-Pack监视

1.1.使用Metricbeat收集Logstash监视数据

1.1.1.禁用监视指标的默认收集

1.1.2.安装并配置Metricbeat以收集监视数据

1.2.使用内部收集器收集Logstash监视数据

1.2.1.Collectors

1.2.2.Output

1.2.3.默认配置

1.2.4.使用内部收集器配置Logstash监视

1.2.5.升级后重新启用Logstash监视

1.2.6.监视内部集合的设置

1.2.7.常规监控设置

1.2.8.监视收集设置

1.2.9.X-Pack监视TLS / SSL设置

1.3.监控界面(Monitoring UI)

1.4.管道查看器用户界面(Pipeline Viewer UI)

1.4.1.先决条件(Prerequisites)

1.4.2.查看管道

1.4.3.注意事项和最佳做法(Notes and best practices)

1.5.对Logstashedit中的X-Pack监视进行故障排除

1.5.1.升级后Logstash监控不起作用


1.使用X-Packedit监视Logstash

使用Elastic Stack监视功能可以深入了解在您的环境中运行的Logstash实例的运行状况。

关监控Elastic Stack(包括Elasticsearch和Kibana)的介绍,请参阅Monitoring the Elastic Stack。

 

Logstash配置X-Pack监视

确保在Elasticsearch集群上启用了监视。 然后配置以下方法之一以收集Logstash指标:

  • Metricbeat collection
  • Internal collection

 

1.1.使用Metricbeat收集Logstash监视数据

在7.3及更高版本中,您可以使用Metricbeat收集有关Logstash的数据并将其发送到监视群集,而不是按照内部收集中的描述通过生产群集进行路由。

收集和运送监视数据:

  1. 禁用监视指标的默认收集
  2. 安装并配置Metricbeat以收集监视数据

1.1.1.禁用监视指标的默认收集

监视设置位于Logstash配置文件(logstash.yml)中,但已注释掉:

monitoring.enabled: false

删除行首的#以启用设置。

 

1.1.2.安装并配置Metricbeat以收集监视数据

1.将Metricbeat与Logstash安装在同一服务器上。

2.在Metricbeat中启用logstash-xpack模块。

   要在Metricbeat modules.d目录中启用默认配置,请运行:

   deb, rpm, or brew:

metricbeat modules enable logstash-xpack

    linux or mac:

./metricbeat modules enable logstash-xpack

    win:

PS > .\metricbeat.exe modules enable logstash-xpack

  有关更多信息,请参阅Specify which modules to run和 beat module。

3.在Metricbeat中配置logstash-xpack模块。

在modules.d / logstash-xpack.yml文件中包含以下设置:

- module: logstash
    metricsets:
      - node
      - node_stats
    period: 10s
    hosts: ["localhost:9600"]
    #username: "user"
    #password: "secret"
    xpack.enabled: true

设置 hostsusername和 password以通过Logstash进行身份验证。 对于其他模块设置,建议您接受默认设置。

默认情况下,该模块从localhost:9600收集Logstash监视数据。

要监视多个Logstash实例,请指定主机列表,例如:

hosts: ["http://localhost:9601","http://localhost:9602","http://localhost:9603"]

加密通信(Encrypted communications)。 如果将Logstash配置为使用加密通信,则必须使用HTTPS访问它。 例如,使用主机设置,例如https:// localhost:9600。

Elastic安全。 如果启用了Elastic安全功能,请提供用户标识和密码,以便Metricbeat可以成功收集指标:

  1. 在具有remote_monitoring_collector内置角色的生产集群上创建一个用户。
  2. 将用户名和密码设置添加到模块配置文件(logstash-xpack.yml)。

4.可选:在Metricbeat中禁用系统模块。

默认情况下,系统模块( system module)处于启用状态。 但是,它收集的信息未在Kibana的“ Stack Monitoring”页面上显示。 除非您希望将该信息用于其他目的,否则请运行以下命令:

metricbeat modules disable system

5.确定将监视数据发送到哪里。

在生产环境中,我们强烈建议使用单独的集群(称为监视集群)来存储数据。使用单独的监视集群可防止生产集群中断影响您访问监视数据的能力。它还可以防止监视活动影响生产集群的性能。

例如,在Metricbeat配置文件(metricbeat.yml)中指定Elasticsearch输出信息:

output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["http://es-mon-1:9200", "http://es-mon2:9200"] 

  # Optional protocol and basic auth credentials.
  #protocol: "https"
  #username: "elastic"
  #password: "changeme"

在此示例中,数据存储在具有节点es-mon-1和es-mon-2的监视群集上。

如果将监视群集配置为使用加密的通信,则必须通过HTTPS访问它。 例如,使用主机设置,例如https:// es-mon-1:9200。

Elasticsearch监视功能使用接收管道,因此存储监视数据的集群必须至少具有一个接收节点。

如果在监视群集上启用了Elasticsearch安全功能,则必须提供有效的用户ID和密码,以便Metricbeat可以成功发送指标:

  1. 在具有remote_monitoring_agent内置角色( built-in role)的监视群集上创建一个用户。 或者,使用remote_monitoring_user内置用户(built-in user)。
  2. 将用户名和密码设置添加到Metricbeat配置文件中的Elasticsearch输出信息中。

如果您正在使用索引生命周期管理,则远程监视用户需要其他特权才能创建和读取索引。 有关更多信息,请参见<< feature-roles >>。

有关这些配置选项的更多信息,请参阅Configure the Elasticsearch output。

6.Start Metricbeat以开始收集监视数据。

7.查看Kibana中的监视数据。

您的监视设置已完成。

 

1.2.使用内部收集器收集Logstash监视数据

使用内部收集器进行Logstash X-Pack监视以下组件:

  • Collectors
  • Output

这些片段位于专用监视管道中的默认Logstash管道之外。此配置确保所有数据和处理对普通Logstash处理的影响最小。现有的Logstash功能(例如elasticsearch输出)可以重复使用,以从其重试策略中受益。

X-Pack监视Logstash所使用的elasticsearch输出仅通过logstash.yml中的设置进行配置。 没有使用Logstash配置中的任何内容(也可能使用其自己的单独elasticsearch输出)进行配置。

配置为与Logstash的X-Pack监视一起使用的Elasticsearch集群应该是生产集群。此配置使生产Elasticsearch集群可以将元数据(例如,其集群UUID)添加到Logstash监视数据,然后将其路由到监视集群。  有关典型监控架构的更多信息,请参阅《 Elasticsearch Reference》中的监控如何工作。

1.2.1.Collectors

顾名思义,收集器收集东西。 在Logstash的X-Pack监视中,收集器只是输入,与普通Logstash配置提供输入的方式相同。

与对Elasticsearch进行X-Pack监视一样,每个收集器都可以创建零个或多个监视文档。 按照当前的实现方式,每个Logstash节点都运行两种类型的收集器:一种用于节点统计信息,另一种用于管道统计信息。

Collector Data Types Description
Node Stats logstash_stats

收集有关正在运行的节点的详细信息,例如内存利用率和CPU使用率(例如GET / _stats)。

 

它在启用了X-Pack监视的每个Logstash节点上运行。 一种常见的故障是复制Logstash目录时会包含其path.data目录(默认情况下为./data),该目录会同时复制Logstash节点的持久UUID。 结果,通常看起来一个或多个Logstash节点未能收集监视数据,而实际上它们实际上都与同一Logstash节点误报了。 仅在升级Logstash时重用path.data目录,以使升级后的节点替换以前的版本。

Pipeline  Stats logstash_state 收集有关节点正在运行的管道的详细信息,这将为“监视管道”用户界面提供动力。

 

 

 

 

 

 

 

每个收集间隔(默认为10秒(10秒))都会运行每个收集器。 单个收集器的故障不会影响任何其他收集器。 每个收集器作为普通的Logstash输入,都会在其隔离的监视管道中创建一个单独的Logstash事件。 然后,Logstash输出发送数据。

可以动态配置收集间隔,也可以禁用数据收集。 有关收集器的配置选项的更多信息,请参阅 Monitoring Settings。

与针对Elasticsearch和Kibana的X-Pack监视不同,Logstash上没有xpack.monitoring.collection.enabled设置。 您必须使用xpack.monitoring.enabled设置来启用和禁用数据收集。

如果Kibana的监视图中存在间隙,通常是因为收集器发生故障或监视集群未接收到数据(例如,正在重新启动)。 如果收集器失败,则尝试执行收集的节点上应该存在记录的错误。

 

1.2.2.Output

像所有Logstash管道一样,专用监视管道的目的是将事件发送到输出。 在对Logstash进行X-Pack监视的情况下,输出始终是elasticsearch输出。 但是,与普通的Logstash管道不同,输出是通过 xpack.monitoring.elasticsearch.* 设置在logstash.yml设置文件中配置的。

除了其独特的配置方式外,此Elasticsearch输出的行为类似于所有elasticsearch输出,包括其在输出存在问题时暂停数据收集的能力。

所有Logstash节点共享相同的设置至关重要。 否则,监控数据可能会以不同的方式或路由到不同的地方。

 

1.2.3.默认配置

如果Logstash节点未明确定义X-Pack监视输出设置,则使用以下默认配置:

xpack.monitoring.elasticsearch.hosts: [ "http://localhost:9200" ]

X.Pack监视Logstash生成的所有数据都使用.monitoring-logstash模板在监视群集中建立索引,该模板由Elasticsearch内的导出(exporters)程序管理。

如果您使用的是启用了X-Pack安全性的群集,则需要采取额外的步骤来正确配置Logstash。 有关更多信息,请参见Monitoring Logstash with X-Pack

在讨论与Elasticsearch输出有关的安全性时,请务必记住,所有用户都在生产集群上进行管理,这在xpack.monitoring.elasticsearch.hosts设置中进行了标识。 当您从开发环境转移到生产环境时,这一点尤其重要,在生产环境中,您通常具有专用的监视集群。

有关输出的配置选项的更多信息,请参Monitoring Settings。

1.2.4.使用内部收集器配置Logstash监视

要监视Logstash节点:

1.指定将监视数据发送到的位置。 该群集通常称为生产群集。 有关典型监视体系结构的示例,请参阅How monitoring works。

要将Logstash可视化为Elastic Stack的一部分(如步骤6所示),请将指标发送到生产集群。 将指标发送到专用监视群集将在监视群集下显示Logstash指标。

2.验证生产集群上的xpack.monitoring.collection.enabled设置是否为true。 如果该设置为false,则在Elasticsearch中禁用监视数据的收集,并且所有其他来源的数据都将被忽略。

3.通过在logstash.yml中设置xpack.monitoring.elasticsearch.hosts,将Logstash节点配置为发送指标。 如果启用了X-Pack安全性,则还需要为内置logstash_system用户指定凭据。 有关这些设置的更多信息,请参阅Monitoring Settings。

xpack.monitoring.elasticsearch.hosts: ["http://es-prod-node-1:9200", "http://es-prod-node-2:9200"] 
xpack.monitoring.elasticsearch.username: "logstash_system" 
xpack.monitoring.elasticsearch.password: "changeme"

说明

    xpack.monitoring.elasticsearch.hosts:

    如果在生产群集上启用了SSL / TLS,则必须通过HTTPS连接。 从v5.2.1开始,您可以将多个Elasticsearch主机指定为数组,也可以将单个主机指定为字符串。 如果指定了多个URL,Logstash可以将请求循环到这些生产节点。

    xpack.monitoring.elasticsearch.username:

    如果在生产群集上禁用了X-Pack安全性,则可以忽略这些用户名和密码设置。

4.如果在生产Elasticsearch集群上启用了SSL / TLS,请指定将用于验证集群中节点身份的受信任CA证书。

要将CA证书添加到Logstash节点的受信任证书中,可以使用certificate_authority设置指定PEM编码证书的位置:

xpack.monitoring.elasticsearch.ssl.certificate_authority: /path/to/ca.crt

另外,您可以使用信任库(包含证书的Java密钥库文件)配置信任证书:

xpack.monitoring.elasticsearch.ssl.truststore.path: /path/to/file
xpack.monitoring.elasticsearch.ssl.truststore.password: password

另外,您还可以选择使用密钥库(包含证书的Java密钥库文件)来设置客户端证书:

xpack.monitoring.elasticsearch.ssl.keystore.path: /path/to/file
xpack.monitoring.elasticsearch.ssl.keystore.password: password

将sniffing设置为true以启用发现Elasticsearch集群的其他节点。 默认为false。

xpack.monitoring.elasticsearch.sniffing: false

5.重新启动您的Logstash节点。

6.要验证X-Pack监视配置,请将Web浏览器指向Kibana主机,然后从侧面导航中选择“Monitoring”。 从Logstash节点报告的指标应在Logstash部分中可见。 启用安全性后,要查看监视仪表板,您必须以具有kibana_user和monitoring_user角色的用户身份登录到Kibana。

Logstash【从无到有从有到无】【L15】使用X-Packedit监视Logstash_第1张图片

1.2.5.升级后重新启用Logstash监视

从旧版本的X-Pack升级时,出于安全原因,内置的logstash_system用户被禁用。 要恢复监视,请更改密码并重新启用logstash_system用户。

1.2.6.监视内部集合的设置

您可以在logstash.yml中设置以下xpack.monitoring设置,以控制如何从Logstash节点收集监视数据。 但是,默认设置在大多数情况下效果最佳。 有关配置Logstash的更多信息,请参见logstash.yml。

1.2.7.常规监控设置

xpack.monitoring.enabled

默认情况下禁用监视。 设置为true以启用X-Pack监视。

xpack.monitoring.elasticsearch.hosts

您要将Logstash指标运送到的Elasticsearch实例。 这可能与Logstash配置的outputs部分中指定的弹性搜索实例相同,也可能不同。 这不是您专用的监视群集的URL。 即使您正在使用专用的监视群集,Logstash指标也必须通过生产群集进行路由。 您可以将单个主机指定为字符串,也可以将多个主机指定为数组。 默认为http:// localhost:9200。

如果您的Elasticsearch集群配置有专用的主资格节点,则不应将Logstash指标路由到这些节点,因为这样做会造成资源争用并影响Elasticsearch集群的稳定性。 因此,请勿在xpack.monitoring.elasticsearch.hosts中包含此类节点。

xpack.monitoring.elasticsearch.username and xpack.monitoring.elasticsearch.password

如果您的Elasticsearch受基本身份验证保护,则这些设置将提供Logstash实例用于身份验证以传输监视数据的用户名和密码。

1.2.8.监视收集设置

xpack.monitoring.collection.interval

控制在Logstash一侧收集和运送数据样本的频率。 默认为10秒。 如果您修改收集间隔,请将kibana.yml中的xpack.monitoring.min_interval_seconds选项设置为相同的值。

1.2.9.X-Pack监视TLS / SSL设置

您可以配置以下传输层安全性(TLS)或安全套接字层(SSL)设置。 有关更多信息,请参阅Configuring Credentials for Logstash Monitoring。

xpack.monitoring.elasticsearch.ssl.certificate_authority

可选设置,使您可以为Elasticsearch实例的证书颁发机构指定.pem文件的路径。

xpack.monitoring.elasticsearch.ssl.truststore.path

可选设置,提供Java密钥库(JKS)的路径以验证服务器的证书。

xpack.monitoring.elasticsearch.ssl.truststore.password

提供密码到信任库的可选设置。

xpack.monitoring.elasticsearch.ssl.keystore.path

可选设置,提供Java密钥库(JKS)的路径以验证客户端的证书。

xpack.monitoring.elasticsearch.ssl.keystore.password

提供密钥库密码的可选设置。

1.3.监控界面(Monitoring UI)

使用X-Pack中的监视功能可以查看指标并深入了解Logstash部署的运行方式。 在概述仪表板中,您可以查看Logstash接收和发送的所有事件,以及有关内存使用和正常运行时间的信息:

Logstash【从无到有从有到无】【L15】使用X-Packedit监视Logstash_第2张图片

然后,您可以深入查看有关特定节点的统计信息:

Logstash【从无到有从有到无】【L15】使用X-Packedit监视Logstash_第3张图片

Logstash节点根据其持久性UUID被认为是唯一的,该节点在启动时会写入path.data目录。

在使用监视UI之前,请configure Logstash monitoring。

有关使用监视UI的信息,请参阅X-Pack monitoring in Kibana。

1.4.管道查看器用户界面(Pipeline Viewer UI)

管道查看器UI提供了对复杂管道配置的行为和性能的额外可见性。 使用管道查看器来可视化并监视复杂的Logstash管道配置的行为。 您可以查看树状视图并与之交互,该树状视图说明了管道拓扑,数据流和分支逻辑。

如果值异常,管道查看器会突出显示CPU%和事件延迟。 此信息可帮助您快速识别速度过慢的处理。

Logstash【从无到有从有到无】【L15】使用X-Packedit监视Logstash_第4张图片

1.4.1.先决条件(Prerequisites)

在使用管道查看器之前:

  • 配置Logstash监视。
  • 启动要监视的Logstash管道。

Logstash开始将度量标准传送到监视群集。

1.4.2.查看管道

要查看管道:

  • Kibana → Monitoring → Logstash → Pipelines

每个管道都由管道ID(默认为主管道)标识。 对于每个管道,您会看到管道的吞吐量以及在选定时间范围内管道正在运行的节点数。

树中的许多元素都是可单击的。 例如,您可以单击插件名称以展开详细信息视图。

Logstash【从无到有从有到无】【L15】使用X-Packedit监视Logstash_第5张图片

单击分支名称旁边的箭头以折叠或展开它。

1.4.3.注意事项和最佳做法(Notes and best practices)

Use semantic IDs。在Logstash管道中配置阶段时,请指定语义ID。否则,Logstash会为您生成它们。语义ID可帮助您识别导致瓶颈的配置。例如,您可能在管道中运行了多个grok过滤器。如果指定了语义ID,则可以一眼看出哪些过滤器运行缓慢。语义ID(例如apacheParsingGrok和cloudwatchGrok)将您引导到导致瓶颈的grok过滤器。

Outliers。异常缓慢或超出范围的值和统计将突出显示。这不一定表示有问题,但是会突出显示潜在的瓶颈,以便您快速找到它们。

由于其工作性质,某些插件比其他插件要慢。例如,您可能会发现使用复杂的正则表达式的grok过滤器比仅添加字段的mutate过滤器运行慢得多。在这种情况下,grok过滤器可能会突出显示,尽管可能无法进一步优化其工作。

Versioning。版本信息可从管道ID旁边的下拉列表中获得。每次修改管道时,Logstash都会生成一个新版本,并存储管道统计信息的多个版本。使用此信息来查看随时间的变化如何影响吞吐量和其他指标。 Logstash不存储管道配置的多个版本。

 

1.5.对Logstashedit中的X-Pack监视进行故障排除

1.5.1.升级后Logstash监控不起作用

从较早版本升级时,出于安全原因,内置logstash_system用户被禁用。 恢复监视:

1.更改logstash_system密码:

PUT _xpack/security/user/logstash_system/_password
{
  "password": "newpassword"
}

2.重新启用logstash_system用户:

PUT _xpack/security/user/logstash_system/_enable

 

你可能感兴趣的:(ELK,Logstash,X-Packedit)