Jira サーバーでのメール通知の遅延のトラブルシューティング

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

プラットフォームについて: Server と Data Center のみ - この記事は、サーバーおよびデータセンター プラットフォームのアトラシアン製品にのみ適用されます。

問題

すべてのイベントの通知メールのユーザーへの到達が遅れ、場合によっては意図した受信者に届くまでに数時間がかかる。メール キューに警告やエラーはなく、メールは正常に送信されているが遅延が発生している。

これは、メール キューが自動的にフラッシュされない問題には適用されません。こちらに該当する場合は「メール キューが自動的にフラッシュされない」ナレッジベース記事をご参照ください。Jira アプリケーションでのサービスの処理方法の詳細を確認したい場合、「Jira Service Management のトラブルシューティング」ナレッジベースをご確認ください。

診断

この現象には複数の原因が考えられるため、確認されている問題の原因を特定するには次のステップを実行して問題を診断する必要があります。

メールの一括通知の遅延 (Jira 8 以降)

メールの一括通知が有効化されている場合、バッチ間隔に到達するまでメールの処理は意図的に保留されます。間隔が長いほどメッセージは遅延されます。この遅延は、[管理] > [システム] > [メール通知の一括処理] で構成できます。

メールがここで保留されている場合、バッチ システムからリリースされるまで、メール キューには表示されません。

Mail Queue Service の遅延

Mail Queue Service は既定で 1 分に 1 回実行されます。これがユーザー設定によって異なる間隔に変更されるときがあり、そのような場合は各エンド ユーザーへの到達時間に直接影響します。これは、[管理] > [システム] > [詳細] > [サービス] に移動して [スケジュール] の値を確認することで検証できます。既定値は Advanced > 0 * * * * ? であり、毎分を意味します。

メール メッセージの遅延

各メッセージで、メッセージがメール キューに追加される現在のインフローよりも長く時間がかかっているために、遅延が発生することがあります。

このシナリオを調査するには、次の手順を行う必要があります。 

  1. JVM の引数に "-Dmail.debug=true" を追加します。
  2. Jira を再起動します。
  3. [管理] > [システム] > [ログとプロファイルの作成] で送信メールのデバッグ ログを有効化します。
  4. 各メッセージのログ間隔にギャップがあるかどうかを注意深く確認します。

メール キューのエラー メッセージのスタック

There could be times where there is error message not able to being flush and therefore Jira application attempts to flush the mail again and again causing other mail items to be delayed on sending. But this can be identified from the logs itself or visually monitor the mail queue. Navigate to mail queue and perform manual flush and see if there is any mail not leaving the queue, if you manage to identify which mail is causing the delay, perhaps you could reach out to https://support.atlassian.com/ja for further assistance.

サービスおよびサードパーティ製のプラグイン サービス

