通过命令行通过nginx获取平均请求在服务器上

我试图通过命令行获取平均请求在服务器上1分钟的数据。如果任何人帮助我,这将是非常感谢。

虽然我不确定,但是你想完成什么,我有一个想法:只要使用netcat来直接从互联网上获取请求:

netcat -k -l 1.2.3.4 8080 >/tmp/requests.log 

确保使用服务器的IP地址replace1.2.3.4,使用端口8080replace它正在监听的端口(可能是80 eg)。 如果您的nginx服务器在IP 0.0.0.0上侦听,netcat将能够获取任何传入的请求并logging它们。 如果ngingx正在监听1.2.3.4,那么在netcat可以在1.2.3.4和与ngingx相同的端口上侦听之前,您必须停止它。

请注意,在一些Linux系统上,而不是netcat你必须键入nc

另外要注意的是,无论netcat是否抓取,nginx都无法读取,所以你的网站访问者将得到错误信息。

如果端口号低于1024,netcat需要root权限才能打开端口。

你可能想要使用ngxtop 为了这

如果您试图从现有日志中获取平均分钟级数据,则需要执行以下操作:

cat /var/log/nginx/access.log | sed -E 's/. [0-9]{2}/[A-Za-z]{3}/[0-9]{4}:([0-9]{2}:[0-9]{2}). /\1/' | uniq -c