前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在CentOS 7上使用Topbeat和ELK收集基础架构度量标准介绍

如何在CentOS 7上使用Topbeat和ELK收集基础架构度量标准介绍

原创
作者头像
司徒永哥
修改2018-09-27 17:56:39
1.4K0
修改2018-09-27 17:56:39
举报
文章被收录于专栏:云计算教程系列

如何在CentOS 7上使用Topbeat和ELK收集基础架构度量标准介绍

介绍

Topbeat是帮助将各种类型的服务器数据发送到Elasticsearch实例的几个“Beats”数据发送器之一,它允许您收集有关服务器上的CPU,内存和进程活动的信息。结合ELK服务器(Elasticsearch,Logstash和Kibana),Topbeat收集的数据可用于轻松查看指标,以便您可以在集中的位置查看服务器的状态。

在本教程中,我们将向您展示如何使用ELK堆栈通过在CentOS 7服务器上使用Topbeat来收集和可视化基础架构指标。

准备

本教程假定您有ELK Stack设置:已在CentOS 7上安装Elasticsearch,Logstash和Kibana。

我们还假设,除了ELK服务器之外,您还有至少一个客户端CentOS 7服务器,您希望通过使用Topbeat来收集系统指标。(你可能需要一台已经设置好可以使用sudo命令的非root账号的CentOS服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。)

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

注意: 此步骤来自必备教程,但也包含在此处,以防您在设置ELK堆栈时跳过它。可以安全地多次加载样本仪表板。

Elastic提供了几个示例Kibana仪表板和Beats索引模式,可以帮助您开始使用Kibana。虽然我们不会在本教程中使用仪表板,但我们仍会加载它们,因此我们可以使用它包含的Filebeat索引模式。

首先,将示例仪表板存档下载到您的主目录:

代码语言:javascript
复制
cd ~
curl -L -O https://download.elastic.co/beats/dashboards/beats-dashboards-1.1.0.zip

使用以下命令安装unzip软件包:

代码语言:javascript
复制
sudo yum -y install unzip

接下来,提取存档的内容:

代码语言:javascript
复制
unzip beats-dashboards-*.zip

并使用以下命令将示例仪表板,可视化和Beats索引模式加载到Elasticsearch中:

代码语言:javascript
复制
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索引模板下载到您的主目录:

代码语言:javascript
复制
cd ~
curl -O https://raw.githubusercontent.com/elastic/topbeat/master/etc/topbeat.template.json

然后使用以下命令加载模板:

代码语言:javascript
复制
curl -XPUT 'http://localhost:9200/_template/topbeat' -d@topbeat.template.json

现在您的ELK服务器已准备好接受来自Topbeat的数据。我们接下来在客户端服务器上设置Topbeat。

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

对于要将指标数据发送到ELK服务器上的Logstash的每个CentOS或基于Red Hat的服务器,请执行以下步骤。

复制SSL证书

注意: 此步骤来自必备教程,但也包含在此处,以防您设置的客户端服务器未连接到ELK堆栈。如果客户端服务器已在适当的位置具有ELK服务器的SSL证书,则可以跳过此部分。

SSL证书:如何设置此证书取决于你是否拥有可解析该服务器的域名。

ELK服务器上,将先决条件教程中创建的SSL证书复制到客户端服务器(替换客户端服务器的地址和您自己的登录名):

代码语言:javascript
复制
scp /etc/pki/tls/certs/logstash-forwarder.crt user@client_server_private_address:/tmp

提供登录凭据后,请确保证书副本成功。它是客户端服务器和ELK服务器之间通信所必需的。

现在,在您的客户端服务器上,将ELK服务器的SSL证书复制到适当的位置(/ etc / pki / tls / certs):

代码语言:javascript
复制
sudo mkdir -p /etc/pki/tls/certs
sudo cp /tmp/logstash-forwarder.crt /etc/pki/tls/certs/

现在我们将安装Topbeat包。

安装Topbeat包

客户端服务器上,创建运行以下命令以将Elasticsearch公共GPG密钥导入rpm:

代码语言:javascript
复制
sudo rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch

为Filebeat创建和编辑新的yum存储库文件:

代码语言:javascript
复制
sudo vi /etc/yum.repos.d/elastic-beats.repo

确保这些行存在(如果它们不存在则粘贴它们):

代码语言:javascript
复制
[beats]
name=Elastic Beats Repository
baseurl=https://packages.elastic.co/beats/yum/el/$basearch
enabled=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
gpgcheck=1

保存并退出。

使用以下命令安装Topbeat:

代码语言:javascript
复制
sudo yum -y install topbeat

Topbeat现已安装但尚未配置。

配置Topbeat

现在我们将配置Topbeat连接到我们的ELK服务器上的Logstash。本节将引导您逐步修改Topbeat附带的示例配置文件。完成这些步骤后,您应该有一个类似于的文件。

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

代码语言:javascript
复制
sudo vi /etc/topbeat/topbeat.yml

注意: Topbeat的配置文件是YAML格式,这意味着缩进非常重要!请务必使用这些说明中指示的相同数量的空格。

在文件顶部附近,您将看到该input部分,您可以在其中指定应将哪些指标和统计信息发送到ELK服务器。我们将使用默认输入设置,但您可以随意更改它以满足您的需求。

在该output部分下,找到说明elasticsearch:的行,它表示Elasticsearch输出部分(我们不打算使用)。删除或注释掉整个Elasticsearch输出部分(直到说明的行#logstash:)。

找到注释掉的Logstash输出部分,由显示的行指示#logstash:,并通过删除前面的内容取消注释#。在本节中,取消注释该hosts: ["localhost:5044"]行。更改localhost为ELK服务器的专用IP地址(或主机名,如果使用该选项):

代码语言:javascript
复制
  ### 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"]。它应该看起来像这样:

代码语言:javascript
复制
...
    tls:
      # List of root certificates for HTTPS server verifications
      certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]

这会将Topbeat配置为使用我们在先决条件教程中在ELK服务器上创建的SSL证书。

保存并退出。

现在重新启动Topbeat以将我们的更改放到位:

代码语言:javascript
复制
sudo systemctl restart topbeat
sudo systemctl enable topbeat

同样,如果您不确定Topbeat配置是否正确,请将其与此示例Topbeat配置进行比较。

现在,Topbeat将您的客户端服务器的系统,进程和文件系统指标发送到您的ELK服务器!对您希望Topbeat指标的所有其他服务器重复此部分。

测试Topbeat安装

如果您的ELK堆栈设置正确,Topbeat(在您的客户端服务器上)应该将您的日志传送到ELK服务器上的Logstash。Logstash应该在带有日期戳的索引中将Topbeat数据加载到Elasticsearch中topbeat-YYYY.MM.DD

ELK服务器上,通过使用以下命令查询Topbeat索引,验证Elasticsearch确实正在接收数据:

代码语言:javascript
复制
curl -XGET 'http://localhost:9200/topbeat-*/_search?pretty'

你应该看到一堆看起来像这样的输出:

代码语言:javascript
复制
{
      "_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教程请前往腾讯云+社区学习更多知识。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何在CentOS 7上使用Topbeat和ELK收集基础架构度量标准介绍
    • 介绍
      • 准备
        • 在ELK服务器上加载Kibana仪表板
          • 在Elasticsearch中加载Topbeat索引模板
            • 设置Topbeat(添加客户端服务器)
              • 复制SSL证书
              • 安装Topbeat包
              • 配置Topbeat
            • 测试Topbeat安装
              • 连接Kibana
                • 结论
                相关产品与服务
                SSL 证书
                腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档