マシングループのハートビートは、サーバーと Simple Log Service (SLS) との間の通信ステータスを反映します。ハートビートが異常な場合、データを SLS に送信できません。このトピックでは、異常なハートビートの原因を説明し、一般的なユースケースのソリューションを提供します。
異常なハートビートの原因
サーバー上の LoongCollector は、以下の設定項目を使用して宛先のプロジェクトを識別し、ハートビートを報告します。異常なハートビートのトラブルシューティングでは、これらの設定項目の確認とネットワーク接続の検証を行います。
SLS プロジェクトを所有する Alibaba Cloud アカウント:このアカウントには、サーバーにアクセスしてそのログを収集するための権限が必要です。
プロジェクトのリージョンとネットワークタイプ:SLS エンドポイントは、リージョンとネットワークタイプに基づいて動的に生成されます。サーバーがエンドポイントに接続できることを確認してください。詳細については、「ネットワークタイプとエンドポイント」をご参照ください。
カスタム ID または IP アドレス:ハートビートは、サーバーをその IP アドレスまたはカスタム ID を使用してマシングループに関連付けることによって確立されます。
ハートビート確立の手順
LoongCollector は設定を読み取り、Alibaba Cloud アカウント ID、エンドポイント、およびサーバーの IP アドレスまたはカスタム ID を取得します。
LoongCollector は、この情報とともにハートビートを指定されたリージョン内のプロジェクトに報告します。
SLS バックエンドは、LoongCollector によって報告された IP アドレスまたはカスタム ID を、マシングループの設定と比較します。
情報が一致すると、1 つ以上の該当するプロジェクトとのハートビートが正常に確立されます。マシングループのハートビートステータスが OK に変わります。
異常なハートビートの一般的なユースケース
新しいサーバーのハートビートが FAIL になる
ハートビートのステータスが FAIL の場合、最初のハートビートが確立されるまでに時間がかかることがあります。約 2 分待ってから、ハートビートのステータスをリフレッシュしてください。ステータスが依然として FAIL の場合は、次の手順を実行します。
LoongCollector のインストール時に正しいユースケースを選択したことを確認します。ユースケースが正しい場合は、次のステップに進みます。そうでない場合は、LoongCollector をアンインストールしてから再インストールします。
インストール方法
ユースケース
この方法は、サーバーが Alibaba Cloud ECS インスタンスであり、ECS インスタンスとプロジェクトの両方が同じ Alibaba Cloud アカウントに属し、同じリージョンにある場合にのみ適用されます。
この方法は、サーバーが Alibaba Cloud ECS インスタンスであり、ECS インスタンスとプロジェクトの両方が同じ Alibaba Cloud アカウントに属しているが、異なるリージョンにある場合に適用されます。
この方法は、サーバーが Alibaba Cloud ECS インスタンスであり、ECS インスタンスとプロジェクトの両方が同じリージョンにあるが、異なる Alibaba Cloud アカウントに属している場合に適用されます。
この方法は、サーバーが Alibaba Cloud ECS インスタンスではない場合 (オンプレミスサーバーや他のクラウドプロバイダーのサーバーなど) に適用されます。
この方法は、サーバーが Alibaba Cloud ECS インスタンスであるが、ECS インスタンスとプロジェクトが異なる Alibaba Cloud アカウントに属し、異なるリージョンにある場合に適用されます。この場合、サーバーはオンプレミスサーバーとして扱うことができます。
サーバーで
sudo /etc/init.d/loongcollectord statusコマンドを実行して LoongCollector のステータスを確認します。 `loongcollector is running` が返された場合、LoongCollector は起動しています。 それ以外の場合は、次のコマンドを実行して LoongCollector を起動します:Logtail コレクターを使用する場合、
sudo /etc/init.d/ilogtaild statusでステータスを確認し、sudo /etc/init.d/ilogtaild startで起動します。sudo /etc/init.d/loongcollectord startプロジェクトとサーバーが異なる Alibaba Cloud アカウントに属しているクロスアカウントのユースケースでは、プロジェクトのアカウントにサーバーへのアクセスとログ収集の権限を付与するために、ユーザー ID ファイルを手動で設定する必要があります。
リージョンとネットワークタイプが正しいこと、およびエンドポイントに接続できることを確認します。サーバー上の
/usr/local/ilogtail/ilogtail_config.jsonファイルに、SLS プロジェクトの リージョン ID と一致する正しいregion情報が含まれているかどうかを確認します。一致している場合は、次のステップに進みます。一致していない場合は、変更します。カスタム ID または IP アドレスの値を確認します。
Simple Log Service コンソールにログインします。[プロジェクト] セクションで、対象のプロジェクトをクリックします。
左側のナビゲーションウィンドウで、 [リソース] > [マシングループ] を選択します。[マシングループ] ページで、対象のマシングループをクリックします。
[マシングループ設定] ページで、[マシングループ ID] を表示し、対応する操作を実行します。
カスタム ID
サーバー上で
/etc/ilogtail/user_defined_idファイルが存在することを確認します。存在しない場合は、作成します。カスタム識別子として、カスタム文字列をファイルに書き込みます。この例では、
user-defined-test-1を使用します。# 指定されたファイルにカスタム文字列を書き込みます。 echo "user-defined-test-1" > /etc/ilogtail/user_defined_id[カスタム識別子] をカスタム文字列に設定します。この例では、値は
user-defined-test-1です。
IP アドレス
サーバー上の
/usr/local/ilogtail/app_info.jsonにあるipフィールドの値を、[IP アドレス] フィールドに追加します。IP 値のルール:サーバーの /etc/hosts ファイルにホスト名と IP アドレスのマッピングを設定している場合、マッピングされた IP アドレスが自動的に取得されます。ホスト名のマッピングが設定されていない場合、最初のネットワークインターフェースカード (NIC) の IP アドレスが自動的に取得されます。/usr/local/ilogtail/ilogtail_config.json で working_ip パラメーターが設定されている場合、その値がサーバーの IP アドレスとして使用されます。これらの方法の少なくとも 1 つで IP アドレスが取得できることを確認してください。そうでない場合、ip フィールドは空になり、ハートビートを確立できません。
以前は成功していたハートビートが FAIL になる
以前にハートビートが成功していたということは、設定項目が正しいことを示します。マシングループがカスタム ID を使用している場合、設定は静的です。問題はネットワーク関連である可能性が高いです。SLS エンドポイントへのネットワーク接続を確認してください。マシングループが IP アドレスを使用している場合、FAIL ステータスは IP アドレスの競合または IP アドレスの変更が原因である可能性が最も高いです。問題を解決するには、次の手順を実行します。
サーバーで LoongCollector を再起動して、最新の IP アドレス情報を取得します。
Logtail コレクターを使用する場合は、
sudo /etc/init.d/ilogtaild restartsudo /etc/init.d/loongcollectord restartサーバーで、
/usr/local/ilogtail/app_info.jsonファイルのipフィールドの情報を確認します。IP 値のルール:サーバーの /etc/hosts ファイルにホスト名と IP アドレスのマッピングを設定している場合、マッピングされた IP アドレスが自動的に取得されます。ホスト名のマッピングが設定されていない場合、最初の NIC の IP アドレスが自動的に取得されます。/usr/local/ilogtail/ilogtail_config.json で working_ip パラメーターが設定されている場合、その値がサーバーの IP アドレスとして使用されます。
Simple Log Service コンソールにログインします。[プロジェクト] セクションで、対象のプロジェクトをクリックします。
左側のナビゲーションウィンドウで、 [リソース] > [マシングループ] を選択します。[マシングループ] ページで、対象のマシングループをクリックします。
[マシン グループ設定] ページで、[IP アドレス] フィールドに
/usr/local/ilogtail/app_info.jsonのipフィールドの値が含まれているかどうかを確認します。含まれていない場合は、ipフィールドの値を [IP アドレス] フィールドに追加します。IP アドレスが一致しているにもかかわらずハートビートが FAIL のままである場合は、サーバーの IP が不安定であるか、競合している可能性があります。より信頼性の高い識別のために、カスタム ID への切り替えを検討してください。
マシングループ ID のタイプを切り替えた後にハートビートが FAIL になる
IP アドレスの競合または変更が発生した場合、IP ベースのマシングループはもはや適していません。カスタム ID を使用するマシングループに切り替える必要があります。マシングループのタイプを切り替えても、ネットワーク接続、Alibaba Cloud アカウント情報、またはリージョンとネットワークタイプの設定には影響しません。したがって、カスタム ID の値が正しいことを確認するだけで済みます。
/etc/ilogtail/user_defined_idファイルが存在することを確認します。存在しない場合は、作成します。カスタム識別子として、ファイルにカスタム文字列を書き込みます。この例では
user-defined-test-1を使用します。# 指定されたファイルにカスタム文字列を書き込みます。 echo "user-defined-test-1" > /etc/ilogtail/user_defined_idSimple Log Service コンソールにログインします。[プロジェクト] セクションで、対象のプロジェクトをクリックします。
左側のナビゲーションウィンドウで、 [リソース] > [マシングループ] を選択します。[マシングループ] ページで、対象のマシングループをクリックします。
[マシングループ設定] ページで、次の 2 つのパラメーターの値を確認します。正しくない場合は、右上隅の [変更] をクリックして必要な変更を加え、保存します。
マシン グループ識別子: カスタム識別子。
カスタム識別子: カスタム文字列。この例では、値は
user-defined-test-1です。
よくある質問
すべての設定が正しいのにハートビートのステータスが FAIL になるのはなぜですか?
設定が正しく、ネットワークが正常であることを確認した場合でも、次の 2 つの理由でハートビートのステータスが FAIL になることがあります。
リージョンで長期間にわたって収集設定が適用されていないため、コレクターがハートビートの頻度を減らしている。
サーバーの負荷を軽減するため、コレクターは設定が返されない場合、リージョンからの設定リクエストの頻度を減らします。リクエスト間隔は最大 12 分まで増加する可能性があります。この間隔がリージョンのハートビート FAIL しきい値を超えると、ハートビートステータスは FAIL に変わります。
ソリューション:FAIL のハートビートステータスは無視してください。サーバーを含むマシングループに収集設定を適用します。ハートビートは、次のリージョンへのリクエスト中に回復します。ハートビートをすぐに回復させるには、コレクターを再起動します。
アクティブな構成は、
ilogtail_config.jsonファイルと一致しません。例:コレクターはデフォルト以外の構成で起動し、その後
ilogtail_config.jsonファイルが変更されますが、コレクターは再起動されません。確認方法:
最も直接的な方法は、コレクターを再起動して最新の設定を自動的にロードすることです。
ログ収集への影響が懸念される場合は、
/usr/local/ilogtail/ilogtail.LOGファイルを表示します。ファイルの先頭からキーワードload logtail config fileを検索します。その行のログエントリには、使用中の構成が含まれています。その構成がローカルファイルと一致するかどうかを確認します。
アイコンをクリックして、プロジェクトの概要ページに移動します。