對於線上大流量服務或者需要上報日誌的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...