既定では、Jira アプリケーション サービスは 2 または 4 つの QuartzWorker スレッドで実行されます。これは Jira アプリケーションのバージョンに応じて異なります。実行されているスレッドで問題や遅延が発生した場合、実行がスケジューリングされているサービスがあるにもかかわらず次のサービスが実行されない場合があります。診断するには、次の手順に従います。

  1. [管理] > [トラブルシューティングとサポート] > [ログとプロファイルの作成] に移動します。
  2. 既定のロガーを見つけ、ログ レベルの [設定] をクリックして別のパッケージを確認します。

    Jira アプリケーションが再起動されると、これらの追加のログ レベルは無効化されます。これらは毎回の起動時に再度有効化する必要があります。

    1. com.atlassian.jira.service.services.mail
    2. com.atlassian.mail.queue (これは以降の手順の確認では使用しませんが、トリガーされています)
  3. [送信メール ログ] と [受信メール ログ] を有効化します。
  4. 追加したパラメータが下部の一覧に表示されていることを確認します (ヒント: ブラウザの検索機能を使用することをおすすめします。有効化後は "DEBUG" として表示されます)。
  5. ログを 48 時間、または任意の時間取得し、ピーク時間のアクティビティを収集します。


  6. 生成されたログ ($Jira_HOME/log ディレクトリ)で "Attempting to run mail queue service" の文字列を絞り込みます (ヒント: Linux ベースのマシンでは grep を使用して結果をファイルに出力できます。Windows の場合は findstr を使用して結果をファイルに出力します)。次の例のようなものが表示されます。 

    2013-06-24 07:26:40,565 QuartzWorker-1 DEBUG ServiceRunner    Mail Queue Service [service.services.mail.MailQueueService] Attempting to run mail queue service
    2013-06-24 07:28:40,570 QuartzWorker-1 DEBUG ServiceRunner    Mail Queue Service [service.services.mail.MailQueueService] Attempting to run mail queue service
    2013-06-24 07:30:41,587 QuartzWorker-0 DEBUG ServiceRunner    Mail Queue Service [service.services.mail.MailQueueService] Attempting to run mail queue service
    2013-06-24 07:32:40,570 QuartzWorker-0 DEBUG ServiceRunner    Mail Queue Service [service.services.mail.MailQueueService] Attempting to run mail queue service
    2013-06-24 07:59:45,790 QuartzWorker-0 DEBUG ServiceRunner    Mail Queue Service [service.services.mail.MailQueueService] Attempting to run mail queue service
  7. 実行タイミングを比較します。上述の例では、サービスは 2 分で実行されたが、場合によっては 30 分を超えていたことがわかります。結果が 1 分で安定している場合、以降で説明しているようなほかの要因が影響している可能性が考えられます。

ネットワークとメール サーバー

  1. メール サーバーに ping で到達できることを確認し、デリバリーの遅延が大きいかどうかを確認します。
  2. 遅延が大きい場合、レスポンスを最適なタイミングで受信するために、Jira アプリケーションが使用している JavaMail で遅延が発生させられます。
  3. メール サーバーが SMTP をオーバーロードしている負荷によってリクエストが時間内に完了されていない可能性も考えられます。
  4. このような問題が発生した場合、ネットワーク管理者およびメール管理者にお問い合わせください。

受信メール ハンドラ

Jira に接続されたメールボックスに大量のメッセージがある場合に、受信メール ハンドラによるメールボックスの読み取りに時間がかかる問題も確認されています。これによって Caesium スレッドが期待された頻度で解放されず、Mail Queue Service が実行するまでに時間がかかるようになります。

逆引き DNS

メールの送信が試行されるたびに、Jira アプリケーションのサーバーのホスト名の逆引き DNS ルックアップが実行されます。ホスト名に到達できない場合、Jira アプリケーションはタイムアウトを待つ必要があり、これに時間がかかる場合があります (20-40 秒)。 

大量のリストや低速な JQL を使用するフィルタのサブスクリプション

大量のユーザー グループに送信されているサブスクリプションや、ユーザーがサブスクライブしているフィルタの一部として低速のクエリが実行されている場合があります。

ソリューション

メールの遅延の原因に応じて、次のソリューションに従います。

メールの一括通知の遅延 (Jira 8 以降)

[管理] > [システム] > [メール通知の一括処理] に移動し、[通知の受信間隔] をもっと頻繁なものに変更します。 

Mail Queue Service の遅延

サービスのメール キューの遅延を、要件に合った短い間隔に設定します。

メール メッセージの遅延

以降のメッセージで各通知で 0.7 秒の遅延が見受けられるように、クライアント (Jira) とメール サーバーとの間の通信で常に遅延がある場合、サーバー間の ping を減らす必要があります。これを行うには、サーバー同士を近づけるか、メール サーバーを Jira と同じサーバーに移動させます。

2020-09-30 19:51:30,002-0400 DEBUG [] Sending mailitem com.atlassian.jira.plugins.inform.batching.PostprocessingMailQueueItem@5ec28e46 anonymous    Mail Queue Service .
2020-09-30 19:51:30,706-0400 DEBUG [] Sending mailitem com.atlassian.jira.plugins.inform.batching.PostprocessingMailQueueItem@5ec28e46 anonymous    Mail Queue Service 250 2.6.0 <Jira.9999999.15999999999000.69999.1999999999744@Atlassian.Jira> [InternalId=9999999999, Hostname=test.atlassian.com] Queued mail for delivery

