Tengine+Lua+Kafka收集日志

一:场景描述

对于线上大流量服务或者需要上报日志的nginx服务,每天会产生大量的日志,这些日志非常有价值。可用于计数上报、用户行为分析、接口质量、性能监控等需求。但传统nginx记录日志的方式数据会散落在各自nginx上,而且大流量日志本身对磁盘也是一种冲击。
我们需要把这部分nginx日志统一收集汇总起来,收集过程和结果需要满足如下需求:
支持不同业务获取数据,如监控业务,数据分析统计业务,推荐业务等。
数据实时性
高性能保证
本环境主要为了收集用户行为日志,配合前端埋点实现精确统计用户行为

方案

方案描述:
1、客户端,包括安卓、IOS、PC、H5页面通过埋点方式向后台发送用户行为
2:nginx接收请求后,使用lua完成日志整理
3:根据不同业务的nginx日志,划分不同的topic。
4:lua实现producter异步发送到kafka集群。

安装Openresty

下载解压Openresty

wget https://openresty.org/download/openresty-1.9.7.4.tar.gz 
tar -xzf openresty-1.9.7.4.tar.gz /opt/nginx/

编译安装

./configure --with-luajit --without-http_redis2_module --with-http_iconv_module
make
make install

安装lua-resty-kafka

下载lua-resty-kafka:

wget https://github.com/doujiang24/lua-resty-kafka/archive/master.zip 
unzip master.zip 

拷贝lua-resty-kafka到openresty

mkdir -p /usr/local/openresty/lualib/kafka
 cp -rf /usr/local/nginx/lua-resty-kafka-master/lib/resty /usr/local/openresty/lualib/kafka/

下载并编译lua-cjson

wget https://github.com/openresty/lua-cjson/archive/2.1.0.6.tar.gz

tar -xvf 2.1.0.6.tar.gz

cd lua-cjson-2.1.0.6

修改Makefile,将地址修改为luajit安装目录

PREFIX =            /usr/local/luajit
LUA_INCLUDE_DIR ?=   $(PREFIX)/include/luajit-2.0
make
make install

安装Zookeeper

安装Kafka

配置

问题解决:

如果nginx出现下面的异常,将producer.lua放置对应的目录即可
2019/03/04 15:42:17 [error] 83444#0: *26 lua entry thread aborted: runtime error: /usr/local/nginx/conf/lua/erphio.lua:3: module ‘resty.kafka.producer’ not found:
no field package.preload[‘resty.kafka.producer’]
no file ‘/usr/local/openresty/lualib/kafka/resty/kafka/producer.lua’
no file ‘./resty/kafka/producer.lua’
no file ‘/usr/local/luajit/share/luajit-2.0.4/resty/kafka/producer.lua’
no file ‘/usr/local/share/lua/5.1/resty/kafka/producer.lua’
no file ‘/usr/local/share/lua/5.1/resty/kafka/producer/init.lua’
no file ‘/usr/local/luajit/share/lua/5.1/resty/kafka/producer.lua’
no file ‘/usr/local/luajit/share/lua/5.1/resty/kafka/producer/init.lua’
no file ‘./resty/kafka/producer.so’
no file ‘/usr/local/lib/lua/5.1/resty/kafka/producer.so’
no file ‘/usr/local/luajit/lib/lua/5.1/resty/kafka/producer.so’
no file ‘/usr/local/lib/lua/5.1/loadall.so’
no file ‘./resty.so’
no file ‘/usr/local/lib/lua/5.1/resty.so’
no file ‘/usr/local/luajit/lib/lua/5.1/resty.so’
no file ‘/usr/local/lib/lua/5.1/loadall.so’
stack traceback:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值