如何在Ubuntu 14.04上使用Topbeat和ELK收集基础架构度量标准

介绍

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服务器上加载Kibana仪表板

注意: 此步骤来自必备教程,但也包含在此处,以防您在设置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

这些是我们刚刚加载的索引模式:

  • [packetbeat-] YYYY.MM.DD
  • [topbeat-] YYYY.MM.DD
  • [filebeat-] YYYY.MM.DD
  • [winlogbeat-] YYYY.MM.DD

在Elasticsearch中加载Topbeat索引模板

因为我们计划使用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。

设置Topbeat(添加客户端服务器)

为要将指标数据发送到ELK服务器上的Logstash的每个Ubuntu或Debian服务器执行以下步骤。

复制SSL证书

注意: 此步骤来自必备教程,但也包含在此处,以防您设置的客户端服务器未连接到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包了。

安装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

现在我们将配置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指标的所有其他服务器重复此部分。

测试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数据,您应该检查设置是否有错误。如果收到预期输出,请继续执行下一步。

连接Kibana

当您在要收集系统统计信息的所有服务器上完成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》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏互联网开发者交流社区

PHP配置方法

21420
来自专栏linux系统运维

Apache和PHP结合,Apache默认虚拟主机

32560
来自专栏铭毅天下

干货 | Elasticsearch集群黄色原因的终极探秘

绿色——最健康的状态,代表所有的主分片和副本分片都可用; 黄色——所有的主分片可用,但是部分副本分片不可用; 红色——部分主分片不可用。(此时执行查询部分数...

19500
来自专栏WindCoder

ELK实时日志管理-报错与解决

解决方案: 1. 重新安装新版本的Linux系统 2. 警告不影响使用,可以忽略

47930
来自专栏服务端技术杂谈

线程池监控

通过扩展线程池进行监控,通过继承线程池并重写线程池的beforeExecute,afterExecute和terminated方法,我们可以在任务执行前,执行后...

15410
来自专栏cmazxiaoma的架构师之路

FastDFS蛋疼的集群和负载均衡(十四)之Nginx+Tomcat负载均衡

13540
来自专栏Jackson0714

【网站开发】搭建一个属于自己的网站

1.3K90
来自专栏Youngxj

AE博客原创 | 开源的短网址程序Myurl

37420
来自专栏腾讯IVWEB团队的专栏

利用 yeoman 构建项目 generator

yoeman 提出一个 yeoman 工作流的概念,通过脚手架工具,构建工具和包管理器的配合使用让开发者专注于业务的解决上而不是其他小事情。

20200
来自专栏菩提树下的杨过

ELK日志系统:Filebeat使用及Kibana如何设置登录认证

Filebeat is a lightweight, open source shipper for log file data. As the next-ge...

14410

扫码关注云+社区

领取腾讯云代金券