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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/509766.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

暗时间-领悟

作者&#xff1a;排长链接&#xff1a;https://www.zhihu.com/question/20689852/answer/23227406来源&#xff1a;知乎著作权归作者所有&#xff0c;转载请联系作者获得授权。第一次看到“暗时间”这个词&#xff0c;我的第一反应是有点不屑&#xff0c;又是一个概念噱头吧。直…

Openresty Nginx 负载均衡

目录 OpenResty Openresty 服务配置文件 启动Openresty服务 测试调用接口 Nginx 负载均衡服务 nginx 配置文件 启动服务 实现功能 测试结果 这里实现个简单的负载均衡&#xff0c;只做功能展示&#xff08;实际业务比这复杂高&#xff0c;单台服务器无法满足需求的情况…

总结--美丽的敷衍

我看新年 转眼间&#xff0c;2015已经悄然离去&#xff0c;正像2015年刚来时候感叹2014的白驹过隙。年年岁岁花相似&#xff0c;岁岁年年人不同。时间过去了&#xff0c;自己又有如何的不同呢&#xff1f;客观的说&#xff0c;这一年有了一定的长进&#xff0c;但总感觉失去/错…

Hadoop Yarn REST API未授权漏洞利用挖矿分析

目录 一、背景情况 二、 漏洞说明 攻击步骤&#xff1a; 三、入侵分析 四、安全建议 清理病毒 安全加固 五、IOCs 一、背景情况 5月5日腾讯云安全曾针对攻击者利用Hadoop Yarn资源管理系统REST API未授权漏洞对服务器进行攻击&#xff0c;攻击者可以在未授权的情况…

读书-悟

作者&#xff1a;梅芳growing链接&#xff1a;https://www.zhihu.com/question/20689852/answer/95018631来源&#xff1a;知乎著作权归作者所有&#xff0c;转载请联系作者获得授权。《暗时间》这本书&#xff0c;我读过3遍&#xff0c;第一便是在大三时&#xff0c;第二遍是用…

Linux shell编程学习总结

主要内容&#xff1a; shell编程sed命令awk命令crontab定时器 什么是Shell&#xff1f; Shell是用户与内核进行交互操作的一种接口&#xff0c;目前最流行的Shell称为bash Shell Shell也是一门编程语言<解释型的编程语言>&#xff0c;即shell脚本 一个系统可以存在多…

Flink ProcessFunction 介绍使用

目录 实现功能 代码 测试 问题 官网描述&#xff1a;https://ci.apache.org/projects/flink/flink-docs-release-1.10/zh/dev/stream/operators/process_function.html The ProcessFunction is a low-level stream processing operation, giving access to the basic build…

Flink keyby 数据倾斜问题处理

上一篇我们使用keyby后发现数据严重倾斜 https://datamining.blog.csdn.net/article/details/105316728 大概看下问题所在&#xff0c;大量数据在一个subtask中运行 这里我们使用两阶段keyby 解决该问题 之前的问题如下图所示 我们期望的是 但我们的需要根据key进行聚合统计&a…

java中正则表达式

package com.test;import java.util.Scanner;public class M1001{public static void main(String[] args) {String input null;Scanner sc new Scanner(System.in);while(sc.hasNext()){inputsc.nextLine();String regex "^1[3|4|5|7|8][0-9]{9}$";//为表达式模板…

读书-时间(反思)

每一天的时间都非常多&#xff0c;下班以后的时间&#xff0c;周末闲暇的时间&#xff0c;但是时间这么多&#xff0c;自己往往不知道该拿它来干什么&#xff0c;每天下完班以后&#xff0c;回到家&#xff0c;打开电脑&#xff0c;打开手机&#xff0c;首先看一看QQ&#xff0…

Kafka 优化参数 unclean.leader.election.enable

Kafka 某个节点挂掉&#xff0c;导致整个服务异常&#xff0c;为了保证服务容灾&#xff0c;可对下面几个参数进行调整 unclean.leader.election.enabletrue min.insync.replicas1 offsets.topic.replication.factor3 这三个配置什么意思呢? 依次来看一下&#xff1a; unclean…

linux中iptables对防火墙的操作

Iptables教程 1. iptables防火墙简介 Iptables也叫netfilter是Linux下自带的一款免费且优秀的基于包过滤的防火墙工具&#xff0c;它的功能十分强大&#xff0c;使用非常灵活&#xff0c;可以对流入、流出、流经服务器的数据包进行精细的控制。iptables是Linux2.4及2.6内核中…

读书--好书

说到好书&#xff0c;我觉得对于每一个人来说&#xff0c;都有自己人生中的一本好书&#xff0c;她的内容能够引起我们的共鸣&#xff0c;认识到自己的不足之处&#xff0c;并且能够指引我们如何去改变它&#xff0c;去战胜它&#xff0c;从而使自己获取进步&#xff0c;得到升…

Web Components入门不完全指北

目前流行的各类前端框架&#xff0c;不管是react, angular还是vue&#xff0c;都有一个共同点&#xff0c;那就是支持组件化开发&#xff0c;但事实上随着浏览器的发展&#xff0c;现在浏览器也原生支持组件式开发&#xff0c;本文将通过介绍Web Components 的三个主要概念&…

Flink 1.9 CDH 6.3 集成

目录 1.下载准备文件 2.felink csa jar包准备 3.将 Flink Parcel放入httpd目录下 4.配置CDH Flink Parcel 5.安装Flink 1.下载准备文件 https://archive.cloudera.com/csa/1.0.0.0/csd/FLINK-1.9.0-csa1.0.0.0-cdh6.3.0.jarhttps://archive.cloudera.com/csa/1.0.0.0/parc…

如何花两年时间面试一个人

http://blog.sina.com.cn/s/blog_4caedc7a0102dycr.html?tj1

ssh免密登陆机制示意图

ssh免密登陆机制示意图

CDH 6.x 安装 Phoenix 服务

最近有个新项目启动&#xff0c;版本升级到6.3&#xff0c;发现CDH6.2 版本已经支持Phoenix parcel安装 一、准备文件 下载 https://archive.cloudera.com/phoenix/6.2.0/csd/PHOENIX-1.0.jar 下载parcel #目录 https://archive.cloudera.com/phoenix/6.2.0/parcels/ #根据…