通过Shell和Flume采集每日的访问日志到HDFS

本文介绍了如何使用Shell脚本和Flume来采集Nginx的日志信息,并将其按日期分割上传到HDFS。在需求说明中,提到了Shell方式依赖定时任务调度,而Flume方式则通过配置两个代理实现实时监控和存储。通过这两种方法,可以为后续的数据清洗和分析提供日志数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 需求说明

用Shell脚本和Flume采集Nginx日志信息,按日期分割上传到HDFS上,供后续清洗,分析使用。

2. 实现过程

2.1 Shell方式

分析:实现采集日志,需要在特定时间,如0点执行脚本将Nginx日志分离,重新生成新的日志,将过去的日志修改名字后上传到HDFS上。

#! /bin/bash
# Nginx 目录
NGINX_HOME=/usr/local/nginx
# 获取昨天的时间
YESTERDAY=`date -d"1 day ago" +"%Y%m%d"`
# Hadoop 目录
HADOOP_HOME=/opt/modules/cdh5.14.2/hadoop-2.6.0-cdh5.14.2
# 重命名
/bin/mv ${NGINX_HOME}/logs/access.log ${NGINX_HOME}/logs/access_${YESTERDAY}.log
# 回滚日志
${NGINX_HOME}/sbin/nginx -s reload
# 声明环境变量 执行用户
export HADOOP_USER_NAME=fanl
# 上传日志
${HADOOP_HOME}/bin/hdfs dfs -put ${NGINX_HOME}/logs/access_${YESTERDAY}.log /user/fanl/nginx

这里需要写个定时任务调度,使用crontab,这里就不再写了。直接执行验证。 

 

2.2 Flume方式

通过一个Flume监控Nginx日志将信息发送到一个特定的端口,增加一个聚合Flume收

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值