如何在Ubuntu 14.04上利用Topbeat与ELK收集基础设施指标

提供:ZStack云计算

系列教程

本教程为利用(Elasticsearch, Logstash与Kibana)在Ubuntu 14.04上实现集中化日志管理系列五篇中的第二篇。

内容介绍

Topbeat作为“Beats”系列方案之一,旨在帮助我们将各类服务器数据发送至Elasticsearch实例,从而收集与服务器CPU、内存以及处理活动相关的信息。在配合ELK堆栈(即Elasticsearch、Logstash与Kibana)时,Topbeat能够充当系统指标可视化工具,其作用与Prometheus或者Statsd基本一致。

在本教程中,我们将探讨如何利用ELK堆栈与Topbeat在Ubuntu 14.04服务器上收集基础设施指标并进行可视化处理。

先决条件

要完成本教程,大家需要拥有一套ELK堆栈,具体请参阅如何在Ubuntu 14.04上安装Elasticsearch, Logstash与Kibana

除了ELK服务器外,大家还需要至少拥有一套客户Ubuntu 14.04服务器作为系统指标收集对象。

在ELK服务器上加载Kibana仪表板

注意:本步骤属于先决条件之一,如果大家已经设置完成ELK堆栈,则可直接跳过。另外,如果出现问题,可以尝试反复加载示例仪表板。

Elastic提供多种示例性Kibana仪表板与Beats索引模型,能够帮助大家快速上手Kibana。尽管我们在本教程中无需使用仪表板,但仍需要将其加载至ELK服务器中以使用由其提供的Filebeat索引模型。

首先在主目录中下载示例仪表板归档文件:

安装该unzip软件包:

  • sudo apt-get -y install unzip

下面提取归档文件内容:

  • unzip beats-dashboards-*.zip

向Elasticsearch中载入示例仪表板、可视化与Beats目录模型:

  • 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索引模板下载至主目录内:

加载该模板:

现在我们的ELK服务器已经能够接收来自Topbeat的数据了。下面在客户服务器上设置Topbeat。

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

我们需要在作为指标数据收集目标的Ubuntu或者Debian服务器上执行以下步骤。对于以红帽为基础的Linux发行版(例如RHEL或CentOS),请参阅CentOS版本的本篇教程

复制SSL证书

注意:此步骤为先决条件的组成部分,如果大家的客户服务器已经具备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

确保以下行存在于文件内(如果不存在,请进行粘贴):

/etc/apt/sources.list.d/beats.list

- deb https://packages.elastic.co/beats/apt stable main

保存并退出。

Topbeat与Elasticsearch与Filebeat使用同样的GPG密钥,我们可以这样进行安装:

而后安装Topbeat软件包:

  • sudo apt-get update

  • sudo apt-get install topbeat

Tobeat现在已经安装完成,但还需要进行配置。

配置Topbeat

现在我们需要配置Topbeat,确保其接入ELK服务器上的Logstash。在这部分内容中,我们需要对示例配置文件进行修改。在完整各步骤时,大家应当确保拥有此示例文件

在客户服务器上,创建并编辑Topbeat配置文件:

  • sudo vi /etc/topbeat/topbeat.yml

注意:Topbeat的配置文件为YAML格式,意味着缩进非常重要!大家要确保在各指令前使用正确的空格数量。

在文件开头处,大家会看到input部分,在这里我们可以指定向ELK服务器发送哪些指标与统计结果。这里我们使用默认输入设置,但大家也可以根据需求随意变更。

在output部分内,找到elasticsearch:一行,其代表着Elasticsearch的输出设置(在本示例中不会用到)。将其删除或者标记为注释(直到#logstash:一行)。

找到作为注释的Logstash output部分,即#logstash:,删除#以取消其注释。在这部分中,取消hosts: [“localhost:5044”]一行的注释。将localhost变更为ELK服务器的专有IP地址(如果可用,也可以使用主机名称):

topbeat.yml — 1 of 2

  ### Logstash as output
  logstash:
    # The Logstash hosts
hosts: ["ELK_server_private_IP:5044"]

这样,Topbeat就会在端口5044上接入ELK服务器上的Logstash(我们在此前教程中指定该端口接收Logstash输入)。

接下来,找到tls部分并取消其注释。而后,取消掉指定certificate_authorities一行的注释,将其值变更为[“/etc/pki/tls/certs/logstash-forwarder.crt”]。修改后其内容应如下:

topbeat.yml — 2 of 2

...
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数据加载至Elasticsearch内,并使用日期戳形式的索引,即topbeat-YYYY.MM.DD。

在ELK服务器上,我们可以使用以下命令查询Topbeat索引以验证Elasticsearch是否确实接收到了数据:

输出结果应如下所示:

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"}
}

如果输出结果完全不符,则代表Elasticsearch并没有加载任何正在搜索的Topbeat数据,这时我们应当检查设置。如果输出结果符合预期,则继续进行下一步。

接入Kibana

在浏览器中,前往ELK服务器的FQDN或者公共IP地址。在输入ELK服务器凭证后,大家应该看到Kibana Discover页面。

前往Index Patterns菜单(左侧)并选定[topbeat]-YYY.MM.DD,从而查看Discover视图中的Topbeat数据:

在这里,大家可以搜索并查看各类Topbeat条目。

接下来,大家可能需要检查我们之前加载完成的示例Topbeat仪表板。点击Dashboard(顶部)而后点击Load Saved Dashboard图标。导航至仪表板的第二页面,而后点击Topbeat-Dashboard:

在这里,我们会看到多条收集自客户服务器的指标。

总结

现在我们的系统指标已经通过Elasticsearch与Logstash实现了集中组织,大家也能够利用Kibana将其转换为可视化结果。

本文来源自DigitalOcean Community。英文原文:How To Gather Infrastructure Metrics with Topbeat and ELK on Ubuntu 14.04 By Mitchell Anicas

翻译:diradw

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值