Tengine Lua Kafka收集日誌

2021-09-09 07:55:29 字數 2408 閱讀 4885

對於線上大流量服務或者需要上報日誌的nginx服務,每天會產生大量的日誌,這些日誌非常有價值。可用於計數上報、使用者行為分析、介面質量、效能監控等需求。但傳統nginx記錄日誌的方式資料會散落在各自nginx上,而且大流量日誌本身對磁碟也是一種衝擊。

我們需要把這部分nginx日誌統一收集彙總起來,收集過程和結果需要滿足如下需求:

支援不同業務獲取資料,如監控業務,資料分析統計業務,推薦業務等。

資料實時性

高效能保證

本環境主要為了收集使用者行為日誌,配合前端埋點實現精確統計使用者行為

方案描述:

1、客戶端,包括安卓、ios、pc、h5頁面通過埋點方式向後台傳送使用者行為

2:nginx接收請求後,使用lua完成日誌整理

3:根據不同業務的nginx日誌,劃分不同的topic。

4:lua實現producter非同步傳送到kafka集群。

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/

wget 

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

如果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:

logstash與filebeat收集日誌

1 背景介紹 日誌收集,採用的是 elk 框架,即 elasticsearch,logstash,kibana,另外還有 filebeat 元件,其中 filebeat 用於掃瞄日誌檔案,將日誌傳送到 logstash 服務,logstash 服務則完成將日誌切分,傳送到 elasticsearch...

windows新增filebeat收集日誌

二,開啟windows,上傳壓縮包到c盤,解壓壓縮包 三,配置filebeat.yml type log enabled true encoding utf 8 paths c programdata elasticsearch logs fields logtype test group test...

收集 Linq 查詢方法收集

開始不間斷收集linq查詢使用的方法,日拱一卒,月可渡江。查詢排序取前6個 var newshops storedb.shops.orderbydescending a a.joindate take 6 tolist 查詢列表 常用用法 var order from u in storedb.or...