Topbeat是帮助将各种类型的服务器数据发送到Elasticsearch实例的几个“Beats”数据发送器之一,它允许您收集有关服务器上的CPU,内存和进程活动的信息。当与ELK堆栈(Elasticsearch,Logstash和Kibana)一起使用时,Topbeat可用作其他系统指标可视化工具的替代方案。
在本教程中,我们将向您展示如何使用ELK堆栈通过在Ubuntu 14.04服务器上使用Topbeat来收集和可视化基础架构指标。
本教程假设您在Ubuntu 14.04上安装了Elasticsearch,Logstash和Kibana。如果您还没有ELK服务器,您可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。
我们还假设,除了ELK服务器之外,您还有至少一个客户端Ubuntu 14.04服务器,通过使用Topbeat来收集系统指标。您可以在这里购买 。
注意: 此步骤来自必备教程,但也包含在此处,以防您在设置ELK堆栈时跳过它。可以安全地多次加载样本仪表板。
Elastic提供了几个示例Kibana仪表板和Beats索引模式,可以帮助您开始使用Kibana。虽然我们不会在本教程中使用仪表板,但我们仍会加载它们,因此我们可以使用它包含的Filebeat索引模式。
首先,将示例仪表板存档下载到您的主目录:
cd ~
curl -L -O https://download.elastic.co/beats/dashboards/beats-dashboards-1.1.0.zip
使用以下命令安装unzip
软件包:
sudo apt-get -y install unzip
接下来,提取存档的内容:
unzip beats-dashboards-*.zip
并使用以下命令将示例仪表板,可视化和Beats索引模式加载到Elasticsearch中:
cd beats-dashboards-*
./load.sh
这些是我们刚刚加载的索引模式:
因为我们计划使用Topbeat将日志发送到Elasticsearch,所以我们应该加载Topbeat索引模板。索引模板将配置Elasticsearch以智能方式分析传入的Topbeat字段。
首先,将Topbeat索引模板下载到您的主目录:
cd ~
curl -O https://raw.githubusercontent.com/elastic/topbeat/master/etc/topbeat.template.json
然后使用以下命令加载模板:
curl -XPUT 'http://localhost:9200/_template/topbeat' -d@topbeat.template.json
现在您的ELK服务器已准备好接受来自Topbeat的数据。我们接下来在客户端服务器上设置Topbeat。
为要将指标数据发送到ELK服务器上的Logstash的每个Ubuntu或Debian服务器执行以下步骤。
注意: 此步骤来自必备教程,但也包含在此处,以防您设置的客户端服务器未连接到ELK堆栈。如果客户端服务器已在适当的位置具有ELK服务器的SSL证书,则可以跳过此部分。
在ELK服务器上,将教程中准备阶段创建的SSL证书复制到客户端服务器(替换客户端服务器的地址和您自己的登录名):
scp /etc/pki/tls/certs/logstash-forwarder.crt user@client_server_private_address:/tmp
提供登录凭据后,请确保证书副本成功。它是客户端服务器和ELK服务器之间通信所必需的。
现在,在您的客户端服务器上,将ELK服务器的SSL证书复制到适当的位置(/ etc / pki / tls / certs):
sudo mkdir -p /etc/pki/tls/certs
sudo cp /tmp/logstash-forwarder.crt /etc/pki/tls/certs/
现在我们可以安装Topbeat包了。
在客户端服务器上,确保存在Beats源列表。打开/etc/apt/sources.list.d/beats.list
进行编辑:
sudo vi /etc/apt/sources.list.d/beats.list
确保此行存在(如果它不存在则将其粘贴):
deb https://packages.elastic.co/beats/apt stable main
保存并退出。
Topbeat使用与Elasticsearch和Filebeat相同的GPG密钥,可以使用以下命令安装:
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
然后安装Topbeat包:
sudo apt-get update
sudo apt-get install topbeat
Tobeat现已安装但尚未配置。
现在我们将配置Topbeat连接到我们的ELK服务器上的Logstash。本节将引导您逐步修改Topbeat附带的示例配置文件。完成这些步骤后,您应该有一个类似于此的文件。
在客户端服务器上,创建和编辑Topbeat配置文件:
sudo vi /etc/topbeat/topbeat.yml
注意: Topbeat的配置文件是YAML格式,这意味着缩进非常重要!请务必使用这些说明中指示的相同数量的空格。
在文件顶部附近,您将看到该input
部分,您可以在其中指定应将哪些指标和统计信息发送到ELK服务器。我们将使用默认输入设置,但您可以随意更改它以满足您的需求。
在该output
部分下,找到elasticsearch
行,它表示Elasticsearch输出部分(我们不打算使用)。删除或注释掉整个Elasticsearch输出部分(直到行#logstash:
)。
由#logstash:
行的指示,找到注释掉的Logstash输出部分,并通过删除前面的#
来取消注释。在本节中,取消注释该hosts: ["localhost:5044"]
行。更改localhost
为ELK服务器的专用IP地址(或主机名,如果使用该选项):
### Logstash as output
logstash:
# The Logstash hosts
hosts: ["ELK_server_private_IP:5044"]
这会将Topbeat配置为在端口上连接到ELK服务器上的Logstash 5044
(我们在前提条件教程中指定了Logstash输入的端口)。
接下来,找到该tls
部分,并取消注释。然后取消注释指定的行certificate_authorities
,并将其值更改为["/etc/pki/tls/certs/logstash-forwarder.crt"]
。它应该看起来像这样:
...
tls:
# List of root certificates for HTTPS server verifications
certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]
这会将Topbeat配置为使用我们教程的准备步骤中在ELK服务器上创建的SSL证书。
保存并退出。
现在重新启动Topbeat以将我们的更改放到位:
sudo service topbeat restart
sudo update-rc.d topbeat defaults 95 10
同样,如果您不确定Topbeat配置是否正确,请将其与此示例Topbeat配置进行比较。
现在,Topbeat将您的客户端服务器的系统,进程和文件系统指标发送到您的ELK服务器!对您希望Topbeat指标的所有其他服务器重复此部分。
如果您的ELK堆栈设置正确,Topbeat(在您的客户端服务器上)应该将您的日志传送到ELK服务器上的Logstash。Logstash应该在带有日期戳topbeat-YYYY.MM.DD
的索引中将Topbeat数据加载到Elasticsearch中。
在ELK服务器上,通过使用以下命令查询Topbeat索引,验证Elasticsearch确实正在接收数据:
curl -XGET 'http://localhost:9200/topbeat-*/_search?pretty'
你应该看到一堆看起来像这样的输出:
Sample Output:{
"_index" : "topbeat-2016.02.01",
"_type" : "process",
"_id" : "AVKeLSdP4HKUFv4CjZ7K",
"_score" : 1.0,
"_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"}
}
如果您的输出显示总命中数为0,则Elasticsearch不会在您搜索的索引下加载任何Topbeat数据,您应该检查设置是否有错误。如果收到预期输出,请继续执行下一步。
当您在要收集系统统计信息的所有服务器上完成Topbeat设置后,让我们看看Kibana。
在Web浏览器中,转到ELK服务器的FQDN或公共IP地址。输入您的ELK服务器凭据后,您应该会看到您的Kibana Discover页面。
继续并从Index Patterns菜单(左侧)中选择[topbeat] -YYY.MM.DD,以在Discover视图中查看Topbeat数据:
在这里,您可以搜索和深入查看各种Topbeat条目。
接下来,您需要查看我们之前加载的示例Topbeat仪表板。单击仪表板(顶部),然后单击“ 加载已保存的仪表板”图标。导航到仪表板的第二页,然后单击Topbeat-Dashboard:
在这里,您将看到从您安装Topbeat的客户端服务器收集的各种指标。
现在通过Elasticsearch和Logstash集中您的系统指标,并且您可以使用Kibana将它们可视化,您应该能够一目了然地看到您的服务器。
想要了解更多关于Linux的开源信息教程,请前往腾讯云+社区学习更多知识。
参考文献:《How To Gather Infrastructure Metrics with Topbeat and ELK on Ubuntu 14.04》
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。