Logtailを使用してログを収集するときにLogtailマシングループでハートビートが検出されない場合は、手動で、またはLogtail自動診断ツールを使用してエラーをトラブルシューティングできます。 Logtailマシングループには、Logtailがインストールされているサーバーが含まれます。 このトピックでは、Logtailマシングループにハートビートがない場合のエラーのトラブルシューティング方法について説明します。
トラブルシューティングプロセス
Logtailを使用してログを収集する場合、Logtailは、Logtailがサーバーにインストールされた後、予定された時間にハートビートパケットをLog Serviceに送信します。 サーバーが属するマシングループでハートビートが検出されない場合、LogtailとLog Service間の接続は失敗します。 Log Serviceは、自動および手動の診断方法を提供します。 ビジネス要件に基づいて方法を選択できます。
自動診断: Log ServiceはLogtail自動診断ツールを提供します。 この方法は、LogtailがLinuxサーバーにインストールされている場合にのみ選択できます。 詳細については、「Logtail自動診断ツールの使用方法」をご参照ください。
手動診断: Logtail自動診断ツールがエラーの根本原因を特定できない場合、またはLogtailがWindowsサーバーにインストールされている場合は、次の手順を実行します。
ステップ1: Logtailがインストールされているかどうかを確認する
Logtailのステータスを表示して、Logtailがサーバーにインストールされているかどうかを確認できます。
Logtailのステータスを表示します。
Linux:
次のコマンドを実行して、Logtailのステータスを表示します。
sudo /etc/init.d/ilogtaild status
次の出力が返されると、Logtailがインストールされます。
ilogtailが実行されています
Windows:
[実行] ウィンドウを開き、
services.msc
と入力して [サービス] ウィンドウを開きます。LogtailDaemonサービス (Logtail V1.0.0.0以降) またはLogtailWorkerサービス (Logtail V0.x.x.x) の実行状態を表示します。
サービスが実行中の状態の場合、Logtailがインストールされます。
Logtailのステータスに基づいて操作を実行します。
Logtailがインストールされている場合は、手順2: Logtailのインストールパラメータとインストール方法が正しく設定されているかどうかを確認するに説明されている手順を実行します。
Logtailがインストールされていない場合は、LinuxサーバーにLogtailをインストールするまたはLogtail のインストール方法 (Windows)に記載されている手順に従ってLogtailをインストールします。
重要Logtailをインストールするときは、Logtailをサポートするオペレーティングシステムを選択し、Log Serviceプロジェクトが存在するリージョンに基づいてインストールパラメーターを選択し、ログ収集に使用されるネットワークタイプに基づいてインストール方法を選択する必要があります。 ネットワークタイプの詳細については、「ネットワークタイプの選択」をご参照ください。
手順2: Logtailのインストールパラメータとインストール方法が正しく設定されているかどうかを確認する
Logtailをインストールするときは、LogtailがLog Serviceに接続するための正しいLog Serviceエンドポイントを指定する必要があります。 Log Serviceプロジェクトが存在するリージョンに基づいてLogtailインストールパラメーターを選択し、ログ収集に使用されるネットワークタイプに基づいてインストール方法を選択する必要があります。 詳細については、「Logtailインストールのリージョン名」および「ネットワークタイプの選択」をご参照ください。 インストールパラメーターが正しく設定されていないか、Logtailインストールスクリプトが無効な場合、Logtailがインストールされているサーバーでハートビートが検出されないことがあります。 異なるリージョンのLog Serviceエンドポイントの詳細については、「エンドポイント」をご参照ください。
Logtail設定ファイルilogtail_config.jsonには、Logtailのインストールパラメーターとインストール方法が含まれています。 次のリストは、ファイルへのパスを示しています。
Linux: /usr/local/ilogtail/ilogtail_config.json
32ビットWindows: C:\Program Files\Alibaba\Logtail\ilogtail_config.json
64ビットWindows: C:\Program Files (x86)\Alibaba\Logtail\ilogtail_config.json
次の手順を実行して、Logtailのインストールパラメーターとインストール方法を確認できます。
Logtailで使用されるLog Serviceエンドポイントのリージョンが、ilogtail_config.jsonファイルのプロジェクトのリージョンと同じかどうかを確認します。
サーバーで次のコマンドを実行して、Logtailで使用されるLog Serviceエンドポイントのリージョンを表示します。
cat /usr/local/ilogtail/ilogtail_config.json
この例では、次の出力が返されます。これは、Logtailが中国 (杭州) リージョンのElastic Compute Service (ECS) インスタンスにインストールされていることを示しています。
Log Serviceコンソールでプロジェクトのリージョンを表示します。
プロジェクトのリージョンがconfig_server_addressフィールドに記録されているリージョンと同じ場合、インストールパラメーターは正しく設定されています。
ilogtail_config.jsonファイルで指定されているエンドポイントを表示し、選択したインストール方法がサーバーのネットワークタイプに基づいて正しいかどうかを確認します。
たとえば、エンドポイント
cn-hangzhou-intranet.log.aliyuncs.com
はilogtail_config.jsonファイルで指定されています。Linux:
次のコマンドを実行して、ネットワーク接続をテストします。
cur l logtail.cn-hangzhou-intranet.log.aliyuncs.com
次の例のような出力が返された場合、ネットワークは接続されています。
{"Error":{"Code":"OLSInvalidMethod","Message":"スクリプト名は無効です: /","RequestId":"5DD39230BE9910FC6CF17609"}}
Windows:
次のコマンドを実行して、ネットワーク接続をテストします。
telne t logtail.cn-hangzhou-intranet.log.aliyuncs.com 80
次の例のような出力が返された場合、ネットワークは接続されています。
Trying 100*0*7*5... Connected to logtail.cn-hangzhou-intranet.log.aliyuncs.com. エスケープ文字は「^]」です。
Logtailのインストールパラメーターとインストール方法が正しく設定されているかどうかを確認します。
Logtailがインストールされていない場合は、Logtailをサポートするオペレーティングシステムを選択し、Log Serviceプロジェクトが存在するリージョンに基づいてインストールパラメーターを選択し、サーバーのネットワークタイプに基づいてインストール方法を選択します。 詳細については、「LinuxサーバーにLogtailをインストールする」または「Logtail のインストール方法 (Windows)」をご参照ください。
Logtailがインストールされている場合は、ステップ3: マシングループで指定されたIPアドレスが正しいかどうかを確認するに説明されている手順を実行します。
ステップ3: マシングループで指定されたIPアドレスが正しいかどうかを確認する
Logtailによって取得されるサーバーIPアドレスは、マシングループで指定されているIPアドレスと同じである必要があります。 それ以外の場合、マシングループにハートビートがないか、ログを収集できません。 Logtailは、次の方法を使用してサーバーのIPアドレスを取得します。
サーバーのホスト名がIPアドレスにバインドされていない場合、Logtailはサーバーの最初のネットワークインターフェイスコントローラー (NIC) のIPアドレスを取得します。
サーバーのホスト名がIPアドレスにバインドされている場合、LogtailはIPアドレスを取得します。 ホスト名とIPアドレスは /etc/hostsファイルで確認できます。
説明hostnameフィールドからホスト名を取得できます。
次の手順を実行して、マシングループで指定されたIPアドレスが正しいかどうかを確認できます。
Logtailによって取得されたサーバーIPアドレスを表示します。
app_info.jsonファイルのipフィールドは、Logtailによって取得されるサーバーのIPアドレスを示します。 ファイルは次のいずれかのパスに格納されます。
Linux: /usr/local/ilogtail/app_info.json
32ビットWindows: C:\Program Files\Alibaba\Logtail\app_info.json
64ビットWindows: C:\Program Files (x86)\Alibaba\Logtail\app_info.json
重要app_info.json
ファイルのipフィールドが空の場合、Logtailは機能しません。 Logtailスタートアップパラメーターworking_IPを使用してサーバーのipアドレスを指定し、Logtailを再起動できます。 詳細については、「起動パラメータの設定」をご参照ください。app_info.json
ファイルは、情報の記録にのみ使用されます。 ファイルでIPアドレスを指定した場合、Logtailで取得したサーバーのIPアドレスは更新されません。
マシングループで指定されたIPアドレスを表示します。
詳細については、「マシングループの管理」をご参照ください。
Logtailクライアントで取得したIPアドレスが、マシングループで指定されているIPアドレスと同じかどうかを確認します。
マシングループで指定されたIPアドレスがLogtailで取得したIPアドレスと同じ場合は、ステップ4: ユーザー識別子が設定されているかどうかを確認するに説明されている手順を実行します。
マシングループで指定されたIPアドレスがLogtailで取得したIPアドレスと異なる場合は、マシングループのIPアドレスを変更します。 詳細については、「マシングループの変更」をご参照ください。
マシングループに指定されているIPアドレスが正しくない場合は、マシングループのIPアドレスを変更します。 1分待ってから、マシングループのハートビートステータスを確認します。
Logtailがインストールされているサーバーのネットワーク構成を変更する場合は、Logtailを再起動して、Logtailが取得したIPアドレスを更新します。 たとえば、/etc/hostsファイルを変更してネットワーク設定を変更できます。 次に、マシングループのIPアドレスを
app_info.json
ファイルのip
フィールドの値に変更します。次の方法を使用してLogtailを再起動できます。
Linux:
sudo /etc/init.d/ilogtaild stop sudo /etc/init.d/ilogtaild start
Windows:
[実行] ウィンドウを開き、
services.msc
と入力して [サービス] ウィンドウを開きます。LogtailDaemonサービス (Logtail V1.0.0.0以降) またはLogtailWorkerサービス (Logtail V0.x.x.x) を再起動します。
ステップ4: ユーザー識別子が設定されているかどうかを確認する
サーバーが別のAlibaba Cloudアカウントに属するECSインスタンス、サードパーティのクラウドサービスプロバイダーが提供するサーバー、または自己管理型データセンターの場合、サーバーにLogtailをインストールした後、Log serviceが有効化されているAlibaba cloudアカウントのIDをサーバーのユーザー識別子として指定する必要があります。 このようにして、Logtailは、さまざまなアカウントのサーバーからログを収集する権限を与えられます。 詳細については、「Alibaba Cloud ECS インスタンス以外または他のアカウントの ECS インスタンスからログを収集する」をご参照ください。
ユーザー識別子は、Alibaba CloudアカウントのIDである必要があります。 詳細については、「Log Serviceが有効化されているAlibaba CloudアカウントのIDの取得」をご参照ください。
Linux:
Alibaba CloudアカウントのIDにちなんで名付けられたファイルが /etc/ilogtail/usersディレクトリに存在するかどうかを確認します。
そうであれば、ユーザ識別子が設定される。
いいえの場合は、ユーザー識別子を設定します。 詳細については、「Alibaba Cloud ECS インスタンス以外または他のアカウントの ECS インスタンスからログを収集する」をご参照ください。
Windows:
Alibaba CloudアカウントのIDにちなんで名付けられたファイルがC:\LogtailData\usersディレクトリに存在するかどうかを確認します。
そうであれば、ユーザ識別子が設定される。
いいえの場合は、ユーザー識別子を設定します。 詳細については、「Alibaba Cloud ECS インスタンス以外または他のアカウントの ECS インスタンスからログを収集する」をご参照ください。