このトピックでは、ホスト環境で Logtail マシングループにハートビートがないというエラーをトラブルシューティングする方法について説明します。
マシングループインストールの例
Elastic Compute Service (ECS) インスタンスと Simple Log Service プロジェクトが同じ Alibaba Cloud アカウントに属し、同じリージョンにある場合は、「Logtail をインストールしてマシングループを作成する」の手順に従ってマシングループを作成します。
ECS インスタンスと Simple Log Service プロジェクトが異なる Alibaba Cloud アカウントに属している場合、ECS インスタンスと Simple Log Service プロジェクトが同じ Alibaba Cloud アカウントに属しているが異なるリージョンにある場合、および他のクラウドと自己管理サーバーを含むシナリオでは、「マシングループを作成する」の手順に従ってマシングループを作成します。
トラブルシューティングプレビュー
手順 1:Logtail が想定どおりに実行されているかどうかを確認する: サーバー上で Logtail が想定どおりに実行されているかどうかを確認します。
手順 2:マシングループで指定されている IP アドレスが、Logtail によって取得された IP アドレスと同じであるかどうかを確認する: マシングループで指定されている IP アドレスが、Logtail の app_info.json ファイルの IP アドレスと同じであるかどうかを確認します。IP アドレスが異なる場合、ハートビートエラーが発生します。
手順 3:Logtail 起動パラメータが有効かどうかを確認する:
ilogtail_config.json
ファイルで指定されているリージョンがサポートされているかどうかを確認します。手順 4:ネットワーク接続が利用可能かどうかを確認する: サーバーがプロジェクトのアドレスに接続できるかどうかを確認します。
手順 5:Logtail がインストールされているサーバーのシステム時刻が正しいかどうかを確認する: システム時刻が現地時刻よりも前または後の場合、システム時刻を変更する必要があります。
手順 6:クロスアカウントシナリオでユーザー識別子が構成されているかどうかを確認する: サーバーが ECS インスタンスでない場合、または ECS インスタンスと Simple Log Service プロジェクトが異なる Alibaba Cloud アカウントに属している場合は、ユーザー識別子が正しく構成されているかどうかを確認する必要があります。
手順 7:カスタム識別子ベースのマシングループを使用している場合、カスタム識別子が構成されているかどうかを確認する: カスタム識別子ベースのマシングループを使用している場合は、カスタム識別子が構成されているかどうかを確認します。
手順 8:Logtail を再起動する: 前述の操作を実行した後、Logtail を再起動する必要があります。
次の手順
ハートビートステータスが OK に変更された後もログが収集されない場合は、Logtail エラーに基づいて問題をトラブルシューティングします。詳細については、「Logtail 収集エラーを表示するにはどうすればよいですか?」をご参照ください。
手順 1:Logtail が想定どおりに実行されているかどうかを確認する
Linux
Logtail がインストールされているサーバーにログオンします。
次のコマンドを実行します。
ps -ef | grep ilogtail
次の 2 つのレコードが返された場合、Logtail は想定どおりに実行されています。レコードは、Logtail デーモンプロセスと Logtail ワーカープロセスを示しています。
UID PID PPID C STIME TTY TIME CMD ... root 12 1 0 Nov10 ? 00:00:00 /usr/local/ilogtail/ilogtail root 14 12 0 Nov10 ? 03:07:43 /usr/local/ilogtail/ilogtail ...
重要3 つ以上のレコードが返された場合は、複数の Logtail プロセスが現在のサーバーで実行されています。この場合、重複データが収集される可能性があります。実行中の Logtail プロセスがビジネス要件を満たしているかどうかを確認する必要があります。
コマンド出力に Logtail プロセスが実行されていないことが示されている場合、問題は次の理由が考えられます。
Logtail はインストールされていますが、起動されていません。詳細については、「Logtail を起動および停止する」をご参照ください。
Logtail がインストールされていません。この場合は、Logtail をインストールします。詳細については、「Linux サーバーに Logtail をインストールする」をご参照ください。
重要サーバーに Logtail をインストールする場合は、サーバーのオペレーティングシステムが Logtail でサポートされていることを確認してください。Simple Log Service プロジェクトのリージョンに基づいてインストールパラメータを構成し、使用するネットワークタイプに基づいてインストール方法を選択します。ネットワークタイプの詳細については、「ネットワークタイプを選択する」をご参照ください。
Windows
Logtail がインストールされているサーバーにログオンします。
[実行] ウィンドウを開き、
services.msc
と入力して [サービス] ウィンドウを開きます。LogtailDaemon サービスまたは LogtailWorker サービスのステータスを表示します。Logtail V1.0.0.0 以降の場合は、LogtailDaemon サービスのステータスを表示します。Logtail V0.x.x.x の場合は、LogtailWorker サービスのステータスを表示します。
サービスが [実行中] 状態ではない場合、問題は次の理由が考えられます。
Logtail はインストールされていますが、起動されていません。詳細については、「Logtail を起動および停止する」をご参照ください。
Logtail がインストールされていません。この場合は、Logtail をインストールします。詳細については、「Windows サーバーに Logtail をインストールする」をご参照ください。
重要サーバーに Logtail をインストールする場合は、サーバーのオペレーティングシステムが Logtail でサポートされていることを確認してください。Simple Log Service プロジェクトのリージョンに基づいてインストールパラメータを構成し、使用するネットワークタイプに基づいてインストール方法を選択します。ネットワークタイプの詳細については、「ネットワークタイプを選択する」をご参照ください。
手順 2:マシングループで指定されている IP アドレスが、Logtail によって取得された IP アドレスと同じであるかどうかを確認する
Logtail は、次のいずれかの方法を使用して Linux サーバーの IP アドレスを取得します。
サーバーのホスト名が IP アドレスにマップされていない場合、Logtail はサーバーの最初のネットワークインターフェースコントローラー (NIC) の IP アドレスを取得します。
カスタム IP アドレスを指定する場合は、手順 3 で取得した
ilogtail_config.json
ファイルのworking_ip
フィールドを構成します。 working_ip フィールドを構成した後、app_info.json
ファイルのip
フィールドの値は、working_ip
フィールドの値で自動的に更新されます。 working_ip フィールドの詳細については、「Logtail の起動パラメータを構成する」をご参照ください。サーバーのホスト名が IP アドレスにマップされている場合、Logtail はサーバーの
/etc/hosts
ファイルから IP アドレスを取得します。 /etc/hosts ファイルには、ホスト名と IP アドレスのマッピング設定が含まれています。
app_info.json ファイルの
ip
フィールドの値を取得します。次の表は、異なるオペレーティングシステムにおける app_info.json ファイルへのデフォルトパスを示しています。
オペレーティングシステム
Logtail
app_info.json ファイルへのパス
Linux
64 ビット Linux 用 Logtail
/usr/local/ilogtail/app_info.json
64 ビット Windows
64 ビット Windows 用 Logtail
C:\Program Files\Alibaba\Logtail\app_info.json
32 ビット Windows 用 Logtail
C:\Program Files (x86)\Alibaba\Logtail\app_info.json
32 ビット Windows
32 ビット Windows 用 Logtail
C:\Program Files\Alibaba\Logtail\app_info.json
ip
フィールドの値は、Logtail によって取得された IP アドレスを指定します。{ "UUID" : "", "hostname" : "iZ8vbdlzf******azuhZ", "instance_id" : "E9633380-***********-00163E1AA597_172.16.2.200_166****11", "ip" : "172.**.**.200", "logtail_version" : "1.3.1", "os" : "Linux; 4.19.91-26.1.al7.x86_64; #1 SMP Tue Jul 26 17:52:28 CST 2022; x86_64", "update_time" : "2022-12-27 05:38:33" }
マシングループで指定されている IP アドレスが、Logtail によって取得された IP アドレスと同じであるかどうかを確認します。
Simple Log Service マシングループは、IP アドレスベースのマシングループとカスタム識別子ベースのマシングループに分類されます。詳細については、「マシングループ」をご参照ください。
IP アドレスベースのマシングループ: 前の手順 で取得した IP アドレスが、[IP アドレス] フィールドの値に含まれているかどうかを確認します。
[IP アドレス] フィールドの値がパブリック IP アドレスなど Logtail の別の IP アドレスである場合は、値を Logtail によって取得された IP アドレスに変更します。前の手順 で取得した IP アドレスが正しくない場合は、working_ip を変更 して Logtail を再起動します。次に、マシングループのハートビートが検出できるかどうかを確認します。ハートビートが検出できる場合は、トラブルシューティングを停止できます。
カスタム識別子ベースのマシングループ: 前の手順 で取得した IP アドレスが [マシングループステータス] セクションに含まれているかどうかを確認します。[ハートビート] ステータスが [OK] の場合は、トラブルシューティングを停止できます。
手順 3:Logtail 起動パラメータが有効かどうかを確認する
ilogtail_config.json ファイルには、Logtail の起動パラメータが記録されています。
Logtail がインストールされているサーバーにログオンします。
ilogtail_config.json ファイルを見つけます。
次の表は、異なるオペレーティングシステムにおける ilogtail_config.json ファイルへのデフォルトパスを示しています。
オペレーティングシステム
Logtail
ilogtail_config.json ファイルへのパス
Linux
64 ビット Linux 用 Logtail
/usr/local/ilogtail/ilogtail_config.json
64 ビット Windows
64 ビット Windows 用 Logtail
\ilogtail_config.json
32 ビット Windows 用 Logtail
C:\Program Files (x86)\Alibaba\Logtail\ilogtail_config.json
32 ビット Windows
32 ビット Windows 用 Logtail
C:\Program Files\Alibaba\Logtail\ilogtail_config.json
ilogtail_config.json ファイルを開き、構成ファイルのパラメータが有効かどうかを確認します。
{ "config_server_address" : "http://logtail.<config_region>.log.aliyuncs.com", "data_server_list" : [ { "cluster" : "<プロジェクトが属するリージョン>", "endpoint" : "<endpoint>" } ], ... }
ilogtail_config.json ファイルの起動パラメータの構成が次の表の説明に準拠している場合、Logtail の起動パラメータは有効です。
Logtail の起動パラメータが無効な場合は、次の表の説明に基づいて ilogtail_config.json ファイルを変更し、Logtail を再起動します。詳細については、「Logtail を再起動する」をご参照ください。
サポートされているリージョンの詳細については、「サポートされているリージョン」をご参照ください。
シナリオ
ネットワークタイプ
<config_region>
<endpoint>
サーバーは、プロジェクトと同じリージョンにある ECS インスタンスです。
Alibaba Cloud 内部ネットワーク
<プロジェクトが属するリージョン>-intranet
<プロジェクトが属するリージョン>-intranet.log.aliyuncs.com
その他のシナリオ
インターネット
<プロジェクトが属するリージョン>
<プロジェクトが属するリージョン>.log.aliyuncs.com
転送アクセラレーション
log-global.aliyuncs.com
手順 4:ネットワーク接続が利用可能かどうかを確認する
Logtail がインストールされているサーバーが次のアドレスに接続できる場合にのみ、Logtail は Simple Log Service にデータをアップロードできます。
内部ネットワークを使用する場合は、<endpoint>
に -intranet
を追加する必要があります。
ilogtail_config.json
ファイルのconfig_server_address
フィールドで指定されているアドレス。フィールド値で指定された HTTPS バージョンのみがサポートされています。http://<プロジェクト名>.<endpoint>
形式のアドレス。図の手順に従って、プロジェクトの名前とリージョンを表示できます。
<endpoint>
は、ilogtail_config.json
ファイルのdata_server_list.endpoint
フィールドで指定されるアドレスです。
http://ali-<プロジェクトが属するリージョン>-sls-admin.<エンドポイント>
形式のアドレス。<エンドポイント>
は、ilogtail_config.json
ファイルのdata_server_list.endpoint
フィールドで指定されるアドレスです。
ネットワーク接続が利用可能かどうかを確認するには、次の操作を実行します。
Linux
Logtail がインストールされているサーバーにログオンします。
curl
コマンドを実行して、上記のアドレスに順番に接続します。curl http://<Project name>.ap-southeast-1-intranet.log.aliyuncs.com
各コマンド出力に次のコードに類似した情報が含まれている場合、ネットワーク接続は利用可能です。
{"Error":{"Code":"OLSInvalidMethod","Message":"The script name is invalid : /","RequestId":"5D****09"}}
ネットワーク接続が利用できない場合は、ネットワーク環境でポート 80 と 443 が有効になっているかどうか、宛先アドレスがブロックされているかどうか、および DNS 構成やセキュリティグループなどの他のネットワーク関連の構成が有効かどうかを確認します。
Windows
Logtail がインストールされているサーバーにログオンします。
telnet
コマンドを実行して、上記のアドレスに順番に接続します。telnet <Project name>.ap-southeast-1-intranet.log.aliyuncs.com 80 # HTTPS を使用する場合は、ポート 443 を指定します。
各コマンド出力に次のコードに類似した情報が含まれている場合、ネットワーク接続は利用可能です。
Trying 100*0*7*5... Connected to xxx. Escape character is '^]'.
ネットワーク接続が利用できない場合は、ネットワーク環境でポート 80 と 443 が有効になっているかどうか、宛先アドレスがブロックされているかどうか、および DNS 構成やセキュリティグループなどの他のネットワーク関連の構成が有効かどうかを確認します。
手順 5:Logtail がインストールされているサーバーのシステム時刻が正しいかどうかを確認する
Linux
Logtail がインストールされているサーバーにログオンします。
date
コマンドを実行して、システム時刻を表示します。Wed Dec 28 06:59:26 UTC 2022
システム時刻がローカル時刻よりも前または後の場合は、次の操作を実行します。
システム時刻をローカル時刻に変更します。
システム時刻を変更できない場合は、ilogtail_config.json ファイルに
"enable_log_time_auto_adjust": true
を追加します。ファイルを修正した後、Logtail を再起動します。詳細については、「Logtail を再起動する」をご参照ください。 ilogtail_config.json ファイルのパスについては、「手順 3: Logtail 起動パラメーターが有効かどうかを確認する」をご参照ください。
Windows
Logtail がインストールされているサーバーにログオンします。
デスクトップの右下隅にあるタスクバーで時間情報を確認します。
システム時間をローカル時間に変更します。
システム時間を変更できない場合は、ilogtail_config.json ファイルに "enable_log_time_auto_adjust": true を追加します。ファイルを修正した後、Logtail を再起動します。詳細については、「Logtail を再起動する」をご参照ください。 ilogtail_config.json ファイルへのパスの詳細については、「手順 3:Logtail 起動パラメーターが有効かどうかを確認する」をご参照ください。
ステップ 6:クロスアカウントシナリオでユーザー識別子が構成されているかどうかを確認する
サーバーが ECS インスタンスではない場合、または ECS インスタンスと Simple Log Service プロジェクトが異なる Alibaba Cloud アカウントに属している場合は、ユーザー識別子が正しく構成されているかどうかを確認する必要があります。
ユーザー識別子は、Alibaba Cloud アカウントの ID である必要があります。詳細については、「ユーザー識別子を構成する」をご参照ください。
指定されたディレクトリにあるユーザー識別子ファイルを使用して、ユーザー識別子が構成されているかどうかを確認します。出力が空の場合は、指定されたディレクトリにユーザー識別子ファイルが存在するかどうかを確認する必要があります。ユーザー識別子は、アカウントにこのサーバーにアクセスする権限があることを確認します。
ユーザー識別子ファイルへのパスは、オペレーティングシステムによって異なります。
Linux: /etc/ilogtail/users/
Windows: C:\LogtailData\users\
指定されたディレクトリにユーザー識別子ファイルが存在しない場合、またはユーザー識別子ファイルが無効な場合は、次の操作を実行して問題を修正します。
Linux:
cd /etc/ilogtail/users/ && touch <uid>
コマンドを実行して、ユーザー識別子ファイルを作成します。<uid>
は、プロジェクトが属する Alibaba Cloud アカウントの ID を指定します。Windows:
C:\LogtailData\users\
ディレクトリに移動し、<uid>
という名前の空のファイルを作成します。<uid>
は、プロジェクトが属する Alibaba Cloud アカウントの ID を指定します。
指定されたディレクトリに、プロジェクトが属する Alibaba Cloud アカウントの ID に基づいて名前が付けられたファイルが含まれている場合、ユーザー識別子は構成済みで有効です。
ステップ 7:カスタム識別子ベースのマシングループを使用している場合、カスタム識別子が構成されているかどうかを確認する
カスタム識別子ベースのマシングループを使用している場合は、指定されたディレクトリにある user_defined_id
ファイルを使用して、サーバーにカスタム識別子が構成されているかどうかを確認します。
出力が空の場合は、
user_defined_id
ファイルが存在するかどうか、またはファイルにカスタム識別子が構成されているかどうかを確認する必要があります。説明user_defined_id
ファイルへのパスは、オペレーティングシステムによって異なります。Linux: /etc/ilogtail/user_defined_id
Windows: C:\LogtailData\user_defined_id
user_defined_id
ファイルが存在しない場合は、user_defined_id
という名前のファイルを作成し、マシングループのカスタム識別子をファイルに追加します。詳細については、「サーバーのカスタム識別子を構成する」をご参照ください。user_defined_id
ファイルにカスタム識別子が存在しない場合、またはカスタム識別子が無効な場合は、ファイルに 1 行追加し、マシングループのカスタム識別子を入力します。詳細については、「サーバーのカスタム識別子を構成する」をご参照ください。user_defined_id
ファイルにマシングループ用に構成したカスタム識別子が含まれている場合、カスタム識別子は構成済みで有効です。
手順 8:Logtail を再起動する
上記の手順を実行した後、Logtail を再起動する必要があります。
Linux
Logtail がインストールされているサーバーにログオンします。
次のコマンドを実行します。
sudo /etc/init.d/ilogtaild restart
Windows
Logtail がインストールされているサーバーにログオンします。
[ファイル名を指定して実行] ウィンドウを開き、
services.msc
と入力して [サービス] ウィンドウを開きます。LogtailDaemon サービスまたは LogtailWorker サービスを再起動します。Logtail V1.0.0.0 以降の場合は、LogtailDaemon サービスを再起動します。Logtail V0.x.x.x の場合は、LogtailWorker サービスを再起動します。
次の手順
トラブルシューティング後もエラーが解決しない場合は、ticketを送信してください。