如何配置 Topbeat并使用 Kibana 进行集中化检视

系列教程
这是在 Ubuntu 14.04 上使用 ELK 集中化日志系列教程中的第二篇。该系列共有4篇,其他2篇敬请期待~
关于 Topbeat
Topbeat 定期收集系统信息如每个进程信息、负载、内存、磁盘等等,然后将数据发送到 Elasticsearch 进行索引。当你使用 ELK Stack 的时候, Topbeat 可以作为其他服务监控系统(如 Prometheus 或 Statsd )的替代品。
写在前面
这篇文章建立在你已经按照本系列教程的第一篇文章完成了 ELK Stack 的配置,如果你还没有 ELK Stack 的配置,请你先按照第一篇文章配置好 ELK Stack 之后,再参照这篇文章进行 Topbeat 的配置。
我们同时假定除了你的 ELK 服务器之外,你至少有一台运行着 Ubuntu 14.04 的机器用于收集系统信息。
在 ELK 服务器上装载 Kibana 仪表盘
注意:这一部分的步骤其实包含于本系列的第一篇文章中,为了防止你在配置 ELK Stack 的时候不小心跳过了这一步,我们也将其纳入到这篇文章中。
Elastic 提供了几种 Kibana 的仪表盘样例和 beat 索引模式,来帮助你开始使用 Kibana。虽然在我们的教程中不会使用仪表盘,但是不管怎么我们都可以用它包含的 Filebeat 和索引模式加载它们。
首先,下载仪表盘样例,存到你的 home 目录:
cd ~
curl -L -O https://download.elastic.co/beats/dashboards/beats-dashboards-1.1.0.zip
安装 unzip 包:
unzip beats-dashboards-*.zip
然后加载仪表盘样例、可视化和 beat 索引模式到 Elasticsearch:
cd beats-dashboards-*
./load.sh</code></p>
这些是刚才我们加载的索引模式:
- [packetbeat-]YYYY.MM.DD
- [topbeat-]YYYY.MM.DD
- [filebeat-]YYYY.MM.DD
- [winlogbeat-]YYYY.MM.DD
在 Elasticsearch 中导入 Topbeat 引索模板
因为我们将通过 Topbeat 来向 Elasticsearch 中导入日志文件,引索模板能够帮助 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 系的,那请参照这篇教程。
1、复制 SSL 安全证书
注意:如果你的客户端已经连接过你的 ELK Stack 服务器并拥有正确的 SSL 安全证书,那么你可以跳过这一步。
从你的 ELK Stack 服务器上拷贝 SSL 安全证书 到你的客户端中。
scp /etc/pki/tls/certs/logstash-forwarder.crt user@client_server_private_address:/tmp
提交你的登录凭据之后,请确认 SSL 安全证书已经正确拷贝。然后回到你的客户端上,复制刚刚的 SSL 安全证书到他所属的目录下( /etc/pki/tls/certs )
sudo mkdir -p /etc/pki/tls/certs
sudo cp /tmp/logstash-forwarder.crt /etc/pki/tls/certs/
完成了上述步骤之后,我们就可以开始安装 Topbeat 了。
2、安装 Topbeat 包
在客户端上确认 Beats 的源列表( Beats source list )存在,步骤如下:
打开 /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
安装好 Topbeat 之后,下一步就是配置啦!
3.配置 Topbeat
在这一步中,我们将配置 Topbeat 使它连接到 ELK 服务器上的 Logstash 上去。这一节中我们将通过修改 Topbeat 的默认配置文件来完成对 Topbeat 的配置。
在客户端上打开 Topbeat 的配置文件:
sudo vi /etc/topbeat/topbeat.yml
注意:Topbeat 的配置文件是 YAML 格式,所以其对格式的要求非常高,注意要采用与原配置文件相同的缩进格式。
在该配置文件的首部是 input
小节,在这一小节中,你需要指定你要把什么类型的统计数据传到你的 ELK 服务器上,并且指定这些统计数据的单位。在这里我们将使用默认配置,但如果有需要的话你也可以自己做出更改。
在 output
小节下面,找到内容为 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 使其通过 5044 端口连接到你 ELK 服务器上的 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 使用我们在上一篇文章中创建的 SSL 安全证书进行连接。
现在,让我们重启 Topbeat 使我们的改变生效:
sudo service topbeat restart
sudo update-rc.d topbeat defaults 95 10
如果你不确定你的配置是否正确,请与示例文件进行对比。
完成了上述这些之后,你的客户端就已经在向 ELK 服务器上的 Logstash 发送数据了!在你的每一台客户端上重复上述步骤。
测试 Topbeat 是否正确安装
如果你的 ELK Stack 已经正确配置,那么你客户端上的 Topbeat 应该已经开始往你的 ELK 服务器上的 Logstash 发送日志文件,而 Logstash 应该把上述的日志文件加上时间戳在 Elasticsearch 中创建 topbeat-YYYY.MM.DD.
这样的饿索引。
在你的 ELK 服务器上面执行下列命令以确定 Elasticsearch 确实在以询问 Topbeat 引索的方式接收信息。
curl -XGET 'http://localhost:9200/topbeat-*/_search?pretty'
你将得到这样的输出:
{
"_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"}
}
在上面的输出中,如果 total
显示为 0 ,那么表示 Elasticsearch 没有任何 Topbeat 的数据,你需要重新安装并查错。
反之,如果你得到了像上面一样的输出,那么请继续下一步。
连接 Kibana
当你在所有的客户端上面都完成了 Topbeat 配置之后,你难免会想要比较各个客户端的状态,让我们使用 Kibana 吧!
在任意一个浏览器,在地址栏键入你 ELK 服务器的 FQDN 或者公网 IP ,登陆之后你将会看到 Kibana Discover 页面(如下图所示)。
从左侧边栏选择明为 [topbeat]-YYY.MM.DD
的记录,在右侧查看记录详情。
在这个页面你可以搜索你的 Topbeat 记录。
如果你想要查看我们之前导入的 Topbeat 仪表盘,那么请按下面的方式操作:
点击位于顶部的 Dashboard
按钮,然后点击 Load Saved Dashboard
,然后进入列表的第二页,点击 Topbeat-Dashboard
。
结语
现在,你的整个系统都由 Elasticsearch 和 Logstash 集中管理,你可以通过 Kibana 动态监视他们。
译文链接: http://www.linuxstory.org/how-to-gather-infrastructure-metrics-with-topbeat-and-elk-on-ubuntu-14-04
转载请注明出处,否则必究相关责任!
Expression of profibrotic and renin angiotensin system RAS genes in the left ventricle LV of Dahl salt sensitive DS rats in the five experimental groups at 11 weeks of age finasteride online worldwide delivery Br J Surg 2004; 91 6 699 704