本节介绍 NSX Advanced Load Balancer 的 vRealize Log Insight。

向 vRealize Log Insight 发送数据

在整个 NSX Advanced Load Balancer 控制器 中使用事件来提供相关更改的历史记录。事件是永久记录,可用于生成警示,以便采取相应的操作。有关事件的详细信息,请参阅事件

虚拟服务和池可以记录 TCP 和 UDP 连接的客户端与应用程序的交互,从而提供对客户端请求和服务器响应的宝贵见解。可以在 NSX Advanced Load Balancer 控制器 中以本地方式对这些虚拟服务客户端日志编制索引以及进行查看和筛选。

这两种类型的数据对于对部署进行故障排除,以及了解部署中发生的情况至关重要。尽管可以从 NSX Advanced Load Balancer 控制器 UI 获取所有这些数据,但有一个选项可将这些数据发送到一个集中式平台。本文档提供了一些有关如何将此数据发送到 vRealize Log Insight 的示例。

将事件发送到 Log Insight

可以从 NSX Advanced Load Balancer 控制器 将事件作为 Syslog 消息发送。在提供的示例图中,使用了 Log Insight 日志转发器,并且此日志转发器在 NSX Advanced Load Balancer 控制器 配置中配置为 Syslog 目标。



有关更多信息,请参阅通知

vRealize Log Insight Content Pack

对于发送到 Log Insight 的事件,VMware Marketplace 上提供的 VMware NSX Advanced Load Balancer(由 VMware 提供)内容包将通过密钥提取来执行。内容包仅用于事件。

除了密钥提取之外,内容包还提供了预构建的仪表板以直观显示事件数据。仪表板查询使用提取的键:值。

以下是键提取的示例。



将虚拟服务客户端日志发送到 Log Insight

NSX Advanced Load Balancer 支持将虚拟服务客户端日志直接从服务引擎流式传输到外部服务器的功能。有关详细信息,请参阅将 NSX Advanced Load Balancer 客户端日志流式传输到外部服务器

尽管可以像事件设计那样将这些日志配置为直接从服务引擎发送到 Log Insight 日志转发器,但这种直接工作流并不理想。此处的限制是客户端日志需要以 JSON 格式发送。如果直接将其发送到日志转发器,则将不会执行密钥提取,从而使查询客户端日志更加困难。建议通过将执行 JSON 解析的中间代理发送日志。

图 1. 使用 JSON 解析提取密钥的屏幕截图示例

以下是使用 JSON 解析将客户端日志发送到 Log Insight 的两个示例。第一个示例使用 Log Insight 代理,第二个示例使用 Fluent Bit。

将 Log Insight 代理与 JSON 解析结合使用

Log Insight 代理提供了读取本地日志文件、解析 JSON 数据,然后将日志转发到日志转发器的功能。在 Syslog 服务器上运行 Log Insight 代理时,会针对要读取和解析的日志文件配置该代理。



在此示例中,服务引擎配置为将虚拟服务客户端日志流式传输到运行 Syslog 的外部服务器,在此案例中将使用 rsyslog。Log Insight 代理也可安装在此外部 Syslog 服务器上,配置为使用特定文件解析 JSON 并将结果转发到日志转发器。

以下是 rsyslog 和 Log Insight 代理的配置文件示例。

可将以下更改添加到 /etc/rsyslog.conf

# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")
 
## rules for process the remote logs
#
$template noTimestampFormat,"%msg%\n"
 
$template RemoteLogs,"/var/log/avi/%HOSTNAME%.log"
*.* ?RemoteLogs;noTimestampFormat

liagent.conf 配置示例:

[server]
hostname=<loginsight_forwarder>
ssl=no
 
 
[filelog|avi]
directory=/var/log/avi/
include=*.log
exclude=liagent
parser=json_parser
 
 
[parser|json_parser]
base_parser=json
fields=*

将 Fluent Bit 与 JSON 解析结合使用

Fluent Bit 提供了在指定端口上接收日志,解析 JSON 数据,然后将日志转发到日志转发器的功能。



在此示例中,SE 已配置为将虚拟服务客户端日志流式传输到运行 Fluent Bit 的外部服务器。Fluent Bit 配置包括向 parsers.conf 文件添加新条目。Fluent Bit 将在指定端口上接收虚拟服务客户端日志,解析 JSON,然后将日志转发到日志转发器。

可将以下配置添加到 /etc/td-agent-bit/parsers.conf

[PARSER]
    Name    avi
    Format  json
    Time_Keep Off

/Etc/td-agent-bit/td-agent-bit.conf 配置示例:

[INPUT]
    Name      syslog
    Listen    0.0.0.0
    Port      514
    Mode      udp
    Parser    avi
    Buffer_Chunk_Size  1024000
    Buffer_Max_Size    2048000
    Tag       avi.logs
 
[OUTPUT]
    Name                      http
    Match                     *
    Host                      <loginsight_forwarder>
    Port                      9000
    URI                       /log-forwarder/ingest
    Format                    json