Fluentd+Hadoop结合进行日志收集、分析

来源:互联网 发布:罗马废墟知乎 编辑:程序博客网 时间:2024/06/07 10:20
Fluentd+Hadoop结合进行日志收集、分析博客分类:
 Hadoop日志收集分析Fluentd 本文章已收录于: Hadoop Fluentd是一个实时日志收集系统,它把日志作为JSON stream,
可以同时从多台server上收集几百G的日志。fluentd易于安装,有灵活的插件机制和缓冲,支持日志转发。
它的特点在于各部分均是可定制化的,可以通过简单的配置,将日志收集到不同的地方。Hadoop是一个能够对大量数据进行分布式处理的软件框架, 
可以对日志进行数据处理。Hadoop伪分布式安装:http://www.lishiming.net/thread-5637-1-1.htmlFluentd官网安装文档:
http://docs.fluentd.org/articles/install-by-rpmFluentd安装:一、安装准备1)、调整时间2)、 
修改最大文件数ulimit -n 查看vi /etc/security/limits.confroot soft nofile 65536root hard nofile 65536复制代码3)、
修改内核vi /etc/sysctl.conf net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.ip_local_port_range = 
10240 65535复制代码二、 用RPM包安装td-agent (td-agent是Fluentd的稳定安装包)
curl -L http://toolbelt.treasure-data.com/sh/install-redhat.sh | sh
复制代码三、启动/etc/init.d/td-agent start /etc/init.d/td-agent status
复制代码配置文件:/etc/td-agent/td-agent.conf
重新加载配置文件:/etc/init.d/td-agent reload
复制代码默认配置是从HTTP取日志,然后输出到/var/log/td-agent/td-agent.log。
可修改相应配置文件用curl测试curl -X POST -d 'json={"json":"message"}' 
http://localhost:8888/debug.test[root@test td-agent]# tail -f /var/log/td-agent/td-agent.log 2013-09-25 14:54:11 +0800 
[info]: adding source type="forward"2013-09-25 14:54:11 +0800 
[info]: adding source type="http"2013-09-25 14:54:11 +0800 
[info]: adding source type="debug_agent"2013-09-25 14:54:11 +0800 
[info]: adding match pattern="td.*.*" type="tdlog"2013-09-25 14:54:11 +0800 
[info]: adding match pattern="debug.**" type="stdout"2013-09-25 14:54:11 +0800 
[info]: listening fluent socket on 0.0.0.0:242242013-09-25 14:54:11 +0800 
[info]: listening dRuby uri="druby://127.0.0.1:24230" object="Engine"2013-09-25 14:59:22 +0800 debug.test: {"json":"message"}复制代码配置文件参考文档:http://docs.fluentd.org/articles/config-file配置包含如下几个部分source: 输入源match :输出目的地include:包含其它配置文件等############## type tail format apache path /usr/local/apache/logs/access_log tag apache.access#其中:#1.type tail: tail方式是 Fluentd 内置的输入方式,其原理是不停地从源文件中获取新的日志,相当与tail –f命令。#2.format apache: 指定使用 Fluentd 内置的 Apache 日志解析器。#3.path: 指定日志文件位置。#4.tag:tag被用来对不同的日志进行match type file path /usr/local/log/fluent/access# Include config files in the ./config.d directoryinclude config.d/*.conf##############复制代码四、配置Fluentd与HDFS结合首先安装Hadoop,见链接http://www.lishiming.net/thread-5637-1-1.htmlFluentd新版本中添加了对HDFS的支持,out_webhdfs插件td-agent方式默认已经安装out_webhdfs插件参考文档:http://docs.fluentd.org/articles/http-to-hdfs http://docs.fluentd.org/articles/out_webhdfs#install测试将本机APACHE文件,output到HDFS。1、Hadoop要首先建立空的文件系统,并建立日志目录[root@test log]#hadoop fs -mkdir /usr/local/log///设置权限,否则会报错 “Permission denied: user=webuser, access=WRITE, inode=\\\"log\\\”[root@test log]#hadoop fs -chmod 777 /usr/local/log/复制代码2、设置Hadoop,修改配置文件hdfs-site.xml,加入如下 dfs.webhdfs.enabled true dfs.support.append true dfs.support.broken.append true复制代码3、Fluentd配置文件内容,input为Apache日志,output为HDFS type tail format apache path /usr/local/apache/logs/access_log tag td.apache.access## type file path /usr/local/log/# type webhdfs host test port 50070 path /usr/local/log/%Y%m%d_%H/access.log.${hostname} flush_interval 10s复制代码4、查看日志内容是否成功,访问APACHE,成功则会在HDFS中产生相应日志文件[root@test log]# hadoop fs -ls /usr/local/log/Found 1 itemsdrwxrwxrwx - webuser supergroup 0 2013-09-29 14:14 /usr/local/log/20130929_14复制代码日志output到Hadoop后,可以编写相应的MapReduce程序进行分析处理测试过程中,如果配置文件修改错误,会无法重装加载配置文件,td-agent进程关闭的情况,可查看日志文件/var/log/td-agent/td-agent.log,会有报错相关信息 转自:http://www.aminglinux.com/bbs/forum.php?mod=viewthread&tid=5636

0 0
原创粉丝点击