openresty 使用 log_by_lua 发送日志到 syslog-ng

1. 安装

  1. opm get p0pr0ck5/lua-resty-logger-socket

2. 使用

location   lua_by_lua_block

  1. log_by_lua_block {
  2. local logger = require "resty.logger.socket"
  3. ngx.log(ngx.ERR, "Test Syslog: ", "call")
  4. if not logger.initted() then
  5. local ok, err = logger.init {
  6. host="syslog-ng-host",
  7. port=514,
  8. sock_type="udp",
  9. flush_limit = 1,
  10. --drop_limit = 5678
  11. }
  12. if not ok then
  13. ngx.log(ngx.ERR, "failed to initialize the logger: ", err)
  14. return
  15. end
  16. end
  17. -- construct the custom access log message in
  18. -- the Lua variable "msg"
  19. local url = ngx.var.uri
  20. local method = ngx.req.get_method()
  21. local headers = ngx.req.raw_header(true)
  22. -- tbl
  23. local params_var = ngx.req.get_uri_args()
  24. local client_ip = ngx.var.remote_addr
  25. -- tbl
  26. local user_agent = ngx.req.get_headers()["User-Agent"]
  27. local referer = ngx.req.get_headers()["Referer"] or ""
  28. local cookies = ngx.req.get_headers()["Cookie"]
  29. local bytes, err = logger.log("test")
  30. local bytes, err = logger.log(client_ip.." "..table.concat(params_var).." "..user_agent.." "..referer.." "..cookies.." "..url.." "..method)
  31. if err then
  32. ngx.log(ngx.ERR, "failed to log message: ", err)
  33. return
  34. end
  35. }

3. log server

syslog-ng  其中启用  udp  server  同时可以安装对应的后端storage

  1. yum install -y syslog-ng

4.  log 查询

syslog-ng  server

  1. tail - f /var/log/message

5. 参考资料

https://syslog-ng.org/

https://github.com/cloudflare/lua-resty-logger-socket

时间: 2024-10-19 08:54:59

openresty 使用 log_by_lua 发送日志到 syslog-ng的相关文章

Linux日志系统syslog

实验环境:RHEL5.8 32Bit Linux日志系统syslog详解 ·日志系统 我们的操作系统在运行的过程当种会产生很多的信息,这些信息既是我们观察系统运行过程当中正常状况的一种途径,也为我们提供了当系统发生故障的时候定位问题所在的必要信息,因此Linux系统的日志,就相当于我们的航海日志,事实上任何一个操作系统都提供了一个强大的日志系统用于记录各子系统运行过程当中所产生的各种信息. ·信息的详细程度 根据系统中产生的日志信息的详细程度的不同,我们可以将系统中产生的不同的日志信息分为不同的

Linux01-Linux日志系统syslog详解55

一.日志系统 1.日志系统:syslog() 信息详细程序:日志级别 日志子系统:facility 日志记录动作:Action Linux上的日志系统: syslog syslog-ng: syslog-ng作为syslog的替代工具,可以完全替代syslog的服务,并且通过定义规则,实现更好的过滤功能 系统启动过程的日志: kernel --> 物理终端(/dev/console) --> /var/log/dmesg 查看日志命令: dmesg /var/log/dmesg cat /va

CENTOS6.2系统日志rsyslog替换默认的日志服务syslog 转载自http://www.phpboy.net/linux/648.html

最近遇到配置centos 6.2的sshd及sftp日志,发现/etc/syslog.conf文件不存在,然后: #rpm -qa | grep syslog 出来的是rsyslog-5.8.10-6.el6.x86_64 然后: #cat /etc/rsyslog.conf 出来的内容几乎和以前的/etc/syslog.conf类似,然后百度,Google得出的结论是: Rsyslog可作为系统自带产品syslog的替代品,目前fedra等多种Unix/Linux系列操作系统已经正式将rsys

使用Log4Net发送日志邮件 (转载)

前言 公司前几天重新确立了考核指标,主要是针对我们研发部,而我们的经理要求也高,对我们绩效考核扣分也挺狠的,100分的,出了几个严重bug就变 0分,反正只要被用户发现并且提出来了,就会扣分,没被用户发现自己解决了不追究,还没听说有人写的程序能不出bug,为了能及时的知道出现bug,所以 我在记录错误日志的时候就将错误信息通过邮件发给自己,现在手机微信这么方便,来了邮件就能收到,都是考核惹的祸啊! 正题 log4Net想必很多人都知道,从java的log4j演变而来,开源的,可以到这里下载htt

JAVA使用Logback发送日志到控制台、文件、ELK的最简单用法

一.简述 本文讲JAVA使用Logback发送日志到控制台.文件.ELK的最简单用法. 二.教程 1.新建pom.xml项目引入下列依赖: <dependencies> <!--Begin LogBack Log--> <!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic --> <dependency> <groupId>ch.qos.logback<

将syslog ng日志写入MySQL(远程)数据库

Centos6.5 syslog-ng 3.25 mysql 1,yum install syslog-ng.x86_64 2,yum install mysql.x86_64    // 支持mysql 命令运行 3,mkfifo –m 777 /var/log/mysql.pipe    // 创建通道并赋予权限 4, logsys-ng.conf  // 修改配置文件 //源 source s_sys { file ("/proc/kmsg" program_override(&

如何往rsyslog日志中心发送日志

rsyslog分为服务端和客户端 客户端rsyslog配置文件配置 一下几条比较有用 $ActionQueueType LinkedList   # use asynchronous processing 开启缓存队列 $ActionQueueFileName backup_local # set file name, also enables disk mode 如果客户端挂了,缓存队列写到本地backup_local这个变量上面已经定义了位置 $ActionResumeRetryCount

Linux学习笔记&lt;二十三&gt;——日志系统syslog

syslog服务 syslogd:系统,负责记录非内核产生的日志信息 klogd:内核,专门负责记录内核产生的日志信息 kernel启动的相关日志 kernel --> 物理终端(/dev/console) --> /var/log/dmesg 查看kernel启动的相关日志 #dmesg #cat /var/log/dmesg 日志存储采取滚动的方式(日志切割): messages messages.1 messages.2,... 配置文件/etc/logrotate.conf [[ema

Linux的日志服务---syslog&amp;logrotate

一.概述 在标准的Linux系统上,守护进程klogd从记录3缓冲区中获取内核的信息,再通过syslogd守护进程将它们保存在系统的日志文件中.klogd程序既可以从/proc/kmsg文件中,也可以通过syslog()系统调用来读取这些消息.默认情况下,它选择读取/proc方式实现.不管哪种方式,klogd都会阻塞,直到有新的内核消息可读.在被唤醒后,它会读取新的内核消息并进行处理.默认情况下,它就是把消息传给syslogd守护进程.syslogd守护进程把它接收到的所有消息添加到一个文件中,