メール キューのエラー メッセージのスタック

  • スタックされたメッセージに、根本原因に結びつけられそうな情報がないかどうかを確認します (特定の受信者向け、特定の課題、特定のタイプのイベントのスタックなど)
  • Provide your observation and data collected to https://support.atlassian.com/ja for further analysis on the root cause (Please help to generate a full support zip (Administration > System > Atlassian Support Tool > Support Zip) for better diagnosis at our end)

サービスおよびサードパーティ製のプラグイン サービス

  • 実行されているサービスを確認します。メール キューと同じ遅延 (既定で 1 分) で実行されているサービスが 5 つよりも多くある場合、ほかのサービスの完了を待つ必要があるためにメール キュー サービスの実行が遅延している可能性があります。各サービスに適切な遅延を設定し、異なる時間で実行がスケジューリングされるようにします。例: メール ハンドラ サービスを 5 分で実行するようにする。
  • 問題を発生させているサービスを特定するため、ほかのサービスの遅延を大きい値に調整し (遅延が大きいほどログが確認しやすくなります)、メール キューが予定どおり実行されているかどうかを確認します。遅延を発生させている根本原因を特定したら、値を元に戻します。
  • サードパーティが提供している特定のサービスが実行および完了に時間がかかっている場合、サードパーティ製プラグインのベンダーにフィードバックを送信します。

ネットワークとメール サーバー

  • さらなるトラブルシューティングについて、ネットワーク管理者およびメール管理者に相談します。

受信メール ハンドラ

Jira にメールを取り込むために使用されているメールボックスを空にするとメールの取得処理が加速し、Mail Queue Service が意図した頻度で実行されるようになります。

逆引き DNS

  • hosts ファイルが正しいことを確認します。
  • サーバーのホスト名が正しいことを確認します。
  • ホスト名を ping します。

    ping <HOSTNAME>
  • 返された IP アドレスに対して nslookup を実行します。

    nslookup <IP_ADDRESS_FROM_PING>

     

  • (Linux のみ): DIG ルックアップを実行します。

    dig -x IP <IP_ADDRESS_FROM_PING>
  • (Windows のみ): Npcap loopback adapter がインストールされている場合は、それを無効化/削除します。
    Npcap loopback adapter によって各リバース DNS ルックアップが数秒間停滞することがある問題を確認しています。このネットワーク アダプタは通常、Wireshark のネットワーク診断ツールの一部としてインストールされますが、Wireshark のアンインストール時に自動的に削除されることはありません。Control Panel\Network and Internet\Network Connections に移動し、"NPcap loopback adapter" という名前のネットワーク アダプタがある場合は、コンテキスト メニュー (右クリック) を使ってこのアダプタを無効化します。

大量のリストや低速な JQL を使用するフィルタのサブスクリプション

この問題は次の不具合によって発生している可能性があります。

JRA-61543 - 課題詳細を取得中... ステータス

次のクエリを使用して、フィルタの一覧、それぞれの JQL クエリ、各フィルタをサブスクライブしているグループ、およびそのグループに含まれるメンバーの数を取得できます。

SELECT sr.filtername, sr.reqcontent, fs.groupname, count(1) as group_members_count
FROM filtersubscription fs
JOIN searchrequest sr on sr.id = fs.filter_i_d
JOIN cwd_membership cm on cm.parent_name = fs.groupname
WHERE membership_type = 'GROUP_USER'
GROUP BY sr.filtername, sr.reqcontent, fs.groupname
ORDER BY 4 DESC;

対象のメール サブスクリプションで使用している JQL の実行に時間がかかる場合、atlassian-jira-slow-queries.log ファイルを確認することもできます。

また、「Jira サービスのトラブルシューティング」もご参照ください。

説明

このページでは、次のような問題を解決するために必要な手順を説明しています。すべてのイベントの通知メールのユーザーへの到達が遅れ、場合によっては意図した受信者に届くまでに数時間がかかる。メール キューに警告やエラーはなく、メールは正常に送信されているが遅延が発生している。

製品Jira



最終更新日 2020 年 11 月 23 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.