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

介绍

Topbeat是帮助将各种类型的服务器数据发送到Elasticsearch实例的几个“Beats”数据发送方之一,它允许您收集有关服务器上的CPU,内存和进程活动的信息。 当与ELK(Elasticsearch,Logstash和Kibana)使用,Topbeat可用作替代其他系统指标的可视化工具,如PrometheusStatsd

在本教程中,我们将向您展示如何使用ELK,收集和一个Ubuntu 14.04服务器上使用Topbeat可视化基础设施的指标。

先决条件

本教程假设您在本教程中描述的ELK设置: 如何在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

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

  • [packetsbeat-] 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服务器执行以下步骤。 有关在基于Red Hat Linux发行版(如RHEL,CentOS的,等等)安装Topbeat说明,请参阅本教程的CentOS的变化

复制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 /证书):

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密钥,可以使用此命令安装:

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地址(或主机名,如果您使用该选项了):

topbeat.yml - 1/2
  ### Logstash as output
  logstash:
    # The Logstash hosts
    hosts: ["ELK_server_private_IP:5044"]

这将配置Topbeat连接到Logstash在端口ELK服务器5044 (我们指定的Logstash输入在必备教程中的端口)。

接下来,找到了tls部分,并取消它。 然后取消对指定线路certificate_authorities ,它的值更改为["/etc/pki/tls/certs/logstash-forwarder.crt"] 它应该看起来像这样:

topbeat.yml - 2/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服务器 ,验证Elasticsearch确实通过查询Topbeat指数使用此命令接收数据:

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页面。

来吧,从索引模式菜单(左侧) 选择[topbeat] -YYY.MM.DD在发现视图来查看你Topbeat数据:

选择Topbeat索引模式

在这里,您可以搜索和向下钻取各种Topbeat条目。

接下来,您将要查看我们之前加载的示例Topbeat仪表板。 点击控制面板 (顶部),然后点击加载保存仪表盘图标。 导航到仪表板的第二页,然后点击Topbeat仪表板

查看示例Topbeat仪表板

在这里,您将看到从您安装Topbeat的客户端服务器收集的各种指标。

结论

现在,您的系统指标通过Elasticsearch和Logstash集中,您可以使用Kibana可视化它们,您应该可以一目了然地看到您的服务器的状态。 祝你好运!

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