10x系列之Clay.io是如何處理日志的
Clay.io基于Docker來管理服務器日志,架構組合是Docker+Logstash+ElasticSearch,文章對各個工具進行了簡單介紹。Clay.io還開源了Docker容器,以幫助開發者快速構建一個分布式的日志系統。
對于一個小團隊來說,管理20多臺服務器并不是一件簡單的事情,當發生故障時,我們需要迅速定位問題。當然我們不能挨個去ssh,這非常耗時間,在Clay.io我們選擇使用 Logstash來聚合日志。
Logstash概覽
Logstash的部署可以分為兩部分,聚合服務器(集群)和客戶端服務器,聚合服務器可以通過 logstash包運行,客戶端服務器可以通過 logstash-forwarder運行,它負責將日志傳輸到 logstash實例。這是我們的配置圖:
注意 logstash-forwarder不會rotate(分割)日志,日志ratation是一個將老的日志按照大小或者日期存儲到buckets的過程,做這項工作的工具是
日志分析
Logstash進程會運行 ElasticSearch和 Kibana來分析日志,ElasticSearch支持多條件查詢和過濾日志數據。
注意你不能對外暴露ElasticSearch的端口,以免服務器遭受攻擊。我們就曾經被攻擊過,解決方案是將我們的基礎架構遷移到 Amazon VPC,這樣所有的服務都在內網環境中。
Journalist + Scribe
我們已經開源了
我們的Docker容器,這樣所有人都可以在幾秒鐘內構建一個分布式的日志系統。
本文出自:http://www.open-open.com/lib/view/open1418827153120.html