小编Tha*_*Guy的帖子

在 Apache LogFormat 定义中使用 %v 匹配 ServerName 而不是请求的特定 vhost

我们有一个使用 DNS 通配符的应用程序,即 *.app.example.com。我们在 Ubuntu Hardy 上使用 Apache 2.2。Apache 配置的相关部分如下。

在 /etc/apache2/httpd.conf 中:

LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vlog
Run Code Online (Sandbox Code Playgroud)

在 /etc/apache2/sites-enabled/app.example.com 中:

ServerName app.example.com
ServerAlias *.app.example.com
...
CustomLog "|/usr/sbin/vlogger -s access.log /var/log/apache2/vlogger" vlog
Run Code Online (Sandbox Code Playgroud)

客户使用自己的 URL 访问此应用程序,例如 company1.app.example.com、company2.app.example.com 等。

此前,%vLogFormat指令将匹配客户端请求的主机名,我们会得到几个子目录下的/ var /日志/的Apache2 /题外话对应于使用各种客户端的URL。

现在,%v似乎与该ServerName值匹配,因此我们只能在 /var/log/apache2/vlogger/app.example.com 下获得一个日志。这破坏了我们的日志文件分析,因为日志文件没有表明日志与哪个客户端相关。

我可以通过将其更改为以下内容LogFormat来轻松解决此问题:

LogFormat "%{Host}i %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vlog
Run Code Online (Sandbox Code Playgroud)

这将使用 HTTP Host: 标头告诉 vlogger 在哪个子目录中创建日志,一切都会好起来的。 …

apache-2.2

3
推荐指数
1
解决办法
6015
查看次数

在多个 Ubuntu/SLES 服务器之间保持个人配置文件同步

我最近开始从事一项具有异构服务器环境的新工作,即 Windows 和 Linux(主要是 Ubuntu,但少数是 SLES)之间的比例约为 50/50。我之前使用 *nix 的经验是大约 5 年前,所以我花了一点时间重新站起来,现在我已经开始对我的环境进行相当多的自定义,即调整我的环境~/.vimrc, ~/.bash_profile 等。

我正在寻找一种可靠的方法来使我的自定义配置文件在多台服务器之间保持同步,同时最大限度地减少手动维护。

我找到了一个解决方案,使用 Dropbox,这似乎是一个很酷的主意。它的维护成本低,而且由于有问题的文件很小,它也不会占用大量带宽。

有没有其他替代建议?

linux synchronization dropbox preferences

2
推荐指数
1
解决办法
304
查看次数

尽管将主机名添加到 /etc/hosts 中,但仍会在主机名上获取“未知主机”

我有一个名为 crow 的 Ubuntu 服务器:

$ hostname
crow
Run Code Online (Sandbox Code Playgroud)

但是当我尝试 ping 它(从它本身)时,我得到了未知主机:

$ ping crow
ping: unknown host crow
Run Code Online (Sandbox Code Playgroud)

尽管在 /etc/hosts 中明确添加了乌鸦:

$ sudo cat /etc/hosts
127.0.0.1       localhost crow
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

回复评论的附加信息:

/etc/nsswitch.conf 的 hosts 行如下所示:

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
Run Code Online (Sandbox Code Playgroud)

ubuntu hosts

2
推荐指数
1
解决办法
7155
查看次数

WSUS 是否更新防病毒程序?

什么是 WSUS(Microsoft Windows Server 更新服务)?客户端站点需要哪些设置才能使用 WSUS?WSUS 是否更新防病毒产品,还是仅支持 Microsoft 软件更新?

谢谢你,萨迪克

wsus

1
推荐指数
1
解决办法
2183
查看次数

当我输入一个不存在的命令时,我的机器在返回 shell 提示符之前停止了大约 5 秒钟

当我输入一个不存在的命令时,它会显示“找不到命令”。然后等待大约 5 秒钟,然后再次显示提示。

我该如何解决?

我正在使用 Fedora。

linux bash fedora

1
推荐指数
1
解决办法
171
查看次数

ESXi 4.1 主机无法识别现有的 VMFS 数据存储

现有设置:

  • host1 和 host2,ESX 4.0,各有 2 个 HBA。
  • lun1 和 lun2,2 个 LUN 属于同一个 RAID 集(我的术语在这里可能很粗略)。

这一直工作得很好。

我添加了 host3、ESXi 4.1、2 个 HBA。

如果我查看配置/存储适配器,我可以看到两个 HBA 都看到了两个 LUN,但是如果我查看配置/存储,我只能看到 1 个数据存储。host1/2 可以看到两个 LUN,而且我也在两个 LUN 上运行虚拟机。

我已重新扫描、刷新甚至重新启动,但 host3 拒绝确认其中 1 个数据存储。

有谁知道发生了什么?

更新:

我用 ESX (not i) 4.0 重新安装了主机,与现有主机的版本相同,但它仍然无法识别 vmfs。我想我要从该数据存储中删除所有内容,然后对其进行格式化。

更新2:

我从头开始创建 LUN,问题变得更加奇怪。我已将 LUN 提供给所有 3 台主机,我可以在 vSphere 客户端的所有 3 台主机上的配置/存储适配器部分看到 LUN。

  • 如果我通过主机 1 上的配置/存储部分在 LUN 上创建数据存储,它工作正常,我可以通过数据存储浏览器创建一个空文件夹,但主机 2 和主机 3 看不到数据存储。
  • 我可以在 host2 上使用添加存储向导,它会看到 LUN。在这一点上,“VMFS 标签”列有我给的标签,并附加了“(头)”。
  • 如果我尝试添加存储向导的“保留现有签名”选项,它会失败并显示错误“无法更改主机配置”。以及显示“在 vCenter Server“vcenter.company.local”上为对象“storageSystem-17”调用“HostStorageSystem.ResolveMultipleUnresolvedVmfsVolumes”的对话框失败。
  • 如果我在 host2 上尝试添加存储向导的“分配新签名”选项,它将完成并且 VMFS 标签将带有“snap-(hexnumber)-”。此时它在 …

vmware-esxi

1
推荐指数
1
解决办法
4万
查看次数

从一行文本中的 2 个或更多 IP 地址中提取 1 个 IP 地址

我有大约 30,000 个 Apache 访问日志,其中一些列出了多个客户端 IP 地址。这是因为 Apache 记录了 X-Forwarded-For 标头而不是客户端的 IP 地址。这样做的原因是因为我们最近在 Web 服务器前面添加了 haproxy。

展望未来,我们将使用Apache 的rpaf仅记录 1 个 IP 地址,即到 haproxy 的传入连接的 IP 地址,因此这不会是一个持续的问题。

这让我想到了实际问题:

如何处理具有多个 IP 地址的现有日志,以仅提取我想要的日志。我假设我需要 sed 或类似的东西,但我更像是一个 Windows 人,所以不是 100% 确定。

规则是:

  • 如果只有 1 个 IP,则不会修改该行。
  • 如果有2个或更多IP,我只想保留倒数第二个IP。它们以逗号分隔。

示例 1、1 个 IP

输入:10.1.1.1 - - [29/Jan/2010:11:00:00] ....(日志行的其余部分)

输出:10.1.1.1 - - [29/Jan/2010:11:00:00] ....(日志行的其余部分)

示例 2,2 个 IP

输入:10.1.1.1 , 10.2.2.2 - - [29/Jan/2010:11:00:00] ....(日志行的其余部分)

输出:10.1.1.1 - - [29/Jan/2010:11:00:00] ....(日志行的其余部分)

示例 3、3 个 IP …

text sed

0
推荐指数
1
解决办法
2603
查看次数