ADC

ログ

ログとは、オペレーティングシステム、アプリケーション、サーバー、またはその他のデバイス内の使用パターン、アクティビティ、および操作に関する情報を含むソフトウェアによって生成されたデータを指します。これらのログを保存するファイルは、ログファイルと呼ばれます。ログファイルは、ネットワークオブザーバビリティの主要なデータソースです。

このトピックでは次の内容について説明します:

監査ログ

監査とは、状態または状況を系統的に調査またはレビューすることです。監査ログ機能を使用すると、さまざまなモジュールによって収集されたNetScaler ADCの状態とステータス情報をログに記録できます。ログ情報は、カーネルとユーザーレベルのデーモンに格納できます。

ログ情報を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シェルによって処理されたコマンドを記録します。
    • sh.log: ログファイルはshプロセスによって作成されます。shシェルによって処理されたコマンドを記録します。

アクセスログ

  • 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:ログファイルはsyslogデータストリームで、syslogdの「通知」データストリームに従って生成されたSyslogレコードを記録します。

  • ns.log:ログファイルにはNetScalerシステムログが含まれています。NetScalerの複数のモジュール(負荷分散、SSL、アプリファイアウォールなど)によって生成されたログがこのファイルに書き込まれます。エクスポート時には、管理プロセスによって書き込まれたns.logの内容のみがエクスポートされます。NSPPE プロセスによって書き込まれたログはエクスポートされません。

管理ログは、管理コアで実行されているさまざまなプロセスによって生成されるNetScaler上で実行されているsyslogdによってそれぞれのログファイルに記録されます。管理ログは定期的に、通常は 60 秒ごとにエクスポートされます。

管理ログのエクスポートの設定

管理ログのエクスポートは、次のいずれかの方法で設定できます:

  • Syslog サーバーへの管理ログのエクスポートの設定
  • HTTP サーバーまたは Splunk などの HEC エンドポイントへの管理ログのエクスポートを設定します

Syslog サーバーへの管理ログのエクスポートの設定

管理ログのエクスポートを設定するには、次の手順を実行する必要があります:

  1. 管理ログオプションを使用してNetScalerで監査Syslogアクションを作成します。
  2. syslog アクションを使用して syslog 監査ポリシーを作成します。
  3. syslog監査ポリシーをシステムグローバルエンティティとバインドして、すべてのNetScalerシステムイベントのログ記録を有効にします。
Syslog 監査アクションの設定

CLIを使用してNetScalerのsyslog監査アクションを構成するには、次のコマンドを実行します:

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: シスログアクションの名前
  • 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監査アクションを構成するには、次の手順を実行します:

  1. [システム]>[監査]>[Syslog]>[サーバー] タブに移動し、[追加] をクリックします。
  2. 監査サーバーの作成 」ページで、次の詳細を入力します:
    1. Syslog サーバーの名前を入力します。
    2. **サーバータイプ」リストから「サーバーIP** 」を選択し、Syslog サーバーの IP アドレスとポートを入力します。
    3. [ログレベル]、[管理ログ]、[ **管理ログレベル** ] セクションから必要なログレベルを選択します
  3. [作成] をクリックします。
Syslog 監査ポリシーの設定

CLI を使用して Syslog 監査ポリシーを設定するには、次のコマンドを実行します:

add audit syslogPolicy <name> TRUE <syslogAction>

例:

add audit syslogPolicy test-policy TRUE test

GUI を使用して Syslog 監査ポリシーを設定するには、次の手順を実行します:

  1. [システム]>[監査]>[Syslog]>[ポリシー] タブに移動し、[追加] をクリックします。
  2. 監査Syslogポリシーの作成」ページで名前を入力し、「詳細ポリシー」を選択し、サーバーリストから作成した監査Syslogサーバーを選択します。
バインド監査ログポリシー

CLI を使用して Syslog 監査ログポリシーをバインドポイントSYSTEM_GLOBALにバインドするには、次のコマンドを実行します:

bind audit syslogGlobal <policyname> -globalBindType SYSTEM_GLOBAL

例:

bind audit syslogGlobal test-policy -globalBindType SYSTEM_GLOBAL

GUI を使用して syslog 監査ログポリシーをグローバルにバインドするには、次のコマンドを実行します:

  1. [ システム] > [監査] > [Syslog] > [ポリシー ] タブに移動し、作成した Syslog 監査ポリシーを選択します。
  2. 選択した Syslog 監査ポリシーを右クリックし、「 詳細ポリシーグローバルバインディング」をクリックします。
  3. 「ポリシーの選択」リストから、作成した Syslog 監査ポリシーを選択します
  4. 「優先度」 フィールドに優先度を入力します
  5. グローバルバインドタイプ」フィールドからSYSTEM_GLOBALを選択し、「バインド」をクリックします。
  6. Syslog監査ページで、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.log のサンプルは次のとおりです:

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.log のサンプルは次のとおりです:

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.log のサンプルは次のとおりです:

