前不久使用Keepalived搭建了Nginx双活代理服务器,以达到一个公网IP后支持多个云主机的多个域名网站的目的。完成后又想在这双活的Nginx上有所有访问网站的日志,之前有了解过Google Analytics, 及一些日志分析系统。后来终于找到并部署了几个开源的分析系统,包括AWStats,JAWStats及Piwik。使用它发现有一个问题比较烦,就是如何将2个Nginx的日志发送到分析服务器后合并分析。

 

一、需求

     合并多台服务器同一域名网站的访问日志后,定时导入网站分析系统,生成网站分析数据。

二、技术方案

     前后想了很多方法,包括自已写脚本加入Cron定时发送到分析服务器,Fluentd日志收集系统等许多方法,最终选定使用flume-ng完成该了该任务,相对其它来说我觉得他应是安装配置最简单的一种方法。

     1.在分析服务器上安装flume-ng,用以日志收集。首先安装JDK(完成后记住配置JAVA_HOME等环境变量).下载flume-ng最新版后解压后即可使用。使用前添加收集服务器配置,示例如下:

collector1.sources = AvroIn
collector1.sources.AvroIn.type = avro
collector1.sources.AvroIn.bind = 0.0.0.0
collector1.sources.AvroIn.port = 4545
collector1.sources.AvroIn.channels = mc1

collector1.channels = mc1
collector1.channels.mc1.type = memory
collector1.channels.mc1.capacity = 100

collector1.sinks = LocalOut

collector1.sinks.LocalOut.type = file_roll
collector1.sinks.LocalOut.sink.directory = /var/log/flume/collector1
collector1.sinks.LocalOut.sink.rollInterval = 0
collector1.sinks.LocalOut.channel = mc1
View Code

相关文章: