我想减少我的 Apache 访问日志的大小,并且需要从日志记录中排除静态文件,例如 js|css|xml|png|gif 等。
我正在解析访问日志以跟踪用户活动和网站数据。
我试过 DonNotLog apache 指令但没有用,可能是我的代码配置有问题:(
我的 Apache 配置是——
SetEnvIf Request_URI "(jpg|css)" DontLog
LogFormat "%v:%p %h %l %u \"%{%s}t\" %D \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" %{username}n %{sessionID}n" vhost_combined DontLog
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种使用 iptables 为 vpn 用户记录 DNS 查询的方法。
我正在寻找的是在系统日志中记录新 DNS 查询的源 IP、记录类型和域名。
我看过http://software.klolik.org/xt_dns/ ,但似乎无法记录查询中使用的实际查找名称。
有任何想法吗?
是否可以配置 Apache2 以防止记录来自用户 Web 请求的任何 IP 地址或其他信息,从而使站点的所有用户匿名?
我有一台运行 Ubuntu 10.04LTS 的服务器(我知道它太旧了),在过去的几周里,它有时对网络流量没有响应,并且需要在早上第一件事(办公室开放时的上午 9 点)进行硬重置.
我查看了 kern.log 并注意到了一个模式。
发生这种情况后,通常会有来自传入外部 ip 地址的 UFW 块、CIFS VFS 错误、来自不同 ip 地址的另一个 UFW 块,然后在重新启动之前不会记录任何内容。我不确定这是否意味着服务器崩溃并停止记录,或者日志是否已关闭或清理。
外部 IP 地址每次都不同。
示例日志:
Feb 19 01:46:43 Server1 kernel: [139893.285676] [UFW BLOCK] IN=eth0 OUT= MAC=00:26:b9:2e:79:5c:3c:81:d8:44:41:00:08:00 SRC=50.30.32.186 DST=10.0.0.1 LEN=52 TOS=0x00 PREC=0x00 TTL=107 ID=2976 DF PROTO=TCP SPT=57588 DPT=80 WINDOW=8192 RES=0x00 CWR ECE SYN URGP=0
Feb 19 02:57:20 Server1 kernel: [144130.370015] CIFS VFS: No response for cmd 50 mid 52893
Feb 19 02:57:21 Server1 kernel: [144130.760010] CIFS VFS: No response to cmd 4 …Run Code Online (Sandbox Code Playgroud) 我有一个 8GB 的文件,调用php.log了一个正在运行的 php 脚本登录到它。记录每个事件对我来说很重要,我想压缩它并清空当前文件而不停止 Web 服务器。
如果我运行:
mv php.log php.log.backup20140305-01
touch php.log
Run Code Online (Sandbox Code Playgroud)
我会丢失一些数据。如何在不丢失任何数据的情况下执行此操作?
我有几个主机,它们基本上是开发人员的游乐场。在这些主机上,他们每个人在 /tmp 下都有一个目录,他可以在那里自由地做他想做的一切——存储文件、写日志等。
当然,日志是要轮换的,否则一周之内磁盘将 100% 满。文件可能很多,但我已经处理过诸如此类的路径/tmp/[a-e]*/*并快乐地生活了一段时间,但是当他们在机器logrotate规则上尝试新的很酷的东西时变得丑陋且难以管理,并且越来越难以理解哪个文件击中了glob。此外,如果要求旋转套接字,logrotate 会出现段错误。
我不想在那种环境中强制执行某些命名策略,我认为这会花费很多时间,并且会让人们感到恼火,并且在某些时候仍然会失败。
而且我仍然需要管理日志,而不仅仅是在晚上管理目录。
那么在这种情况下编写一个脚本来处理这些临时文件是个好主意吗?我更喜欢尽可能坚持使用标准实用程序,但在这里我认为 logrotate 越来越难以管理。
可能有人听说过一些 logrotate 替代方案,它们可以在这样的环境中很好地工作?我不需要电子邮件日志或其他一些高级功能,所以理论上一些评论很好的 find | xargs 会做。
PS 我确实有一个日志聚合器,但是这个东西不会影响我的小可爱的 logstash 机器。
我的 Apache Web 服务器将以下消息记录到access.log:
46.22.173.131 - - [23/Dec/2014:15:34:54 +0100] "GET http://pl.wikipedia.org/wiki/Special:Search?search=&go=Go HTTP/1.1" 302 482 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
182.254.156.77 - - [23/Dec/2014:16:53:22 +0100] "GET http://www.ly.com/ HTTP/1.1" 302 433 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0"`
182.254.208.62 - - [23/Dec/2014:17:57:49 +0100] "GET http://www.ly.com/ HTTP/1.1" 302 433 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0"
Run Code Online (Sandbox Code Playgroud)
我Virtualhost定义了两个s - 一个用于仅重定向到 443 的端口 80 ... 和Virtualhost用于登录到ssl_access.log.
我不明白这些日志是什么意思?是否有人试图通过我的 Web 服务器访问这些 URL? …
本质上,问题就在标题中。我熟悉组合日志格式提供的内容,但是,与组合格式相比,我不明白其中的区别。%i 和 %o 做什么?
我目前正在为我的系统使用 Graylog 设置日志记录,但有一个问题,即日志可能包含敏感信息。标准行为是通过 UDP 发送未加密的日志以防止应用程序阻塞。有没有办法在保持UDP连接的同时保护它?如果 graylog 不适合它,我很乐意切换到提供此功能的工具。您的经验是什么,如果我想维护应用程序的安全性并且不想引入通过 https 进行日志记录带来的延迟,我应该如何实现日志记录?
正如标题一样,我想记录 bash 显示的所有内容,即输入和相关输出。
假设我想要所有内容的“历史”,而不仅仅是输入命令。
我希望将日志存储在不同的文件中,例如每个会话有一个文件(从 shell 的打开到其终止)。
有任何想法吗?