[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.log のサンプルは次のとおりです:

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.log のサンプルは次のとおりです:

[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.log のサンプルは次のとおりです:

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 サーバーにエクスポートされない場合は、次の操作を行います:

  1. syslog アクションで一部の管理ログを有効にしているかどうかを確認します。

    シナリオ

    システム管理者のJohnがshow syslogaction ns-mgmt-logs-actコマンドを実行しました。出力でManagementlog: NONEおよびManagementloglevel: NONEが見つかり 、管理ログが有効になっていないことが確認されました。

    syslogaction コマンドの出力を表示

    この問題を解決するために、彼は次のコマンドを実行して管理ログと管理ログレベルを有効にしました:

    add syslogaction ns-mgmt-logs-act 9.9.9.9 -loglevel none -mgmtlogLevel all -managementlog all
    <!--NeedCopy-->
    

    有効化後、 show syslogaction ns-mgmt-logs-actコマンドを実行して、次の出力で強調表示されているように管理ログが有効になっていることを確認しました。

    syslogaction コマンド出力を有効にして表示

  2. 設定したログがローカルで生成されているかどうかを確認します。たとえば、管理ログの重要度を 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-->
    
  3. 以下を確認して確認してください:

    • 正しいトランスポートプロトコルを使用している場合
    • 正しい IP アドレスまたはドメイン名を使用している場合
    • 正しい負荷分散設定を使用している場合
    • ドメイン名が解決された場合
    • サービスまたは仮想サーバーが稼働している場合
  4. ポリシーが「true」ルールで作成され、システムグローバルにバインドされていることを確認します。バインディングが存在しない場合、ログはエクスポートされません。

    シナリオ

    システム管理者の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-->
    
  5. nstraceを実行して、UDPまたはTCPフローに異常がないか確認します。エンドポイントがTLSまたはSSLを使用するように構成されているのに、NetScalerが実際には暗号化されていないデータを送信しているかどうか、またはその逆になっているかどうかを確認します。

Splunk (HEC) で管理ログが表示されない

管理ログが Splunk (HEC) にエクスポートされない場合は、以下を実行してください:

  1. 時系列プロファイルで管理ログを有効にしているかどうかを確認します。確認するには、show analyticsprofile <profilename>コマンドを実行して出力を確認してください。

    シナリオ

    システム管理者のキャシディは、実際には syslog 形式ではなく JSON 形式が必要であることに気付きました。そのため、彼女はすべての管理 syslog 設定を削除し、分析設定を追加しました。しかし、ログがNetScalerから出力されていないことがわかりました。show analyticsprofile <name>コマンドを実行したとき、出力でManagementlog: NONEを見て、分析プロファイルで管理ログを有効にするのを忘れていたことに気付きました。

    問題を解決するために、彼女はset analytics profile <name> -managementlog ACCESSを使用して管理ログを有効にしました。この修正により、ログがNetScalerから送信され、show analyticsprofile <name>コマンドもManagementlog: ACCESSを表示しました。

    「分析Profile Management ログを表示」を「なし」に設定しました

  2. 設定されたログが実際にローカルで生成されているかどうかを確認します。たとえば、NSMGMT 管理ログを設定した場合、/var/log/ns.logに管理ログ (‘-PPE-‘ を含まない行) が生成されているかどうかを確認できます。

  3. 以下を確認して確認してください:

    • 正しいプロファイルを使用している場合。時系列プロファイルを使用する必要があります
    • サービスが解決され、稼働している場合
    • メタデータ (-analyticsEndpointMetadata) が適切に設定されていて有効な JSON であり、その中に含まれているすべてのフィールドが Splunk にエクスポートされたログに存在する場合
    • Splunk 認証トークンが正しいかどうか。認証トークンは表示されないため、形式-analyticsAuthToken ‘Splunk <token>’で正しく入力されていることを確認する必要があります
  4. nstraceを実行して、TCP または HTTP フローに異常がないか確認します。エンドポイントがTLSまたはSSLを使用するように構成されているのに、NetScalerが暗号化されていないデータを送信しているかどうか、またはその逆になっているかどうかを確認します。エクスポートされた JSON の形式が正しくないかどうかをさらに確認できます。

どのオブザーバビリティエンドポイントにも管理ログが表示されない場合の一般的なトラブルシューティングのヒント

管理ログ」に記載されているヒントが Syslog サーバーにエクスポートされず 、「 管理ログが Splunk (HEC) に表示されない 」セクションでも問題が解決しない場合は、以下を実行してください:

  1. 管理ログをエクスポートするプロセスに関連する次のログファイルを確認してください。これらのログファイルから、問題についてのヒントが得られる場合があります:

    • /var/log/export_mgmtlog_status.log
    • /var/log/export_mgmtlog_cron.log

    シナリオ:システム管理者のキャシディは、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-->
    
  2. 設定ファイル/nsconfig/mgmtlogcfg.jsonが正しく生成されているかどうかを確認し、Syslog または JSON 関連の設定が含まれているかどうかを確認してください。

    たとえば、Syslog と JSON の両方を設定すると、/nsconfig/mgmtlogcfg.jsonファイルは次のようになります。“syslog”フィールドは 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-->
    
  3. 正しいインデックスと正しいタイムスタンプが表示されていることを確認してください。

    シナリオ

    システム管理者のCassidyは、Splunkのns-mgmt-log-json-indexではなくns-mgmt-log-syslog-indexという名前のsyslogインデックスを設定していることに気付きました。 このインデックスは後で修正されました。

    分析プロファイルの正しいインデックスを表示

  4. クラスタデプロイメントで、ログが CCO 以外のノードから出力されない場合は、force cluster syncコマンドを実行してみてください。

  5. ネットプロファイル:ネットプロファイルを使用することもできます。syslog の場合は、syslog アクションに「-netprofile」が設定されていることを確認してください。Syslog の負荷分散を行う場合、または Syslog を JSON 形式でエクスポートする場合は、サービスに netprofile が設定されていることを確認してください。

  6. パーティション:管理ログ機能はデフォルト以外のパーティションではサポートされていません。

  7. タイムスタンプ:プロセスによって生成された管理ログは定期的にエクスポートされます。そのため、管理ログを受け取る時刻は、生成された時刻と同じではない場合があります。また、管理 syslog は RFC-5424 形式に従っているため、日付形式が syslog アクションで設定された日付形式に準拠しない場合があります。

ログ