ロギング概要
最終検証日:
翻訳: 竹洞 陽一郎
分散ネットワーク内の各Tailscaleエージェントは、そのログを中央ログサーバ(log.tailscale.com)にストリーミングします。
これには、ネットワーク上のすべてのマシン間接続(TCPまたはUDP)のオープンおよびクローズイベントのリアルタイムイベントが含まれます。
すべての接続には2つのエンドポイントが必要であり、両方のエンドポイントがすべての接続を記録するため、各エンドポイントの二重エントリを比較することで、ログの紛失や改ざんを検出できます。 また、IDS(侵入検知システム)ルールを使用して、ネットワーク上の不審なアクティビティを自動的に検出することもできます。
クライアントログ
各クライアントは、自身の動作と他のノードへの接続試行に関する情報を記録します。 収集されるデータとその使用方法については、Tailscaleのプライバシーポリシーに記載されています。
一部のデスクトッププラットフォームのノードでは、ローカルでログにアクセスできます。
- Windows
- ログは
C:\ProgramData\Tailscale(より一般的には$env:ALLUSERSPROFILE\Tailscale)に保存されます。 - macOS
-
ログエントリをリアルタイムでストリーミングするには、Consoleアプリケーションを開き、ストリーミングを開始して「
IPN」を検索します。
システムログからTailscaleのログを遡って収集するには、ターミナルでsudo sysdiagnoseを実行してmacOSのsysdiagnoseを取得できます。sysdiagnose内のsystem_logs.logarchiveファイルで「IPN」に一致するエントリを探してください。 - iOS / tvOS
-
ログエントリをリアルタイムでストリーミングするには、iOSまたはtvOSデバイスをMacに接続します。次にConsoleアプリケーションを開き、サイドバーでiOSまたはtvOSデバイスを選択し、ストリーミングを開始して「
IPN」を検索します。
システムログからTailscaleのログを遡って収集するには、sysdiagnoseを取得し、sysdiagnose内のsystem_logs.logarchiveファイルで「IPN」に一致するエントリを探してください。 - Android
logcatユーティリティを使用して、com.tailscale.ipnパッケージが発行したログエントリを検索します。- Linux
-
ログはシェルで確認できます。
journalctl -u tailscaled
集中ログ管理
一部のログは、デバッグ目的でTailscaleにより集中的に収集されます。 これは、カスタム構築された高容量・高信頼性の分散ロギングシステムによって行われます。
クライアントの動作ログは各ノードのローカルでのみアクセスできますが、システムレベルおよびコンテナレベルのログを同じ集中データストアにストリーミングして、さらなる分析に活用できます。 ネットワークフローログは、有効にすると管理コンソールから利用可能です。
クライアントロギングのオプトアウト
クライアントロギングをブロックすると、Tailscaleはテクニカルサポートを提供できなくなる場合があります。
- Windows
-
%ProgramData%\Tailscale\tailscaled-env.txtにTS_NO_LOGS_NO_SUPPORT環境変数を設定することで可能です。TS_NO_LOGS_NO_SUPPORT=true
代わりに--no-logs-no-supportフラグを使用できるようになる時期については、環境変数の使いやすさ向上に関するGitHub Issueをご参照ください。 - macOS
-
オープンソース版の
tailscaled(macOSバリアント)を使用している場合、tailscaledに--no-logs-no-supportフラグを渡します。tailscaled --no-logs-no-support
他のmacOSバリアントで--no-logs-no-supportフラグを使用できるようになる時期については、GitHub Issueをご参照ください。 - Linux
-
--no-logs-no-supportフラグを使用するか、TS_NO_LOGS_NO_SUPPORT環境変数を設定します。
--no-logs-no-supportフラグを使用するには、tailscaledにフラグを渡します。tailscaled --no-logs-no-support
TS_NO_LOGS_NO_SUPPORT環境変数を設定するには、/etc/default/tailscaledを編集して以下の行を追加します。TS_NO_LOGS_NO_SUPPORT=true
Kubernetes Operatorログ
Kubernetes Operatorの調整(reconciliation)ログは、デバッグ目的で集中的に収集されます。 これらのログは、Kubernetesリソースに関してデプロイされた状態を望ましい状態に合わせるためにKubernetes Operatorが実行したステップを記述します。
収集されるデータとその使用方法については、Tailscaleのプライバシーポリシーをご参照ください。
kubectl logsコマンドを使用してローカルでログにアクセスできます。
Kubernetesロギングのオプトアウト
HelmでKubernetes Operatorをデプロイした場合、operatorConfig.extraEnvセクションにTS_NO_LOGS_NO_SUPPORT環境変数を追加します。
operatorConfig:
extraEnv:
- name: TS_NO_LOGS_NO_SUPPORT
value: "true"
静的マニフェストでKubernetes Operatorをデプロイした場合、Kubernetes OperatorのDeploymentにTS_NO_LOGS_NO_SUPPORT環境変数を追加します。
env: - name: TS_NO_LOGS_NO_SUPPORT value: "true"
ネットワークフローログ
ネットワークフローログは、PremiumおよびEnterpriseプランでご利用いただけます。
ネットワークフローログは、どのデバイスが時間の経過とともにどのデバイスに接続しているかを把握するのに役立ちます。つまり、tailnet全体のトラフィックのフローを把握できます。
これらのログには、クライアントの動作やネットワークトラフィックの内容に関する情報は一切含まれません。
ネットワークフローログは有効化する必要があります。
フローログは、セキュリティ情報・イベント管理(SIEM)システムにストリーミングするように設定できます。
サーバログ
構成監査ログは、tailnetの構成を変更するアクションを記録します。これには、アクションの種類、実行者(アクター)、対象リソース(ターゲット)、および時刻が含まれます。
管理コンソールにアクセスできるすべてのユーザは、管理コンソールのログページで構成監査ログを確認し、フィルタリングして特定のイベントを検索できます。
構成監査ログはすべてのtailnetでデフォルトで有効化されており、直近90日間のログが利用可能です。
監査ログは、セキュリティ情報・イベント管理(SIEM)システムにストリーミングするように設定できます。
ローカルSSHセッションログ
ローカルSSHセッションログは、バージョン1.48.0以降サポートされていません。
サーバデバイスからの録画をストリーミングするには、Tailscale SSHセッションレコーディングを使用できます。