OpenResty 安裝,收集日誌保存到文本文件

目錄

 

安裝

1.安裝相關類庫

2.安裝編譯openresty

3.編寫配置啓動openresty服務

4.通過 openresty 保存日誌數據到系統


安裝

1.安裝相關類庫

yum install -y readline-devel pcre-devel openssl-devel gcc

2.安裝編譯openresty

wget https://openresty.org/download/openresty-1.15.8.2.tar.gz
tar -zxvf openresty-1.15.8.2.tar.gz 

./configure
make 
make install

3.編寫配置啓動openresty服務

創建一個目錄,保存nginx.conf文件

這裏我們在openresty創建目錄,目錄名爲 jast ,在哪裏創建都可以

mkdir jast

在jast目錄下創建 conf 目錄 與 logs目錄

mkdir logs
mkdir conf

在conf目錄下創建文件 nginx.conf ,內容如下

worker_processes  1;
error_log logs/error.log;
events {
    worker_connections 1024;
}
http {
    server {
        listen 2199;
        location / {
            default_type text/html;
            content_by_lua '
                ngx.say("<p>Hello, World!</p>")
            ';
        }
    }
}

代表我們監控2199端口,返回內容爲Hello, World!

啓動nginx服務,

/usr/local/openresty/nginx/sbin/nginx -p /root/openresty/openresty-1.15.8.2/jast -c conf/nginx.conf

-p :剛剛創建的jast目錄,項目目錄
-c :剛剛創建的配置文件目錄

 查看服務

[root jast]# ps -ef|grep nginx
root     17576     1  0 11:12 ?        00:00:00 nginx: master process /usr/local/openresty/nginx/sbin/nginx -p /root/openresty/openresty-1.15.8.2/jast -c conf/nginx.conf
nobody   17577 17576  0 11:12 ?        00:00:00 nginx: worker process

通過瀏覽器訪問:http://ip:2199,查看返回結果成功

4.通過 openresty 保存日誌數據到系統

log.gif 方式

使用log.gif方便前端做埋點日誌

修改nginx.conf 文件

# vim nginx.conf 

worker_processes  1;
error_log logs/error.log;
events {
    worker_connections 1024;
}
http {
    server {
        listen 2199;
        location / {
            default_type text/html;
            content_by_lua '
                ngx.say("<p>Hello, World!</p>")
            ';
        }
        location /log.gif {

            #僞裝成gif文件
            default_type image/gif;

            #本身關閉access_log
            access_log off;

            #使用lua將nginx的接收參數寫入到日誌文件中
            log_by_lua_file 'conf/log_conf.lua';

            #返回空圖片
            empty_gif;
        }
    }
}

編寫log_conf.lua 文件

# vim log_conf.lua 

-- 引入lua json庫
local cjson = require "cjson"

-- 獲取請求參數
local request_args_tab = ngx.req.get_uri_args()

-- 獲取系統時間
local time = os.date("%Y%m%d%H",unixtime)

-- 創建file對象,注意這裏目錄是啓動openresty時 -p 指定目錄下的logs目錄,並且 logs 權限要設置爲 chmod o+x 
local file = io.open("logs/data-" .. time  .. ".log","a")

-- 創建json對象
local log_json = {}

-- 將請求參數轉爲json
for k,v in pairs(request_args_tab) do
        log_json[k] = v
end

-- json數據寫入文件,並\n換行
file:write(cjson.encode(log_json),"\n")

file:flush()

重新加載配置文件

/usr/local/openresty/nginx/sbin/nginx -p /root/openresty/openresty-1.15.8.2/jast -c conf/nginx.conf -s reload

請求接口:http://ip:2199/log.gif?test=測試數據&a=b

查看logs目錄下數據,接收成功

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章