记录发往 Cirtix Netscaler 的流量的源 IP

记录发往 Cirtix Netscaler 的流量的源 IP

我尝试让 Ne​​tscaler 记录发往 Netscaler 的所有流量的源 IP。这可能吗?

需要明确的是,我不想将客户端 IP 转发到后端服务器,我想将到达 Netscaler 的所有流量的源 IP 记录在 Netscaler 上的日志中,然后可能将其发送到系统日志服务器。如果可以在特定 VIP 上执行此操作,那就太好了。

谢谢

答案1

根据您想要记录的流量类型和您正在使用的组件,您有一些不同的选择。

一切从以下内容开始:

创建一个Message Action(在System--> Auditing-->下Message actions),并使用以下表达式:

CLIENT.IP.SRC

您还必须定义log level应在何种级别下记录消息。我建议至少使用级别INFORMATIONAL,因为DEBUG随着时间的推移会生成大量日志条目。

当然,可以向日志消息中添加额外的数据。

其次,如果您想将消息推送到外部系统日志服务器,您还应该添加系统日志服务器:

  • 转到System--> Auditing--> Syslog-->Servers并添加服务器。
  • 确保您启用了该选项:"User Configurable Log Messages"
  • 接下来,创建logging policy,并将其设置为true

如果您正在使用内容切换,则可以在编辑策略时在下拉框中选择适当的消息,将日志消息附加到内容切换策略。

如果您使用的是普通负载平衡,则可以创建一个响应策略,将策略表达式设置为true,在下拉框中选择日志消息,最后但并非最不重要的一点:将操作设置为NOOP

然后,您可以将响应器策略绑定到需要记录客户端源 IP 的负载均衡器。

注意:小心 NAT,因为它可能会混淆真正的客户端 IP!

答案2

要以典型的 NetScaler 方式执行此操作,可以使用 IPFIX(NetFlow 的更现代版本),或者 Citrix 称之为“AppFlow”——它是在 IPFIX 中定义的一组模板。您需要一些东西来收集它(最新版本的 Logstash 可以使用 logstash-codec-netflow 来做到这一点),但它会为您提供足够的信息来构建完整的前后端连接日志,不仅针对 HTTP,还针对 TCP。

... 不过,道路选择有点长。

您还可以将其用于 Web 日志(即 HTTP 访问日志)。

相关内容