使用fluentd插件聚合Apache日志Slack

在本文中,我们将学习如何使用fluent-plugin-s3插件结合MinIO做为日志聚合器。

1. 前提提件

2. 安装

3. 步骤

第一步:创建存储桶。

fluentd将会实时聚合半结构化apache日志到这个存储桶。

mc mb myminio/fluentd
Bucket created successfully ‘myminio/fluentd’.

第二步:修改fluentd配置以使用MinIO作为存储后端。

aws_key_id, aws_sec_key, s3_bucket, s3_endpoint替换为你自己的值。

/etc/td-agent/td-agent.conf 替换为:

<source>
  @type tail
  format apache2
  path /var/log/apache2/access.log
  pos_file /var/log/td-agent/apache2.access.log.pos
  tag s3.apache.access
</source>

<match>
  @type s3
   aws_key_id  `aws_key_id`
   aws_sec_key `aws_sec_key`
   s3_bucket `s3_bucket`
   s3_endpoint  `s3_endpoint`
   path logs/
   force_path_style true
   buffer_path /var/log/td-agent/s3
   time_slice_format %Y%m%d%H%M
   time_slice_wait 10m
   utc
   buffer_chunk_limit 256m
</match>

第三步: 重启 fluentd server.

sudo /etc/init.d/td-agent restart

第四步: 检查fluentd的日志以确认是否一切正在运行。

tail -f /var/log/td-agent/td-agent.log
    path logs/
    force_path_style true
    buffer_path /var/log/td-agent/s3
    time_slice_format %Y%m%d%H%M
    time_slice_wait 10m
    utc
    buffer_chunk_limit 256m
  </match>
</ROOT>
2016-05-03 18:44:44 +0530 [info]: following tail of /var/log/apache2/access.log

第五步: 验证你的配置。

Ping Apache server。该示例采用ab(Apache Bench)程序。

ab -n 100 -c 10 http://localhost/

第六步: 验证聚合的日志。

MinIO Server的fluent存储桶应该显示聚合后的日志。

mc ls myminio/fluentd/logs/
[2016-05-03 18:47:13 IST]   570B 201605031306_0.gz
[2016-05-03 18:58:14 IST]   501B 201605031317_0.gz

注意事项:

fleuntd需要有访问/var/log/apache2/access.log的权限。