# dynctlを使ってDynamic Engineをトラブルシューティング

dynctlを使って、Dynamic Engineクラスターとその中で実行されているサービスを監視・デバッグ・トラブルシューティングします。

dynctlコマンドによって次の操作が可能です:

* dynctlバージョンをチェックします。
* シェルのコンプリートスクリプトを生成します。
* クラスターの詳細を取得します。
* Dynamic Engineクラスターで、実行中のサービスのログを確認します。

## dynctl構文

dynctlコマンドの一般的な構文は次のとおりです:

```
dynctl [command] [params] [flags]
```

この構文では:

- command
    - 実行する操作(ログの収集や環境のリスト表示など)を指定します。
- params
    - コマンドに必要な追加情報(リソースIDなど)を提供します。
- flags
    - 追加の手順(デフォルトのKubeconfigファイルをオーバーライドする--kubeconfigなど)を設定します。

情報メモ重要: コマンドラインフラグは、デフォルト値、設定ファイルの設定、環境変数よりも優先されます。設定値の優先順位は次のとおりです:

1. コマンドラインフラグ(最も高い優先順位)。
2. 環境変数。
3. YAMLファイルでの設定(最も低い優先順位)。

## dynctlコマンド

| コマンド | 構文 | 説明 |
| --- | --- | --- |
| バージョン | dynctl version | 現在のdynctlバージョンを表示します。 |
| completion | dynctl completion [shell] | シェル固有のコンプリートスクリプト(Bash、Zsh、PowerShell、Fish)を作成します。詳細は、[オプション:dynctlオートコンプリート機能をインストール](https://help.qlik.com/talend/ja-JP/dynamic-engine-configuration-guide/Cloud/ctl-troubleshooting-for-dynamic-engine "オートコンプリートを設定すれば、リアルタイムでコマンド候補が表示され、dynctlが使いやすくなります。")をご覧ください。 |
| get | dynctl get [flags] | クラスターからDynamic Engineの詳細を取得します。 |
| get environment | dynctl get environment &lt;name&gt; [flags]<br><br>dynctl get env &lt;name&gt; [flags]<br><br><ul> <li><span>name</span>: 詳細を入力する<span>Dynamic Engine</span>環境の名前。省略された場合は、すべての環境がリスト表示されます。</li> </ul> | Dynamic Engine環境をリスト表示したり、特定の環境に関する詳細を提供します。 |
| help | dynctl help &lt;command&gt; | 特定のコマンドのヘルプを取得します。 |
| logs | dynctl logs [flags] | クラスター内で実行中であるDynamic Engineサービスのログを表示します。 |
| logs environment | dynctl logs environment &lt;name&gt; [flags]<br><br>dynctl logs env &lt;name&gt; [flags]<br><br><ul> <li><span>name</span>: 詳細を入力する<span>Dynamic Engine</span>環境の名前。省略された場合は、すべての環境がリスト表示されます。</li> </ul> | 指定したDynamic Engine環境で実行中であるサービスのログを表示します。 |

## dynctlコマンドライン

フラグは、デフォルトの設定をオーバーライドしてコマンドの動作を変更します。フラグは次の2つのカテゴリーに分類されます:

1. グローバルフラグ: すべてのコマンドに適用します。
2. コマンド固有のフラグ: 指定されたコマンドにのみ適用します。

コマンドラインフラグは、設定ファイルの設定や環境変数のデフォルト値よりも優先されます。設定値の優先順位は次のとおりです:

1. 上記のコマンドラインフラグ(最も高い優先順位)。
2. 環境変数。
3. YAMLファイルでの設定(最も低い優先順位)。

- **グローバルフラグ。**
    - 
- --config
    - デフォルトのdynctl設定ファイルである$HOME/.dynctl/configをオーバーライドします。
- --kubeconfig
    - クラスター接続のデフォルトのkubectl設定をオーバーライドします。
- --kubecontext
    - kubeconfigファイルでdefault-contextをデフォルトとするKubernetesコンテキストをオーバーライドします。
- -d, --debug
    - デバッグモードを有効にし、JSONから人間が読める形式にdynctlログを変換します。
- -v, --verbose
    - 詳細モードを有効にし、すべてのdynctlログレベルを記録します。
- -h, --help
    - コマンドのヘルプ情報を表示します。

- **ログおよびログ環境のコマンド固有フラグ**
    - 
- --follow, -f
    - 生成されたログを継続的にストリーミングします。デフォルト: false。
- --output, -o
    - ログの出力形式をstdoutまたはzipで指定します。デフォルト: stdout。
- --output-file
    - 出力ファイルのパスを設定します。デフォルト: autogenerated。
- --service, -s
    - 指定したサービスによってログをフィルタリングします。このフラグを複数回使用すれば、複数のサービスをフィルタリングできます。
- --since
    - 指定した期間内(300ms、-1.5h、2h45mなど)に生成されたログ出力を表示します。有効な時間単位は、ns、us (またはµs)、ms、s、m、hです。デフォルト: すべてのログ。
- --tail
    - 表示するログ出力行数を指定します。デフォルト: すべての行。

## dynctl設定方法

dynctlツールは複数の方法で設定できます(優先順位が高い順):

1. 上記のコマンドラインフラグ(最も高い優先順位)。
2. 環境変数。
3. YAMLファイルのデフォルト値(最も低い優先順位)。

設定方法のマッピング設定方法のマッピング

| フラグ | 環境変数 | YAMLキー | デフォルト | 説明 |
| --- | --- | --- | --- | --- |
| --config | DYNCTL\_CONFIG | config | $HOME/.dynctl/config | dynctl設定ファイルパス |
| --kubeconfig | DYNCTL\_KUBECONFIG | k8s.config | kubectlのデフォルト | dynctl用のKubernetes設定ファイル |
| --kubecontext | DYNCTL\_KUBECONTEXT | k8s.context | kubectlの現在のコンテキスト | dynctlのKubernetesコンテキスト |
| --debug | DYNCTL\_DEBUG | debug | false | [Debug mode] (デバッグモード) |
| --verbose | DYNCTL\_VERBOSE | verbose | false | 詳細モード |