通過Nginx採集後台服務介面訪問日誌

2021-10-08 17:13:31 字數 2478 閱讀 9694

採用的是openresty1.15版本。

在nginx的nginx.conf中配置以下引數:

在server配置中新增以下

set_by_lua $operate_timestamp "return tonumber(ngx.var.msec)*1000";

set_by_lua $operate_rdm "return math.random(100000000,os.time())";

set $logid "$operate_timestamp:$operate_rdm:$remote_addr";

完整示例:

server 

}

配置location

在location下新增logid和access_log

proxy_set_header logid $logid;

access_log /data/nginx/logs/operate.log operatelog ;

完整示例:

location ~/api/test/

監測/data/nginx/logs/split/資料夾下的檔案建立事件,讀取處理json資料檔案儲存到資料庫。

資料庫表示例

create table public.tbl_nginx_access_log

( log_id varchar(256)

, user_id varchar(32)

, system_id varchar(32)

, client_ip varchar(64)

, server_ip varchar(64)

, proxypass varchar(64)

, request_time bigint,

request_method varchar(32)

, request_status varchar(32)

, cost_time varchar(32)

, user_agent varchar(1024)

, request_uri varchar(1024)

, referer varchar(1024)

, request_param text

);comment on table public.tbl_nginx_access_log is 'nginx訪問日誌'

; comment on column public.tbl_nginx_access_log.log_id is '日誌id'

; comment on column public.tbl_nginx_access_log.user_id is '使用者id'

; comment on column public.tbl_nginx_access_log.system_id is '系統id'

; comment on column public.tbl_nginx_access_log.client_ip is '客戶端ip'

; comment on column public.tbl_nginx_access_log.server_ip is '服務端ip'

; comment on column public.tbl_nginx_access_log.proxypass is '**服務ip'

; comment on column public.tbl_nginx_access_log.request_time is '訪問時間'

; comment on column public.tbl_nginx_access_log.request_method is '請求方法'

; comment on column public.tbl_nginx_access_log.request_status is '請求狀態'

; comment on column public.tbl_nginx_access_log.cost_time is '耗時'

; comment on column public.tbl_nginx_access_log.user_agent is '客戶端資訊'

; comment on column public.tbl_nginx_access_log.request_uri is '請求介面'

; comment on column public.tbl_nginx_access_log.referer is '請求**'

; comment on column public.tbl_nginx_access_log.request_param is '請求引數'

;

後台服務小點

很多東西本來就存在,只是自己不懂,記錄在此,以便日後複習唄。今天碰到乙個問題就是專案中的靜態頁面是分開的,比如當面部落格頁面,它的頭是單獨的乙個html檔案,而下來的內容又是另外乙個,從專案本身以及在布置到伺服器上都沒有發現拼裝過程,於是好奇之,這是為啥呢,原來nginx早已具有這樣的功能,就是ss...

Linux 後台服務

方法一 fork方式 1.fork乙個子程序,父程序退出,子程序成為孤兒程序,被init程序接管 2.呼叫setsid建立新的程序會話 3.將當前工作目錄切換到根目錄 4.將標準輸入,輸出,出錯重定向到 dev null linux後台程序,fork方式 include include includ...

Mac 後台服務

mac 的後台服務通過launchctl工具實現 也可以使用linux下的crontab 但官方建議使用launchctl。使用launchctl非常簡單,根據需要編寫plist指令碼即可。plist指令碼存放路徑為 library launchdaemons或 library launchagen...