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 状态和状态信息。日志信息可以在内核和用户级守护程序中。
您可以将 NetScaler 配置为将日志信息本地存储在 NetScaler 上,或将其导出到远程服务器或同时导出到远程服务器。有关审核日志的更多信息,请参阅审核日志。
配置审核日志
有关如何配置 NetScaler 以进行审核记录的信息,请参阅配置 NetScaler 设备以进行审核日志记录。
审核日志示例
以下是审核日志示例:
May 31 02:05:23 <local0.info> 10.106.44.21 05/31/2024:06:05:23 GMT HA1 0-PPE-0 : default API CMD_EXECUTED 7825 0 : User admuser -
ADM_User NONE - Remote_ip 10.106.44.21 - Command "show ns license" - Status "Success"
<!--NeedCopy-->
下图描述了审核日志:
导出审核日志
您可以将审核日志和事件从 NetScaler 导出到 Splunk 等行业标准日志聚合器平台,并获得有意义的见解。有关更多信息,请参阅将审核日志和事件直接从 NetScaler 导出到 Splunk。
管理日志
管理日志是由在 NetScaler 管理核心上运行的进程生成的日志。(例如 bash、httpd)。属于以下日志文件的一部分的消息将作为管理日志的一部分导出:
-
外壳或平台日志
-
bash.log
:日志文件由bash
进程创建。它记录bash
shell 处理的命令。 -
sh.log
:日志文件由sh
进程创建。它记录sh
shell 处理的命令。
-
访问日志
-
auth.log
:日志文件记录所有SSHd
活动和Console
活动。 -
nsvpn.log
:日志文件记录有关虚拟专用网络 (VPN) 活动和事件的详细信息。
-
httpaccess.log
:日志文件记录了定向到管理 IP 地址的所有 HTTP 活动。通常,此日志文件包括 NetScaler GUI 访问、NITRO API 和 VPN 访问。 -
httperror.log
:日志文件记录了定向到管理 IP 地址的任何 HTTP 活动,这些活动由于任何超时(例如,已达到 PHP 最大超时时间)或后端的任何编程错误而导致错误。Apache 的定期重启也会记录到此文件中。 -
httpaccess-vpn.log
:日志文件由 apache 提供的网关门户端点数据组成,用户可以访问这些数据以及日期和时间。 -
httperror-vpn.log
:日志文件由 apache 提供的网关门户端点数据组成,用户可以访问这些数据以及日期和时间。
NetScaler 管理日志
-
notice.log
:日志文件是系统日志数据流,它记录根据syslogd
的“通知”数据流生成的系统日志记录。 -
ns.log
:该日志文件包含 NetScaler 系统日志。由 NetScaler 的多个模块(例如,负载平衡、SSL、应用防火墙)生成的日志将写入此文件中。在导出过程中,仅导出由管理流程编写的ns.log
的内容。不导出 NSPPE 进程写入的日志。
在 NetScaler 上运行 syslogd
的管理日志记录到相应的日志文件中,这些文件由在管理核心上运行的各种进程生成。管理日志定期导出,通常每 60 秒导出一次。
配置管理日志的导出
您可以使用以下方法之一配置管理日志的导出:
- 配置将管理日志导出到 syslog 服务器
- 配置将管理日志导出到 HTTP 服务器或 HEC 端点,例如 Splunk
配置将管理日志导出到 syslog 服务器
要配置管理日志的导出,必须执行以下步骤:
- 使用管理日志选项在 NetScaler 上创建审核 syslog 操作。
- 使用 syslog 操作创建系统日志审核策略。
- 将 syslog 审核策略与系统全局实体绑定以启用所有 NetScaler 系统事件的记录。
配置 syslog 审核操作
要使用 CLI 在 NetScaler 上配置系统日志审核操作,请运行以下命令:
add audit syslogAction <name> (<serverIP> [-serverPort <port>] -logLevel <logLevel> ... [-managementlog <managementlog> ...] ... [-managementloglevel <managementloglevel> ...][-transport ( TCP | UDP )])
<!--NeedCopy-->
示例:
add audit syslogAction test 10.106.186.102 -serverPort 514 -logLevel ALL -managementlog SHELL NSMGMT -managementloglevel ALL -transport TCP
<!--NeedCopy-->
在此配置中:
-
name
: syslog 操作的名称 -
serverIP
: 系统日志服务器的 IP 地址。 -
serverPort
: syslog 服务器接受连接的端口。 -
logLevel
:审核日志级别。 -
managementlog
:必须导出的管理日志类型。 -
managementloglevel
:您要为导出设置的管理日志级别。 -
transport
:用于向 syslog 服务器发送审核日志的传输类型。
注意:
启用管理日志后,syslogAction 配置仅支持服务器 IP 地址和端口配置。不支持基于域的服务 (DBS) 和负载平衡虚拟服务器名称配置。
对于跨多个外部 syslog 服务器导出的负载平衡管理日志,可以使用以下示例配置:
add service syslog_server <server_ip> UDP <port>
add service syslog_server1 1.3.4.4 UDP 514
add service syslog_server2 1.3.4.5 UDP 514
add lb vserver lb1 UDP <lb_vip> <lb_port>
bind lb vserver lb1 syslog_server1
bind lb vserver lb1 syslog_server2
在 syslogAction 中,配置以下内容:
add syslogAction sys1 <server_ip> -serverPort <server_port> -transport UDP -loglevel <loglevel>
add syslogAction sys1 lb_vip -serverPort lb_port -transport UDP -loglevel <loglevel>
要使用 GUI 在 NetScaler 上配置系统日志审核操作,请执行以下步骤:
- 导航到“系统”>“审核”>“系统日志”>“服务器”选项卡,然后单击“添加”。
- 在“创建审核服务器”页面上,提供以下详细信息:
- 输入 Syslog 服务器的名称。
- 从“服务器类型”列表中选择“服务器 IP”,然后输入 syslog 服务器 IP 地址和端口。
- 从“日志级别”、“管理日志”和“管理日志级别”部分中选择所需的日志级别。
- 单击创建。
配置 syslog 审核策略
要使用 CLI 配置 syslog 审核策略,请运行以下命令:
add audit syslogPolicy <name> TRUE <syslogAction>
示例:
add audit syslogPolicy test-policy TRUE test
要使用 GUI 配置 syslog 审核策略,请执行以下步骤:
- 导航到“系统”>“审核”>“系统日志”>“策略”选项卡,然后单击“添加”。
- 在“创建审核 Syslog 策略”页面上,输入名称,选择“高级策略”,然后从“服务器”列表中选择您创建的审核 syslog 服务器。
绑定审核日志策略
要使用 CLI 将 syslog 审核日志策略绑定到绑定点 SYSTEM_GLOBAL
,请运行以下命令:
bind audit syslogGlobal <policyname> -globalBindType SYSTEM_GLOBAL
示例:
bind audit syslogGlobal test-policy -globalBindType SYSTEM_GLOBAL
要使用 GUI 全局绑定 syslog 审核日志策略,请运行以下命令:
- 导航到“系统”>“审核”>“系统日志”>“策略”选项卡,然后选择您创建的 syslog 审核策略。
- 右键单击选定的 syslog 审核策略,然后单击“高级策略全局绑定”。
- 从“选择策略”列表中选择您创建的 syslog 审核策略。
- 在“优先级”字段中输入优先级。
- 从“全局绑定类型”字段中选择 SYSTEM_GLOBAL,然后单击“绑定”。
- 在“系统日志审核”页面上,选择 syslog 审核策略,然后单击“完成”。
配置成功后,管理日志将作为 syslog 有效负载发送到外部 syslog 服务器。
配置将管理日志导出到配置为 HTTP 服务器的 Splunk
您可以将 Splunk 配置为 HTTP 服务器。在 HTTP 服务器配置中,您可以使用 HTTP 事件收集器通过 HTTP(或 HTTPS)将管理日志从 NetScaler 直接发送到 Splunk 平台。有关更多信息,请参阅将管理日志导出到配置为 HTTP 服务器的 Splunk。
管理日志示例
以下是管理日志示例:
10.222.4.55 10.217.11.103 [04/Oct/2023:18:38:34 +0000] [43533] "GET / HTTP/1.1" 200 20783 "Go-http-client/l.1" "Time: 38848 microsecs"
127.0.0.1 [04/0ct/2023:16:30:00 +0000] [16510] "GET / HTTP/1.1" 200 20783 “curl/7.87.0" "Time: 42015 microsecs"
[Wed Oct 04 16:00:00.093670 2023] [authz_core:error] [pid 7487] [client 127.0.0.1:16161] AH01630: client denied by server configuration: /netscaler/ns_gui/var
<!--NeedCopy-->
下图描述了管理日志:
以下是示例 bash
日志:
Apr 24 11:21:00 <local7.notice> ns bash[3893]: root on /dev/pts/0 shell_command="PATH=/netscaler:/bin:/sbin:/usr/bin:/usr/sbin:/usr/libexec:/usr/local/bin:/usr/local/sbin:."
Apr 24 11:21:00 <local7.notice> ns bash[3893]: root on /dev/pts/0 shell_command="EDITOR=/usr/bin/vi"
Apr 24 11:21:00 <local7.notice> ns bash[3893]: root on /dev/pts/0 shell_command="[ -f /var/python/bin/python ]"
Apr 24 11:21:00 <local7.notice> ns bash[3893]: root on /dev/pts/0 shell_command="export PATH=$PATH:/var/python/bin"
Apr 24 11:21:00 <local7.notice> ns bash[3893]: root on /dev/pts/0 shell_command="[ -f /var/golang/bin/go ]"
Apr 24 11:21:00 <local7.notice> ns bash[3893]: root on /dev/pts/0 return_code="1"
Apr 24 11:21:00 <local7.notice> ns bash[3893]: root on /dev/pts/0 shell_command=""
Apr 24 11:21:12 <local7.notice> ns bash[3893]: root on /dev/pts/0 shell_command="cat /var/log/bash.log"
<!--NeedCopy-->
以下是示例 httpaccess
日志:
10.102.201.155 -> 10.102.201.155 - - [10/Jun/2024:23:07:11 +0530] [1571] "GET /nitro/v1/config/route6?format=json&sessionid=[FILTERED] HTTP/1.1" 200 1162 "-" "-" "Time: 9797 microsecs"
10.102.201.155 -> 10.102.201.155 - - [10/Jun/2024:23:07:11 +0530] [1571] "GET /nitro/v1/config/nslicense?format=json&sessionid=[FILTERED] HTTP/1.1" 200 1118 "-" "-" "Time: 7774 microsecs"
10.102.201.155 -> 10.102.201.155 - - [10/Jun/2024:23:07:11 +0530] [1571] "GET /nitro/v1/config/appflowparam?format=json&sessionid=[FILTERED] HTTP/1.1" 200 1643 "-" "-" "Time: 8098 microsecs"
10.102.201.155 -> 10.102.201.155 - - [10/Jun/2024:23:07:12 +0530] [1571] "GET /nitro/v1/config/snmpmib?format=json&sessionid=[FILTERED] HTTP/1.1" 200 347 "-" "-" "Time: 8185 microsecs"
10.102.201.155 -> 10.102.201.155 - - [10/Jun/2024:23:11:16 +0530] [1570] "GET /nitro/v1/config/nslicense?format=json&sessionid=[FILTERED] HTTP/1.1" 200 1118 "-" "-" "Time: 23195 microsecs"
10.102.201.155 -> 10.102.201.155 - - [10/Jun/2024:23:11:17 +0530] [1570] "GET /nitro/v1/config/nslicenseserver?format=json&sessionid=[FILTERED] HTTP/1.1" 200 57 "-" "-" "Time: 8992 microsecs"
<!--NeedCopy-->
以下是示例 httperror
日志:
[Mon Jun 10 15:00:01.016898 2024] [mpm_prefork:notice] [pid 47106] AH00171: Graceful restart requested, doing restart
[Mon Jun 10 15:00:01.323746 2024] [mpm_prefork:notice] [pid 47106] AH00163: Apache/2.4.56 (Unix) mod_perl/2.0.10 Perl/v5.30.2 configured -- resuming normal operations
[Mon Jun 10 15:00:01.323756 2024] [core:notice] [pid 47106] AH00094: Command line: '/bin/httpd -f /etc/httpd.conf'
[Mon Jun 10 15:30:00.211099 2024] [authz_core:error] [pid 80696] [client 127.0.0.1:31128] AH01630: client denied by server configuration: /netscaler/ns_gui/var
[Mon Jun 10 15:38:06.205307 2024] [authz_core:error] [pid 80696] [client 127.0.0.2:24903] AH01630: client denied by server configuration: /netscaler/ns_gui/var
<!--NeedCopy-->
以下是示例 auth
日志:
Jun 13 12:03:33 <auth.info> ns login: login on pts/1 as root
Jun 13 12:03:33 <auth.info> ns sshd[17798]: Received disconnect from 10.102.201.155 port 33145:11: Normal Shutdown
Jun 13 12:03:33 <auth.info> ns sshd[17798]: Disconnected from user admuser 10.102.201.155 port 33145
Jun 13 12:03:33 <auth.info> ns sshd[17803]: rexec line 19: Deprecated option UsePrivilegeSeparation
Jun 13 12:03:34 <auth.info> ns sshd[17803]: Accepted keyboard-interactive/NS for admuser from 10.102.201.155 port 65127 ssh2
<!--NeedCopy-->
以下是 nsvpn
.log 示例:
Jun 6 09:18:16 <local1.info> ns [1289]: (0-15) extract_ldap_attribute: retrieved mail value mail@citrix.com for Complex1, length is 15
Jun 6 09:18:16 <local1.info> ns [1289]: (0-15) receive_ldap_user_search_event: extracted attribute, name: mail, value: mail@citrix.com
Jun 6 09:18:16 <local1.info> ns [1289]: (0-15) receive_ldap_user_search_event: built group string for Complex1 of:group5 group4 group3 g1
Jun 6 09:18:16 <local1.info> ns [1289]: (0-15) receive_ldap_user_search_event: User search succeeded, attempting user authentication(Bind) for <Complex1>
Jun 6 09:18:16 <local1.info> ns [1289]: (0-15) receive_ldap_user_bind_event: Got user bind event.
Jun 6 09:18:16 <local1.info> ns [1289]: (0-15) receive_ldap_user_bind_event: User authentication (Bind event) for user Complex1 succeeded
Jun 6 09:18:16 <local1.notice> ns [1289]: (0-15) send_accept: sending accept to kernel for : Complex1
Jun 6 09:18:16 <local1.info> ns [1289]: (0-15) aaad_alloc_serialize_keyValue_attrs: 2 custom attribute key_len 4 value_len 15
Jun 8 06:21:48 <local1.info> ns [1289]: (0-62) aaad_remove_user_login_failure_info: sqlite3_step is SUCCESS
<!--NeedCopy-->
以下是示例 httperror-vpn
日志:
[Thu Jun 06 17:43:38.184137 2024] [core:error] [pid 63478] (63)File name too long: [client 127.0.0.2:42117] AH00036: access to /logon/L ogonPoint/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaResources/List failed (filesystem path '/var/netscaler/logon/LogonPoint/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaResources')
[Thu Jun 06 17:44:23.338278 2024] [core:info] [pid 63475] [client 127.0.0.2:65214] AH00128: File does not exist: /var/netscaler/logon/L ogoqqqqnPoint/Resources/List
[Thu Jun 06 17:44:41.245211 2024] [core:info] [pid 63476] [client 127.0.0.2:56821] AH00128: File does not exist: /var/netscaler/logon/L og@
[Tue Jun 11 10:10:55.360797 2024] [core:info] [pid 37517] [client 127.0.0.2:53996] AH00128: File does not exist: /netscaler/ns_gui/vpn/ pluginCustomization.json
[Mon Jun 17 14:11:15.816726 2024] [core:info] [pid 63188] [client 127.0.0.2:27594] AH00128: File does not exist: /netscaler/ns_gui/vpn/ pluginCustomization.json
<!--NeedCopy-->
以下是示例 httpaccess-vpn
日志:
127.0.0.2 - - [20/Jun/2024:08:37:47 +0000] [1508] "GET /logon/LogonPoint/custom/strings.en.js?_=1718869081399 HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0" "Time: 529 microsecs"
127.0.0.2 - - [20/Jun/2024:08:37:47 +0000] [1508] "GET /logon/LogonPoint/plugins/ns-gateway/nsg-epa.js HTTP/1.1" 304 - "-" "Mo zilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0" "Time: 303 microsecs"
127.0.0.2 - - [20/Jun/2024:08:37:47 +0000] [1508] "GET /logon/LogonPoint/plugins/ns-gateway/nsg-setclient.js HTTP/1.1" 304 - " -" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0" "Time: 311 microsecs"
127.0.0.2 - - [20/Jun/2024:08:37:47 +0000] [1508] "GET /logon/LogonPoint/plugins/ns-gateway/ns-nfactor.js HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0" "Time: 315 microsecs"
127.0.0.2 - - [20/Jun/2024:08:37:47 +0000] [1508] "GET /vpn/media/citrixgateway_logo_white.png HTTP/1.1" 304 - "-" "Mozilla/5. 0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0" "Time: 358 microsecs"
<!--NeedCopy-->
导出管理日志
您可以将管理日志从 NetScaler 导出到 Splunk 等行业标准日志聚合器平台。有关更多信息,请参阅将管理日志直接从 NetScaler 导出到 Splunk。
解决与管理日志相关的问题
即使在配置了管理日志的导出之后,也可能会出现一些问题,导致管理日志无法导出到可观察性端点。本节提供与以下场景相关的问题故障排除的技巧:
管理日志未导出到 syslog 服务器
当管理日志未导出到 syslog 服务器时,请执行以下操作:
-
检查您是否在 syslog 操作上启用了某些管理日志。
场景
系统管理员 John 运行了
show syslogaction ns-mgmt-logs-act
命令。在输出中,他找到了Managementlog: NONE
和Managementloglevel: NONE
,这证实了管理日志未启用。为了修复此问题,他通过运行以下命令启用了管理日志和管理日志级别:
add syslogaction ns-mgmt-logs-act 9.9.9.9 -loglevel none -mgmtlogLevel all -managementlog all <!--NeedCopy-->
启用后,他运行
show syslogaction ns-mgmt-logs-act
命令并验证管理日志是否已启用,如以下输出所示。 -
检查配置的日志是否是在本地生成的。例如,如果您已将管理日志配置为严重性为 INFO,请检查
/var/log/ns.log
是否包含以 INFO 严重性生成的管理日志(不包含“-PPE-”的行)。以下是几个场景:场景 1
系统管理员 Cassidy 添加了以下仅启用 NSMGMT 警告日志的操作,发现日志未生成。
add syslogaction ns-mgmt-logs-act 9.9.9.9 -loglevel none -mgmtlogLevel warning -managementlog NSMGMT <!--NeedCopy-->
Cassidy 查看了本地日志文件
ns.log
和notice.log
,发现没有生成警告级别的消息。root@ns# cat /var/log/ns.log | grep -v -e '-PPE-' Jun 26 05:00:00 ns newsyslog[74791]: logfile turned over due to size>100K rootQns# cat /var/log/notice.log | grep warn Jun 26 05:08:34 <local7.notice> ns bash[81962]: root on /dev/pts/5 shell_command="cat /var/log/notice.log | grep warning" Jun 26 05:08:40 <local7.notice> ns bash[81962]: root on /dev/pts/5 shell_command="cat /var/log/notice.log | grep warn" Jun 26 05:09:15 <local7.notice> ns bash[81962]: root on /dev/pts/5 shell_command="cat /var/log/notice.log | grep warn" <!--NeedCopy-->
场景 2
系统管理员 John 添加了以下操作,为所有级别启用了所有管理日志。
add syslogaction ns-mgmt-logs-act 9.9.9.9 -loglevel none -mgmtlogLevel all -managementlog all <!--NeedCopy-->
日志是在
bash.log
中本地生成的,因此,它们的可观察性端点也出现了同样的情况。root@ns# tail -f /var/log/bash.log Jun 26 05:16:54 <local7.notice> ns bash[4278]: root on (null) return_code="l" Jun 26 05:16:54 <local7.notice> ns bash[5909]: root on (null) shell_command="true" Jun 26 05:16:54 <local7.notice> ns bash[5909]: root on (null) shell_command="curl 10.102.154.54; sleep 0.5" Jun 26 05:16:54 <local7.notice> ns bash[5909]: root on (null)shell_command="curl 10.102.154.54" <!--NeedCopy-->
-
检查并确认以下内容:
- 如果您使用正确的传输协议
- 如果您使用正确的 IP 地址或域名
- 如果您使用正确的负载平衡配置
- 如果域名已解析
- 如果服务或虚拟服务器已启动
-
检查并确认该策略是使用“真实”规则创建的,并绑定到系统全局。如果绑定不存在,则不会导出日志。
场景
系统管理员 Cassidy 运行了
show syslogglobal
命令,发现该策略未绑定到系统全局。> show syslogglobal Done <!--NeedCopy-->
Cassidy 运行以下命令将策略绑定到系统全局:
bind syslogGlobal -policyName ns-mgmt-logs-pol -priority 1 Done <!--NeedCopy-->
绑定后,
show syslogglobal
命令显示绑定细节。> sh syslogglobal 1) Policy Name: ns-mgmt-logs-pol Priority: 1 GlobalType: SYSTEM_GLOBAL Done <!--NeedCopy-->
-
运行
nstrace
以检查 UDP 或 TCP 流量是否存在异常。检查端点是否配置为使用 TLS 或 SSL,但是 NetScaler 实际上是在发送未加密的数据,反之亦然。
在 Splunk (HEC) 上看不到管理日志
当管理日志未导出到 Splunk (HEC) 时,请执行以下操作:
-
检查您是否在时间序列配置文件上启用了管理日志。要进行检查,请运行
show analyticsprofile <profilename>
命令并查看输出。场景
系统管理员卡西迪意识到她实际上需要的是JSON格式,而不是系统日志格式。因此,她删除了所有管理系统日志配置并添加了分析配置。但是,她发现日志并未从 NetScaler 中流出。当她运行
show analyticsprofile <name>
命令时,她在输出中看到了Managementlog: NONE
并意识到自己忘记在分析配置文件上启用管理日志。为了修复该问题,她使用
set analytics profile <name> -managementlog ACCESS
启用了管理日志。修复后,她看到日志是从 NetScaler 发送出来的,show analyticsprofile <name>
命令也显示了Managementlog: ACCESS
。 -
检查配置的日志是否实际是在本地生成的。例如,如果您配置了 NSMGMT 管理日志,则可以检查
/var/log/ns.log
是否已生成管理日志(不包含“-PPE-”的行)。 -
检查并确认以下内容:
- 如果您使用的是正确的配置文件。您必须使用时间序列配置文件
- 如果服务已解决并且已启动
- 元数据 (-analyticsEndpointMetadata) 是否配置正确且为有效的 JSON,以及其中包含的所有字段是否存在于导出到 Splunk 的日志中
- 如果 Splunk 身份验证令牌正确。由于未显示身份验证令牌,因此您必须确保以
-analyticsAuthToken ‘Splunk <token>’
格式正确输入该令牌
-
运行
nstrace
以检查 TCP 或 HTTP 流量是否有任何异常。检查端点是否配置为使用 TLS 或 SSL,但是 NetScaler 发送的是未加密的数据,或者反之亦然。您可以进一步检查导出的 JSON 是否格式不正确。
在任何可观察性端点上看不到管理日志时的常见故障排除技巧
如果管理日志中提供的提示无法导出到 syslog 服务器,而且 Splunk (HEC) 部分中未显示的管理日志无法解决您的问题,请执行以下操作:
-
查看以下与导出管理日志的过程相关的日志文件。这些日志文件可能会让您对这个问题有所了解:
- /var/log/export_mgmtlog_status.log
- /var/log/export_mgmtlog_cron.log
场景:系统管理员 Cassidy 在
export_mgmtlog_status.log
中发现管道损坏错误,发现他们的收集器发送重置文件是由于防火墙问题,这在最后得到了纠正。Fri May 10 04:02:15 2024 do_logexport.py ERROR Traceback (most recent call last): File "/netscaler/do_logexport.py", line 505, in netio_send pe_socket.sendall(data) BrokenPipeError: [Errno 32] Broken pipe <!--NeedCopy-->
-
检查配置文件
/nsconfig/mgmtlogcfg.json
是否正确生成,还要检查它是否提示包含 Syslog 或 JSON 相关的配置。例如,当同时配置 Syslog 和 JSON 时,
/nsconfig/mgmtlogcfg.json
文件如下所示。“syslog”
字段确认系统日志已配置,而“json”
字段确认已配置 json。root@ns# cat /nsconfig/mgmtlogcfg.json {"syslog":{"typemask":7,"levelmask":127,"ip":"127.0.0.2","port" :5566},"json":[{"name":"ns-mgmt-log-json-profile","typemask":2,"ip":"127.0.0.2","port":5563,"metadata":"{"index":"ns-mgmt-log-syslog-index"}"}]} <!--NeedCopy-->
-
确保您查看的是正确的索引和正确的时间戳。
场景
系统管理员 Cassidy 意识到自己在 Splunk 上配置了名为
ns-mgmt-log-syslog-index
(而非ns-mgmt-log-json-index
)的系统日志索引,但后来得到了纠正。 -
在群集部署中,如果日志未从非 CCO 节点流出,请尝试运行
force cluster sync
命令。 -
网络配置文件:也可以使用网络配置文件。对于系统日志,请确保已在系统日志操作上设置了“-netprofile”。如果您正在对系统日志进行负载平衡或以 JSON 格式导出它们,请确保您已在该服务上设置了网络配置文件。
-
分区:非默认分区不支持管理日志功能。
-
时间戳:定期导出由流程生成的管理日志。因此,您收到管理日志的时间可能与生成该日志的时间不同。此外,日期格式可能不符合在 syslog 操作上配置的日期格式,因为管理系统日志遵循 RFC-5424 格式。
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.