我们正在运行 Apache 2.2.9 (Win32),在一台服务器上配置了一些虚拟主机。每个都有自己的 ErrorLog 和 CustomLog 设置,格式为“logs/[域名]-error.log”和“logs/[域名]-access.log”。不幸的是,这些现在正在创建相当大的文件。
在 IIS 上,您可以指定日志计划,它可以将它们置于“yymmdd.log”的每日格式中。我可以在这里做类似的事情吗?
也不一定是每天,每周或每月都可以。我只想将它们分解,以便我们可以保留 X 数量而不是它曾经记录的所有内容。一个快速的谷歌似乎提出了许多面向 Linux 的答案,涉及日志拆分器、脚本和 cron 作业,这对 Windows 安装没有太大帮助。
更新
感谢radius,我调整了我的httpd-vhosts.conf以使用Apache 内置的rotatelogs命令,格式如下:
ErrorLog "|bin/rotatelogs logs/[domain name]-error.%Y-%m-%d-%H_%M_%S.log 5M"
CustomLog "|bin/rotatelogs logs/[domain name]-access.%Y-%m-%d-%H_%M_%S.log 5M" common
当当前日志文件达到 5MB 时,他们将创建一个新的日志文件。我知道这不是每天所要求的,但这可以使它们保持在可管理的规模上。几秒钟后我确实尝试了旋转,但它似乎没有正确地将时间戳记放在文件名中(特别是小时、分钟和秒)。
我在家里为我的个人网站运行我自己的服务器,运行带有 Apache、Bind9 和 Django 的 Ubuntu Server。您建议最好定期跟踪哪些日志?(而不是在出现问题时阅读)。我正在考虑检测入侵尝试(我以前遇到过 SSH 错误)和我网站上的异常流量或错误。
有人可以推荐一个好的免费程序来分析 Apache Tomcat 日志。我不需要实时分析或类似的东西。我有一个日志,我只是想要一种快速简便的方法来从中获取一些使用情况统计信息。统计数据甚至不必太花哨——我只想粗略了解每天、每周和每月的独特用户。
谢谢,
巴特。
最近(但它也是一个反复出现的问题)我们看到了 3 个关于黑客和安全的有趣主题:
最后一个没有直接关系,但它强调了搞乱 Web 服务器管理是多么容易。
由于有几件事情可以做,在不好的事情发生之前,我想就限制攻击的背面影响的良好实践以及如何在不幸的情况下做出反应方面提出您的建议。
这不仅仅是保护服务器和代码的问题,也是审计、日志记录和反措施的问题。
您是否有任何好的做法列表,或者您更喜欢依赖软件或专家来持续分析您的 Web 服务器(或根本不分析)?
如果是,你能分享你的清单和你的想法/意见吗?
更新
我收到了几个很好的和有趣的反馈。
我想要一个简单的列表,这样既可以方便 IT 安全管理员使用,也可以方便网络事实管理员。
即使每个人都给出了很好和正确的答案,但目前我更喜欢Robert的一个,因为它最简单、清晰和简洁,而sysadmin1138的一个最完整和精确。
但是没有人考虑用户的观点和感知,我认为这是首先必须考虑的。
用户在访问我被黑网站时会怎么想,如果您拥有有关他们的合理数据,则更多。这不仅仅是在何处存储数据的问题,而是如何安抚愤怒的用户的问题。
数据、媒体、权威和竞争对手呢?
我正在使用 posgtres 的内部日志轮换机制。我希望删除超过 30 天的日志文件。我如何让 postgres 做到这一点?如果 postgres 不支持它,我可以将 logrotate 设置为只删除 30 天以上的日志吗?
我目前的配置是:
log_destination = 'stderr'
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
#log_truncate_on_rotation = off
log_rotation_age = 1440
log_rotation_size = 0
Run Code Online (Sandbox Code Playgroud) 此条目已记录在 Apache 访问日志中:
IP 地址 - - [00/00/0000:00:00:00 -0000] " " 301 - "-" "-"
它被 LogWatch 检测为空的 HTTP 响应,也被标记为成功的探测。
我很好奇这个请求是如何提出的,以及它如何被认为是一个成功的调查。以下是我可以通过特定问题破译的内容:
代表用户运行的进程的常规日志位置是什么?
~/.foo/logs/ - 我的首选,但不是超级棒
/var/log/foo.uid/ — 非系统用户不能在这里创建目录,首先需要合作创建。
/var/log/(例如/var/log/foo.log)中的公共文件- 非私有
等等。
是否可以在 Windows 7 中记录打印作业?我只能启用没有打印作业事件的 PrintService 日志。
我正在调查运行 VMware ESXi 5.1的HP ProLiant DL360 G7服务器上的系统中断。
虽然我非常提倡为 ESXi 安装 HP 特定的管理代理或使用自定义的 .ISO 映像,但我从未注意到我在其他平台上使用的一些命令行实用程序丢失了:
# esxcli software vib list| grep -i hewlett
char-hpcru 5.0.3.09-1OEM.500.0.0.434156 Hewlett-Packard PartnerSupported 2013-01-24
char-hpilo 500.9.0.0.9-1OEM.500.0.0.434156 Hewlett-Packard PartnerSupported 2013-01-24
hp-ams 500.9.2.0-11.434156 Hewlett-Packard PartnerSupported 2013-01-24
hp-smx-provider 500.03.01.10.2-434156 Hewlett-Packard VMwareAccepted 2013-01-24
hpacucli 9.20-9.0 Hewlett-Packard PartnerSupported 2013-01-24
hpbootcfg 01-01.02 Hewlett-Packard PartnerSupported 2013-01-24
hponcfg 04-00.10 Hewlett-Packard PartnerSupported 2013-01-24
Run Code Online (Sandbox Code Playgroud)
在 Windows 和 Linux HP ProLiant 系统上,我使用hpasmcli或hplog命令行工具来重放/检查系统的集成管理日志 (IML)。它本质上是服务器的事件日志。这也可在 ILO 界面中使用。
碰巧的是,我正在使用的系统似乎没有连接和配置其 ILO。这是无法访问的...... (我知道,修复国际劳工组织......)
是否有一种快速的方法可以从 ESXi 主机端检查系统的事件日志?
我的环境有用户请求通过多个系统:
[客户端] --> [ELB] ---> [nginx] --> [网络]
(ELB = AWS 弹性负载均衡器)
多亏了这个答案,我让 nginx 确定并将正确的客户端 IP 地址传递给带有X-Forwarded-For和X-Real_IP标头的上游服务器(Web)。相关的 nginx 配置:
real_ip_header X-Forwarded-For;
set_real_ip_from 10.0.0.0/8;
real_ip_recursive on;
proxy_set_header X-Real-IP $remote_addr;
Run Code Online (Sandbox Code Playgroud)
我的问题是,nginx 中的 Real IP 模块用$remote_addr其X-Forwarded-For计算结果替换了现有变量。这为我提供了原始客户端 IP,但我丢失了实际将请求发送到代理(即 ELB)的系统的 IP 地址。
总的来说,拥有客户端 IP 对我来说更重要,但我希望能够记录完整的请求链,以便我可以了解(和调试)流量是如何流动的。目前,我只能让 nginx 记录客户端 IP、它自己的 IP 和上游服务器 IP。我也希望能够记录 ELB IP。
logging ×10
log-files ×3
apache-2.2 ×2
301-redirect ×1
amazon-elb ×1
hacking ×1
hp ×1
hp-proliant ×1
linux ×1
logrotate ×1
logwatch ×1
nginx ×1
postgresql ×1
printing ×1
security ×1
tomcat ×1
ubuntu ×1
unix ×1
vmware-esxi ×1
windows ×1
windows-7 ×1