10x系列之Clay.io是如何处理日志的
jopen
10年前
【编者的话】Clay.io基于Docker来管理服务器日志,架构组合是Docker+Logstash+ElasticSearch,文章对各个工具进行了简单介绍。Clay.io还开源了Docker容器,以帮助开发者快速构建一个分布式的日志系统。
对于一个小团队来说,管理20多台服务器并不是一件简单的事情,当发生故障时,我们需要迅速定位问题。当然我们不能挨个去ssh,这非常耗时间,在Clay.io我们选择使用 Logstash来聚合日志。
这是我的“10x”系列的第二篇文章,如果你错过了上一篇,可以 点此阅读。
Logstash概览
Logstash的部署可以分为两部分,聚合服务器(集群)和客户端服务器,聚合服务器可以通过logstash
包运行,客户端服务器可以通过 logstash-forwarder
运行,它负责将日志传输到 logstash
实例。这是我们的配置图: 注意
logstash-forwarder
不会rotate(分割)日志,日志ratation是一个将老的日志按照大小或者日期存储到buckets的过程,做这项工作的工具是 [logrotate](http://linuxcommand.org/man_pages/logrotate8.html)
。 日志分析
Logstash进程会运行 ElasticSearch和 Kibana来分析日志,ElasticSearch支持多条件查询和过滤日志数据。
注意你不能对外暴露ElasticSearch的端口,以免服务器遭受攻击。我们就曾经被攻击过,解决方案是将我们的基础架构迁移到 Amazon VPC,这样所有的服务都在内网环境中。
Journalist + Scribe
我们已经开源了我们的Docker容器,这样所有人都可以在几秒钟内构建一个分布式的日志系统。Logstash Server: clay/journalist-public原文地址: http://zolmeister.com/2014/10/ ... .html
Logstash-forwarder Server: clay/scribe-public