金钱(警告)
** 状态:** 被贬值
本文涵盖了一种数据发送器,它已在 Elasticsearch 5.0 版本中被取代(https://www.elastic.co/blog/beats-5-0-0-alpha3-released)。本指南可能仍然作为参考,但不会与 Elastic Stack的最新元素一起工作。
** 原因:** Topbeat 在 Elastic Stack 版本 5.0 中被更换了。
** 参见相反:** 如果您目前正在使用 Topbeat,我们强烈建议使用以下教程将其替换为 Metricbeat:
美元
介绍
Topbeat 是帮助将不同类型的服务器数据发送到 Elasticsearch 实例的几个Beats
数据传输器之一,它允许您收集有关 CPU、内存和服务器上的过程活动的信息. 当与 ELK 堆栈(Elasticsearch、Logstash 和 Kibana)一起使用时,Topbeat 可以作为其他系统指标可视化工具的替代品,如 Prometheus或 Statsd。
在本教程中,我们将向您展示如何使用ELK堆积来使用Ubuntu 14.04服务器上的 Topbeat来收集和可视化基础设施指标。
前提条件
本教程假定您有本教程中描述的ELK Stack设置: 如何在Ubuntu 14.04上安装Elasticsearch,Logstash和Kibana。
我们还会假设,除了 ELK 服务器之外,您还至少有一个客户端 Ubuntu 14.04 服务器,您希望使用 Topbeat 来收集系统指标。
在 ELK 服务器上加载 Kibana 仪表板
<$>[注] 注: 此步骤来自前提教程,但也包括在您在设置 ELK 堆栈时跳过它的情况下。
Elastic 提供几种样本的 Kibana 仪表板和 Beats 索引模式,可以帮助您开始使用 Kibana. 虽然我们不会在本教程中使用仪表板,但我们将无论如何加载它们,以便我们可以使用它包含的 Filebeat 索引模式。
首先,下载样本仪表板档案到您的家庭目录:
1cd ~
2curl -L -O https://download.elastic.co/beats/dashboards/beats-dashboards-1.1.0.zip
使用此命令安装unzip
包:
1sudo apt-get -y install unzip
接下来,提取档案的内容:
1unzip beats-dashboards-*.zip
然后用以下命令将样本仪表板、可视化和 Beats 索引模式加载到 Elasticsearch:
1cd beats-dashboards-*
2./load.sh
以下是我们刚刚加载的索引模式:
- [packetbeat-]YYYY.MM.DD
- [topbeat-]YYYY.MM.DD
- [filebeat-]YYYY.MM.DD
- [winlogbeat-]YYYY.MM.DD
在 Elasticsearch 中加载 Topbeat 索引模板
由于我们计划使用 Topbeat 将日志发送到 Elasticsearch,我们应该加载 Topbeat 索引模板。
首先,下载 Topbeat 索引模板到您的主目录:
1cd ~
2curl -O https://raw.githubusercontent.com/elastic/topbeat/master/etc/topbeat.template.json
然后用这个命令加载 template:
1curl -XPUT 'http://localhost:9200/_template/topbeat' [email protected]
现在,您的 ELK 服务器已经准备好接受 Topbeat 的数据,接下来我们就将 Topbeat 设置在客户端服务器上。
设置 Topbeat(添加客户端服务器)
对于每个 Ubuntu 或 Debian 服务器,您要向 ELK 服务器上的 Logstash 发送指标数据,请执行这些步骤. 有关在基于 Red Hat 的 Linux 发行版上安装 Topbeat 的说明(例如 RHEL、CentOS 等),请参阅本教程的 CentOS 变体(https://andsky.com/tech/tutorials/how-to-gather-infrastructure-metrics-with-topbeat-and-elk-on-centos-7)。
复印SSL证书
<$>[注] **注:**此步骤来自前提教程,但也包括在这里,如果您正在设置的客户端服务器从未连接到您的 ELK 堆栈。
在您的 ELK 服务器上,将 SSL 证书 - 创建在前提教程中 - 复制到您的 客户端服务器(取代客户端服务器的地址和您的登录):
1scp /etc/pki/tls/certs/logstash-forwarder.crt user@client_server_private_address:/tmp
提供登录凭据后,确保证书副本成功,这是客户端服务器与 ELK 服务器之间的通信所需的。
现在,在您的客户端服务器上,将 ELK Server 的 SSL 证书复制到适当的位置(/etc/pki/tls/certs):
1sudo mkdir -p /etc/pki/tls/certs
2sudo cp /tmp/logstash-forwarder.crt /etc/pki/tls/certs/
现在我们可以安装 Topbeat 包。
安装 Topbeat 包
在 客户端服务器上,请确保 Beats 源列表存在. 打开 /etc/apt/sources.list.d/beats.list
以编辑:
1sudo vi /etc/apt/sources.list.d/beats.list
确保此行存在(如果它尚未存在的话插入):
1[label /etc/apt/sources.list.d/beats.list]
2deb https://packages.elastic.co/beats/apt stable main
保存和退出。
Topbeat 使用与 Elasticsearch 和 Filebeat 相同的 GPG 密钥,可以用以下命令安装:
1wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
然后安装 Topbeat 包:
1sudo apt-get update
2sudo apt-get install topbeat
Tobeat 已安装,但尚未配置。
配置 Topbeat
现在我们将配置 Topbeat 连接到我们的 ELK 服务器上的 Logstash. 本节将帮助您修改与 Topbeat 一起提供的示例配置文件。 完成步骤后,您应该有一个类似于 This的文件。
在客户端服务器上,创建和编辑 Topbeat 配置文件:
1sudo vi /etc/topbeat/topbeat.yml
<$>[注] 注: Topbeat 的配置文件是 YAML 格式,这意味着插入非常重要!请确保在这些指示中使用相同数量的空格。
在文件的顶部,你会看到输入
部分,这就是你可以指定哪些指标和统计数据应该发送到ELK服务器的地方。
在输出
部分中,找到说elasticsearch:
的行,表示Elasticsearch输出部分(我们不会使用)。
查找评论的Logstash输出部分,标记为#logstash:
,并通过删除前面的#
删除评论,在本节中,删除评论的主机: [
localhost:5044]
行。
1[label topbeat.yml — 1 of 2]
2 ### Logstash as output
3 logstash:
4 # The Logstash hosts
5 hosts: ["ELK_server_private_IP:5044"]
这将 Topbeat 配置为连接到 ELK 服务器上的 Logstash 在端口 5044
(我们在前提教程中指定了 Logstash 输入的端口)。
接下来,找到tls
部分,然后放弃评论,然后放弃指定certificate_authorities
的行,并将其值更改为[
/etc/pki/tls/certs/logstash-forwarder.crt``。
1[label topbeat.yml — 2 of 2]
2...
3 tls:
4 # List of root certificates for HTTPS server verifications
5 certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]
这将 Topbeat 配置为使用我们在前提教程中在 ELK Server 上创建的 SSL 证书。
保存和停止。
现在重新启动 Topbeat 以将我们的更改实施:
1sudo service topbeat restart
2sudo update-rc.d topbeat defaults 95 10
再次,如果您不确定您的 Topbeat 配置是否正确,请将其与此比较 例 Topbeat 配置。
现在 Topbeat 正在将您的客户端服务器的系统、流程和文件系统指标发送到您的 ELK 服务器! 重复此部分对于您想要 Topbeat 指标的所有其他服务器。
测试 Topbeat 安装
如果您的 ELK 堆栈已正确设置,则 Topbeat (在您的客户端服务器上) 应该将您的日志发送到您的 ELK 服务器上的 Logstash. Logstash 应该将 Topbeat 数据加载到 Elasticsearch 以日期标记的索引, topbeat-YYYYYY.MM.DD
。
在您的 ELK 服务器上,通过此命令查询 Topbeat 索引,确认 Elasticsearch 确实正在接收数据:
1curl -XGET 'http://localhost:9200/topbeat-*/_search?pretty'
你应该看到一大堆的输出,看起来像这样:
1[secondary_label Sample Output:]
2{
3 "_index" : "topbeat-2016.02.01",
4 "_type" : "process",
5 "_id" : "AVKeLSdP4HKUFv4CjZ7K",
6 "_score" : 1.0,
7 "_source":{"@timestamp":"2016-02-01T18:51:43.937Z","beat":{"hostname":"topbeat-01","name":"topbeat-01"},"count":1,"proc":{"cpu":{"user":0,"user_p":0,"system":50,"total":50,"start_time":"12:54"},"mem":{"size":0,"rss":0,"rss_p":0,"share":0},"name":"jbd2/vda1-8","pid":125,"ppid":2,"state":"sleeping"},"type":"process","@version":"1","host":"topbeat-01"}
8}
如果您的输出显示 0 个总次数,则 Elasticsearch 不会在您搜索的索引下加载任何 Topbeat 数据,您应该检查设置的错误。
连接Kibana
当您完成在您想要收集系统统计数据的所有服务器上设置Topbeat时,让我们看看Kibana。
在 Web 浏览器中,访问您的 ELK 服务器的 FQDN 或公共 IP 地址. 输入 ELK 服务器的凭证后,您应该看到您的 Kibana Discover 页面。
从索引模式菜单(左侧)中选择 [topbeat]-YYY.MM.DD,在发现视图中查看您的Topbeat数据:
在这里,你可以搜索和钻探你的各种Topbeat条目。
接下来,您将想要查看我们之前加载的样本 Topbeat 仪表板。 点击 Dashboard(顶部),然后点击 Load Saved Dashboard图标。 导航到仪表板的第二页,然后点击 Topbeat-Dashboard:
在这里,您将看到从您安装 Topbeat 的客户端服务器中收集的各种指标。
结论
现在,由于您的系统指标通过 Elasticsearch 和 Logstash 集中化,并且您可以使用 Kibana 可视化它们,您应该能够一眼就能看到您的服务器的性能。