作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:https://github.com/sunshinelyz/mykit-delay
写在前面
Nginx作为最常用的反向代理和负载均衡服务器,被广泛的应用在众多互联网项目的前置服务中,很多互联网项目直接将Nginx服务器作为整个项目的流量入口。这就使得我们可以通过对Nginx服务器日志的分析,就可以分析出整个网站的访问总量、PV、UV、VV等信息。
实际上,企业的业务线众多,很难使用一台Nginx服务器来代理所有的线上服务,这就导致企业会在线上部署多台Nginx服务器。而我们如果想分析所有Nginx服务器的总流量信息时,如果分别对每个Nginx服务器进行分析,再汇总所有的信息,一方面增加了分析的复杂度,另一方面也不好维护这些日志信息。
所以,大部分企业会将这些日志信息统一汇总到某个数据存储集群中,以方便的进行数据存储、维护与分析统计。那么如何对Nginx的日志进行格式化并推送到远程的服务器呢?今天,我们就一起来探讨下这个问题。
配置Nginx
格式化Nginx日志并推送到远程服务器,其实很简单,我们只需要在Nginx服务器的配置文件nginx.conf中进行简单的配置即可。例如,我们可以在nginx.conf文件中添加如下配置。
- 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";
- 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";
- access_log logs/access.log common;
- access_log syslog:server=192.168.1.100:9999,facility=local7,tag=nginx,severity=info main;
- map $http_upgrade $connection_upgrade {
- default upgrade;
- '' close;
- }
上述配置是将Nginx的日志各项参数以逗号分隔的形式进行输出,同时将Nginx日志实时推送到192.168.1.100:9999上。
此时,我们只需要在192.168.1.100服务器上部署一个TCP或UDP服务,监听端口为9999,并在192.168.1.100服务器的防火墙开放9999端口。我们写的TCP或UDP服务就会实时接收到Nginx服务器发送过来的日志。
通过这种方式,我们就可以将Nginx日志实时收集到某个存储集群中,对Nginx日志进行统一存储、维护和分析。
本文转载自微信公众号「冰河技术」,可以通过以下二维码关注。转载本文请联系冰河团队 公众号。
随着5G、数据中心、人工智能、工业互联网等新基建和创新业务的增加与应用的多元...
作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,...
本文转载自微信公众号「三太子敖丙」,作者三太子敖丙。转载本文请联系三太子敖...
【51CTO.com原创稿件】在本系列的前面三期中,我和大家一起讨论了去年防疫期间,...
跨境电商平台在现如今的制造行业发展趋势中并许多 见,比如京东商城,阿里巴巴网...
当在读这篇文章的时候,你有没有想过,服务器是怎么把这篇文章发送给你的呢? 说...
随着新冠疫情的蔓延,首席信息官面临着前所未有的巨大挑战。对于许多商业领袖而...
CIO们在准备为全球新冠疫情肆虐的去年做总结时,许多人对未来仍然抱着非常乐观的...
OSS 即 object storage service,对象存储服务,也是每个云厂商提供的最基本的云...
当消费者按照社交疏散准则纷纷涌向在线购物时,冠状病毒疫情刺激了本已十分繁荣...