我需要为我的启动设置日志记录服务。我和我的团队没有时间和资源(金钱)来部署日志专用工具。不过,我需要对用户行为进行分析。虽然我要学习分析位并实现它,但我需要记录用户活动,以便稍后可以提取数据并进行数学计算。如何使用nodejs设置HTTP服务器进行日志记录?
我为我的主应用程序(这是一个Web服务)使用基于SQL的(RDBMS)安装程序并计划在DynamoDB(AWS)中记录用户活动。我打算设置一个本地(在同一台服务器上)的Node.Js服务器,它可以处理来自我的基于PHP的应用程序的日志请求,以确保日志记录活动在另一个进程中运行并且可以正常处理。而不会崩溃或减慢主服务器代码。这里的想法是 - 当用户发出请求时,PHP应用程序将调用NodeJS服务器。 NodeJS服务器将接受请求,立即返回,而排队请求(如说200个其他请求),并且PHP应用程序将继续为请求提供服务。 NodeJS服务器将一个接一个地记录队列中的所有内容。
我计划这样做的原因是 - NodeJS在单线程上运行,并且基于事件循环 - 因此,如果突然出现流量高峰,日志请求将排队并将数据发送到Dynamo最终没有让PHP应用程序等待确认。
注意:当我说用户活动,我的意思是应用级的日志记录,如:
- 从ABCD IP地址的用户X试图在2016年9月10日以编号123来访问的文章14:21:22
- 用户Y发表评论#234对文章#987在2016-09-10 18:30:02使用ABC应用程序。
- 用户C从E.F.G.H IP地址登录到Web界面。
当然,数据将采用JSON格式,服务器将调用AWS SDK。
在这里,NodeJs服务器将基本上充当日志代理。基于到目前为止的想法/方案,我有以下问题:
- 是否决定使用DynamoDB进行日志记录请求还是出错?该服务符合我的预算。
- 在这种情况下,NodeJS会受到什么样的限制? nodejs可以吗?
- 我应该使用哪些节点模块? HTTP服务器会做还是有模块公开可用于这种情况?
- 如何确保此服务器仅侦听来自同一台计算机的请求(环回)?
您如何看待[Logstash](https://github.com/elastic/logstash)? – danilodeveloper
@danilodeveloper我认为这是一个非常好的工具。但我没有足够的时间去完成。我也没有足够的资源来完成自己的任务,再加上维护它将成为头痛的问题。长远来说,非常重要的是。现在,对我来说很难(不幸)。 –