-
-
-
-
-
-
-
-
-
-
-
-
-
-
将事务日志直接从 NetScaler 导出到 Elasticsearch
-
-
This content has been machine translated dynamically.
Dieser Inhalt ist eine maschinelle Übersetzung, die dynamisch erstellt wurde. (Haftungsausschluss)
Cet article a été traduit automatiquement de manière dynamique. (Clause de non responsabilité)
Este artículo lo ha traducido una máquina de forma dinámica. (Aviso legal)
此内容已经过机器动态翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
이 콘텐츠는 동적으로 기계 번역되었습니다. 책임 부인
Este texto foi traduzido automaticamente. (Aviso legal)
Questo contenuto è stato tradotto dinamicamente con traduzione automatica.(Esclusione di responsabilità))
This article has been machine translated.
Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Ce article a été traduit automatiquement. (Clause de non responsabilité)
Este artículo ha sido traducido automáticamente. (Aviso legal)
この記事は機械翻訳されています.免責事項
이 기사는 기계 번역되었습니다.책임 부인
Este artigo foi traduzido automaticamente.(Aviso legal)
这篇文章已经过机器翻译.放弃
Questo articolo è stato tradotto automaticamente.(Esclusione di responsabilità))
Translation failed!
将事务日志直接从 NetScaler 导出到 Elasticsearch
现在,您可以将事务日志从 NetScaler 导出到 Elasticsearch 等行业标准日志聚合器平台。事务日志是 NetScaler 上应用流量事件的记录,例如 HTTP 请求和响应、连接的开始和结束。有关事务日志的更多信息,请参阅 AppFlow。
您可以以 JSON 格式将交易日志导出到 ElasticSearch,以获取各种见解,例如 Web Insight、安全、网关、通过 HTTP(或 HTTPS)直接从 NetScaler 获得的 HDX Insight。使用 Kibana 的可视化工具,您可以获得有关导出数据的有意义见解。
注意:
作为事务日志的一部分导出的 IP 地址以十进制格式显示,而不是标准格式。例如,如果您的 NetScaler IP 地址为 10.102.154.153,则 Elasticsearch 事务日志中的相同地址将显示为 174496409。您可以使用 Elasticsearch 上可用的内置表达式将 IP 地址从十进制格式转换为标准格式。
将事务日志从 NetScaler 导出到配置为 HTTP 服务器的 Elasticsearch
要配置事务日志的导出,必须执行以下步骤:
- 配置 Elasticsearch 以接收事务日志。
- 在 NetScaler 上创建收集器服务和分析配置文件。
配置 Elasticsearch 以接收事务日志
您可以按照 Elasticsearch 文档中提供的配置步骤配置 Elasticsearch 以接收由 NetScaler 转发的事务日志。
配置完成后,复制身份验证令牌并将其保存以供参考。在 NetScaler 上配置分析配置文件时,您需要指定此标记。
在 NetScaler 上配置分析配置文件
执行以下操作,将 NetScaler 事务日志导出到 Elasticsearch。
-
为 Elasticsearch 创建收集器服务。
add service <collector> <elasticsearch-server-ip-address> <protocol> <port>
示例:
add service elasticsearch_service 10.102.34.155 HTTP 8088
在此配置中:
- ip-address:Elasticsearch 服务器 IP 地址。
- 收藏家姓名:收藏家的名字。
- 协议:将协议指定为 HTTP 或 SSL。
- 端口:端口号。
-
创建分析配置文件。
add analytics profile <profile-name> -type <insight> -collectors <collector-name> -analyticsAuthToken <auth-scheme> <authorization-parameters> -analyticsEndpointContentType "application/json" -analyticsEndpointUrl <endpoint-url> -dataFormatFile <data-format-file-name>
示例:
add analytics profile transaction-log-profile -type webinsight -collectors elasticsearch_collector -analyticsAuthToken "Basic ZWxhc3RpYzplbGFzdGljMTIz" -analyticsEndpointContentType "application/json" -analyticsEndpointUrl "/_bulk" -dataFormatFile "elastic_format.txt"
注意:
在 NetScaler 14.1-25.x 及更高版本中,导出 Elasticsearch 事务日志时支持
-allHttpHeaders
选项。add analytics profile <profile-name> -type webinsight -allHttpHeaders
set analytics profile <profile-name> -type webinsight -allHttpHeaders
在此配置中:
- 见解:您可以导出的见解类型以下选项可用:
- botinsight
- CIinsight
- Gatewayinsight
- hdxinsigh
- lsninsight
- securityinsight
- tcpinsigh
- udpinsight
- videoinsight
- webinsight
-
-analyticsAuthToken <auth-scheme> <authorization-parameters>
:HTTP 授权标头的值。如果您的 Elasticsearch 需要基本身份验证,则可以将
-analyticsAuthToken
配置为Basic <base64 of username:password>
。例如,如果用户名为elastic
,密码为elastic123
,则base64(elastic:elastic123)
为“ZWxhc3RpYzplbGFzdGljMTIz”。可以通过在基于 unix 且具有可用 base64 的系统中运行printf elastic:elastic123 | base64
来找到此示例的<base64 of username:password>
。您还可以使用您熟悉的任何其他工具来找到此值。因此,在本示例中,-analyticsAuthToken <auth-scheme> <authorization-parameters>
的值为“Basic ZWxhc3RpYzplbGFzdGljMTIz”。如果您想配置 API 密钥而不是基本身份验证,则可以遵循类似的语义。在这种情况下,您必须以身份验证令牌的形式提供
ApiKey <encoded api key>
,其中<encoded api key>
为base64(<unique id>:<api key>)
。有关详细信息,请参阅 https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-create-api-key.html。 -
dataformatfile <filename>
:该文件包含事务日志中必须导出的数据及其格式的详细信息。<filename>
是数据格式文件的名称,该文件存在于/var/analytics_conf
目录中。每个端点都希望 JSON 负载以特定格式编码。如果未指定格式,则默认情况下splunk_format.txt
处于选中状态。对于 Elasticsearch,将elastic_format.txt
配置为文件名。您也可以为自己的用例定义自己的自定义数据格式文件。有关自定义数据格式文件的更多信息,请参阅基于字段的数据记录筛选。注意:
对于
<filename>
,不要配置文件名的绝对路径。仅输入文件名。 -
-analyticsEndpointContentType
:内容类型标头。硬编码值为 application/json。 -
-analyticsEndpointUrl
:事务必须发布到的 Elasticsearch 上的路径。例如,/_bulk
。NetScaler 使用批量 API 与 Elasticsearch 进行通信。有关批量 API 的更多信息,请参阅 https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html。注意:
您可以使用
set analytics profile
命令修改分析配置文件参数。
- 见解:您可以导出的见解类型以下选项可用:
-
使用 show analytics profile 命令验证分析配置文件配置。
> sh analytics profile
-
将分析配置文件绑定到虚拟服务器。
bind lb vserver <vserver-name> -analyticsProfile transaction-log-profile
示例
bind lb vserver sample-log -analyticsProfile transaction-log-profile
配置完成后,将根据流量记录事务并将其导出到 Elasticsearch。
对数据记录进行基于字段的过滤
默认情况下,即使端点不需要所有导出的数据,NetScaler 也会导出事务日志中的数百个字段。此外,每个端点都希望以特定格式对 JSON 负载进行编码,例如数据记录的开头和结尾、数据记录之间的分隔符以及缓冲区的开始和结束。
Elasticsearch 预计来自 NetScaler 的 JSON 负载将采用以下格式进行编码:
- 缓冲区起点和终点:
BUFFER-START
和BUFFER-END
不需要任何值。在缓冲区的末尾,必须添加一个空行。 -
数据记录的开始和结束:数据记录必须以
{"index": {"_index": "transactions"}} {
开头,以}
结尾。必须在DATA-START
和DATA-END
之间捕获所有导出的字段。The data records must start with the following:
RECORD-START {"index": {"_index": "transactions"}} { DATA-START
The data records must end with the following:
DATA-START } RECORD-END
- 数据记录之间的分隔符:数据记录之间有一个空行。
默认情况下,可以在包含 Elasticsearch 期望的 JSON 负载格式的 var/analytics_conf
文件夹中找到 elastic_format.txt
,还包含一些用于导出数据的默认字段。您可以在“add analytics profile”命令中为 -dataFormatFile
参数配置值 elastic_format.txt
。
下面是 Elasticsearch 的示例数据格式文件:
BUFFER-START
RECORD-START
{"index": {"_index": "transactions"}}
{
DATA-START
153 observationPointId
547 nsPartitionId
154 exportingProcessId
159 transactionId
801 httpReqUrl
685 httpReqMethod
683 httpReqHost
689 httpReqUserAgent
680 httpContentType
691 httpReqXForwardedFor
682 httpDomainName
803 appName
851 appNameVserverLs
484 httpRspStatus
53 httpRspLen
684 httpResLocation
687 httpResSetCookie
DATA-END
}
RECORD-END
RECORD-DELIMITER
RECORD-DELIMITER-END
BUFFER-END
var/analytics_conf
下的 JSON_fields.txt
文件是一个参考主文件,其中包含字段的完整列表及其标识号。主文件中的字段是根据见解进行分类的。例如,如果您想了解与 HDX Insight 相关的字段,可以查看 JSON_fields.txt 文件的 HDX 见解类别,以了解与 HDX Insight 类别相关的字段。
您可以根据自己的要求自定义 elastic_format.txt
文件。例如,如果要导出 HDX Insight,则可以在 JSON_fields.txt
文件中查看 HDX Insight 类别,然后在 elastic_format.txt
文件中添加必填字段。同样,您可以删除不想导出的字段。
自定义 elastic_format.txt
文件后,执行以下命令来更新分析配置文件:
update analytics profile <profile-name> -dataFormatFile <filename>
示例:
update analytics profile ns _analytics_ default_http_profile -dataFormatFile elastic_format.txt
您也可以使用 GUI 指定数据格式文件的值。导航到“系统”>“AppFlow”>“分析配置文件”,然后单击“添加”。在“创建分析配置文件”页面上,如果您为类型选择以下选项之一,则会出现“数据格式文件”字段,您可以在其中指定文件名:
- GLOBAL
- WEB INSIGHT
- TCP INSIGHT
- SECURITY INSIGHT
- VIDEO INSIGHT
- HDX INSIGHT
- GATEWAY INSIGHT
- LSN INSIGHT
- BOT INSIGHT
- 时间序列
输出示例
本节包含不同事务日志的示例输出。
HTTP 事务日志输出示例
以下是 HTTP 事务日志的输出示例。
{
appName: VS1
clientMss: 1460
clntFastRetxCount: 0
clntTcpJitter: 0
cintTcpPacketsRetransmited: 0
clntTcpRtoCount: 0
clntTcpZeroWindowCount: 0
cltDstIpv4Address: 174496411
cltIpv4Address: 174496407
connEndTimestamp: 0
connStartTimestamp: 7329468222993076980
exportingProcessId: 0
httpRegHost: 10.102.154.155
httpReqMethod: GET
httpReqUrl: /big.html
httpRspLen: 114380
httpRspStatus: 200
mainPageCoreId: 0
mainPageId: 0
nsPartitionId: 0
observationPointId: 174496409
originRspLen: 0
srvrIcpPacketsRetransmited: 0
srvrTcpZeroWindowCount: 0
svrDstIpv4Address: 174496415
svrIpv4Address: 174496408
tepSrvrConnRstCode: 0
transClntRTT: 0
transCltDstPort: 20480
transCltFlowEndUsecRx: 7329468222993084980
transCltFlowEndUsecTx: 7329468222993084980
transCltFlowStartUsecRx: 7329468222993076980
transCltFlowStartUsecTx: 7329468222993077984
transCltSrcPort: 60315
transCltTotRx0ctCnt: 1766
transCltTotTx0ctCnt: 117580
transSrvDstPort: 36895
transSrvSrcPort: 15213
transSrvrRTT: 0
transSvrFlowEndUsecRx: 7329468222993084980
transSvrFlowEndUsecTx: 7329468222993084980
transSvrFlowStartUsecRx: 7329468222993077984
transSvrFlowStartUsecTx: 0
transSvrTotRx0ctCnt: 117580
transSvrTotTx0ctCnt: 1766
transactionId: 4890
}
TCP 事务日志输出示例
以下是 TCP 事务日志的输出示例。
{
appName: vs1
clientConnEndTimestamp: 7333165210582386064
clientConnStartTimestamp: 7333165210582386054
clientMss: 1460
clntFastRetxCount: 0
clntTcpJitter: 0
clntTcpPacketsRetransmited: 0
clntTcpRtoCount: 0
clntTcpZeroWindowCount: 0
cltDstIpv4Address: 174496411
cltDstPort: 20480
cltIpv4Address: 174496407
cltSrcPort: 42939
connectionChainHopCount: 0
exportingProcessId: 0
nsPartitionId: 0
observationPointId: 174496409
serverConnEndTimestamp: 7333165201992708470
serverConnStartTimestamp: 7333165201992708459
srvDstPort: 36895
srvSrcPort: 51973
srvrTcpPacketsRetransmited: 0
srvrTcpZeroWindowCount: 0
svrDstIpv4Address: 174496415
svrIpv4Address: 174496408
tcpClntConnRstCode: 0
tcpSrvrConnRstCode: 0
transClntRTT: 0
transCltTotRxOctCnt: 208
transCltTotTxOctCnt: 331
transSrvrRTT: 0
transSvrTotRxOctCnt: 331
transSvrTotTxOctCnt: 208
transactionId: 330
vlanNumber: 1
}
SSL 事务日志输出示例
以下是 SSL 事务日志的输出示例。
{
appName: sslvs
clientConnEndTimestamp: 0
clientConnStartTimestamp: 7333182669624439854
clientMss: 1460
clntFastRetxCount: 0
clntTcpJitter: 0
clntTcpPacketsRetransmited: 0
clntTcpRtoCount: 0
clntTcpZeroWindowCount: 0
cltDstIpv4Address: 174496411
cltDstPort: 47873
cltIpv4Address: 174496407
cltSrcPort: 17499
connectionChainHopCount: 0
exportingProcessId: 0
httpContentType: text/html
httpReqHost: 10.102.154.155
httpReqMethod: GET
httpReqUrl: /index.html
httpReqUserAgent: curl/7.69.1
httpRspLen: 291
httpRspStatus: 200
nsPartitionId: 0
observationPointId: 174496409
originRspLen: 0
serverConnEndTimestamp: 0
serverConnStartTimestamp: 7333182665330184556
srvDstPort: 36895
srvSrcPort: 34802
srvrTcpPacketsRetransmited: 0
srvrTcpZeroWindowCount: 0
sslCipherValueBE: 0
sslCipherValueFE: 50331701
sslClientCertSizeBE: 0
sslClientCertSizeFE: 0
sslClntCertSigHashBE: 0
sslClntCertSigHashFE: 0
sslFLagsBE: 0
sslFLagsFE: 1096
sslServerCertSizeBE: 0
sslServerCertSizeFE: 4096
sslSessionIDBE: 0
sslSessionIDFE: 2433458443
sslSigHashAlgBE: 0
sslSigHashAlgFE: 0
sslSrvrCertSigHashBE: 0
sslSrvrCertSigHashFE: 668
svrDstIpv4Address: 174496415
svrIpv4Address: 174496408
tcpClntConnRstCode: 0
tcpSrvrConnRstCode: 0
transClntRTT: 0
transCltFlowEndUsecRx: 7333182669624447854
transCltFlowEndUsecTx: 7333182669624446854
transCltFlowStartUsecRx: 7333182669624439854
transCltFlowStartUsecTx: 7333182669624439854
transCltTotRxOctCnt: 1501
transCltTotTxOctCnt: 2223
transSrvrRTT: 0
transSvrFlowEndUsecRx: 7333182669624446854
transSvrFlowEndUsecTx: 7333182669624446854
transSvrFlowStartUsecRx: 7333182669624446854
transSvrFlowStartUsecTx: 0
transSvrTotRxOctCnt: 331
transSvrTotTxOctCnt: 168
transactionId: 2640
vlanNumber: 1
}
Web Insight 事务日志输出示例
以下是 Web Insight 事务日志的输出示例。
{
appName: vs1
clientConnEndTimestamp: 0
clientConnStartTimestamp: 7333336201820249485
clientMss: 1460
clntFastRetxCount: 0
clntTcpJitter: 0
clntTcpPacketsRetransmited: 0
clntTcpRtoCount: 0
clntTcpZeroWindowCount: 0
cltDstIpv4Address: 174496411
cltDstPort: 20480
cltIpv4Address: 174758625
cltSrcPort: 46824
connectionChainHopCount: 0
exportingProcessId: 0
httpContentType: text/html
httpReqHost: 10.102.154.155
httpReqMethod: GET
httpReqUrl: /
httpRspLen: 291
httpRspStatus: 200
nsPartitionId: 0
observationPointId: 174496409
originRspLen: 0
serverConnEndTimestamp: 0
serverConnStartTimestamp: 7333336201820250487
srvDstPort: 36895
srvSrcPort: 6465
srvrTcpPacketsRetransmited: 0
srvrTcpZeroWindowCount: 0
svrDstIpv4Address: 174496415
svrIpv4Address: 174496408
tcpClntConnRstCode: 0
tcpSrvrConnRstCode: 0
transClntRTT: 0
transCltFlowEndUsecRx: 7333336201820251488
transCltFlowEndUsecTx: 7333336201820251488
transCltFlowStartUsecRx: 7333336201820249485
transCltFlowStartUsecTx: 7333336201820250487
transCltTotRxOctCnt: 190
transCltTotTxOctCnt: 371
transSrvrRTT: 0
transSvrFlowEndUsecRx: 7333336201820251488
transSvrFlowEndUsecTx: 7333336201820250487
transSvrFlowStartUsecRx: 7333336201820250487
transSvrFlowStartUsecTx: 7333336201820250487
transSvrTotRxOctCnt: 371
transSvrTotTxOctCnt: 202
transactionId: 11218
vlanNumber: 1
}
共享
共享
This Preview product documentation is Cloud Software Group Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Cloud Software Group Beta/Tech Preview Agreement.
The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.
The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Cloud Software Group product purchase decisions.
If you do not agree, select I DO NOT AGREE to exit.