如何格式化日志并推送到远程服务器?看完原来很简单!!

服务器
Nginx作为最常用的反向代理和负载均衡服务器,被广泛的应用在众多互联网项目的前置服务中,很多互联网项目直接将Nginx服务器作为整个项目的流量入口。

作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:https://github.com/sunshinelyz/mykit-delay

[[334018]]

写在前面

Nginx作为最常用的反向代理和负载均衡服务器,被广泛的应用在众多互联网项目的前置服务中,很多互联网项目直接将Nginx服务器作为整个项目的流量入口。这就使得我们可以通过对Nginx服务器日志的分析,就可以分析出整个网站的访问总量、PV、UV、VV等信息。

实际上,企业的业务线众多,很难使用一台Nginx服务器来代理所有的线上服务,这就导致企业会在线上部署多台Nginx服务器。而我们如果想分析所有Nginx服务器的总流量信息时,如果分别对每个Nginx服务器进行分析,再汇总所有的信息,一方面增加了分析的复杂度,另一方面也不好维护这些日志信息。

所以,大部分企业会将这些日志信息统一汇总到某个数据存储集群中,以方便的进行数据存储、维护与分析统计。那么如何对Nginx的日志进行格式化并推送到远程的服务器呢?今天,我们就一起来探讨下这个问题。

配置Nginx

格式化Nginx日志并推送到远程服务器,其实很简单,我们只需要在Nginx服务器的配置文件nginx.conf中进行简单的配置即可。例如,我们可以在nginx.conf文件中添加如下配置。

  1. log_format common "$remote_addr,$http_ip,$http_mac,$time_local,$status,$request_length,$bytes_sent,$body_bytes_sent,$http_user_agent,$http_referer,$request_method,$request_time,$request_uri,$server_protocol,$request_body,$http_token"
  2.  
  3. log_format main "$remote_addr,$http_ip,$http_mac,$time_local,$status,$request_length,$bytes_sent,$body_bytes_sent,$http_user_agent,$http_referer,$request_method,$request_time,$request_uri,$server_protocol,$request_body,$http_token"
  4.  
  5. access_log  logs/access.log  common; 
  6.  
  7. access_log syslog:server=192.168.1.100:9999,facility=local7,tag=nginx,severity=info main; 
  8.   map $http_upgrade $connection_upgrade { 
  9.     default upgrade; 
  10.     ''      close
  11.  }  

上述配置是将Nginx的日志各项参数以逗号分隔的形式进行输出,同时将Nginx日志实时推送到192.168.1.100:9999上。

此时,我们只需要在192.168.1.100服务器上部署一个TCP或UDP服务,监听端口为9999,并在192.168.1.100服务器的防火墙开放9999端口。我们写的TCP或UDP服务就会实时接收到Nginx服务器发送过来的日志。

通过这种方式,我们就可以将Nginx日志实时收集到某个存储集群中,对Nginx日志进行统一存储、维护和分析。

本文转载自微信公众号「冰河技术」,可以通过以下二维码关注。转载本文请联系冰河团队 公众号。

 

责任编辑:武晓燕 来源: 冰河技术
相关推荐

2009-08-25 12:37:38

个人服务器架设

2010-06-30 12:37:04

SNMP服务器

2010-09-28 15:56:49

2022-01-07 13:34:25

Java时间格式化

2022-05-09 08:17:37

InstantJava字符

2011-11-21 16:32:19

2010-03-18 17:16:42

服务器重启服务器

2014-11-25 15:02:01

客服系统

2010-08-09 11:20:17

DB2服务器

2018-12-05 10:26:43

服务器HFSIIS

2021-08-13 07:56:13

Python虚拟环境

2010-07-19 21:24:34

启动Telnet服务器

2010-09-28 15:18:27

如何建立DHCP服务器

2009-03-04 06:37:00

2013-10-23 11:00:33

服务器远程管理

2020-09-02 07:19:41

printf 格式化输出Unix

2023-05-10 10:35:14

服务器代码

2022-05-17 07:54:40

代码前端格式化

2010-08-05 08:54:03

DB2连接服务器

2009-02-27 13:53:00

远程服务器RAS
点赞
收藏

51CTO技术栈公众号