0
点赞
收藏
分享

微信扫一扫

OpenResty 安装,收集日志保存到文本文件

耶也夜 2023-05-06 阅读 71


目录

 

安装

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,查看返回结果成功

OpenResty 安装,收集日志保存到文本文件_nginx

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目录下数据,接收成功

OpenResty 安装,收集日志保存到文本文件_nginx_02

 

举报

相关推荐

0 条评论