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