介绍
Topbeat是帮助将各种类型的服务器数据发送到Elasticsearch实例的几个“Beats”数据发送方之一,它允许您收集有关服务器上的CPU,内存和进程活动的信息。 当与ELK(Elasticsearch,Logstash和Kibana)使用,Topbeat可用作替代其他系统指标的可视化工具,如Prometheus或Statsd 。
在本教程中,我们将向您展示如何使用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
确保此行存在(如果它不存在,请将其粘贴):
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连接到Logstash在端口ELK服务器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数据转换成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的客户端服务器收集的各种指标。
结论
现在,您的系统指标通过Elasticsearch和Logstash集中,您可以使用Kibana可视化它们,您应该可以一目了然地看到您的服务器的状态。 祝你好运!