10x系列之Clay.io是如何处理日志的


【编者的话】Clay.io基于Docker来管理服务器日志,架构组合是Docker+Logstash+ElasticSearch,文章对各个工具进行了简单介绍。Clay.io还开源了Docker容器,以帮助开发者快速构建一个分布式的日志系统。

对于一个小团队来说,管理20多台服务器并不是一件简单的事情,当发生故障时,我们需要迅速定位问题。当然我们不能挨个去ssh,这非常耗时间,在Clay.io我们选择使用Logstash来聚合日志。
logstash_logo.png

这是我的“10x”系列的第二篇文章,如果你错过了上一篇,可以点此阅读。

Logstash概览

Logstash的部署可以分为两部分,聚合服务器(集群)和客户端服务器,聚合服务器可以通过logstash包运行,客户端服务器可以通过logstash-forwarder运行,它负责将日志传输到logstash实例。这是我们的配置图:
scribe.png

注意logstash-forwarder不会rotate(分割)日志,日志ratation是一个将老的日志按照大小或者日期存储到buckets的过程,做这项工作的工具是[logrotate](http://linuxcommand.org/man_pages/logrotate8.html)

日志分析

logstash_screenshot.png

Logstash进程会运行ElasticSearchKibana来分析日志,ElasticSearch支持多条件查询和过滤日志数据。

注意你不能对外公开ElasticSearch的端口,以免服务器遭受攻击。我们就曾经被攻击过,解决方案是将我们的基础架构迁移到Amazon VPC,这样所有的服务都在内网环境中。

Journalist + Scribe

我们已经开源了我们的Docker容器,这样所有人都可以在几秒钟内构建一个分布式的日志系统。

Logstash Server:clay/journalist-public
Logstash-forwarder Server:clay/scribe-public
原文地址:http://zolmeister.com/2014/10/ ... .html

0 个评论

要回复文章请先登录注册