いずれかの構成: rabbitmq ログ調査

INS-R1: RabbitMQ でのディスクリソース制限アラーム

RabbitMQは、ノード上の空きディスクスペースが設定されたthreshold値(デフォルトでは50MB)を下回った場合にディスクリソース制限アラームを発生させます。これは、ディスクスペースが解放されるまでパブリッシャーをブロックします。RabbitMQ のログを確認すると、特定のノードで「ログのサンプルエントリ」のようなログが表示される可能性があります。

ログのサンプルエントリ

Node: ke2-rhel89-swarm-1

2024-09-05 12:42:41.882617+09:00 [info] <0.3194.0> accepting AMQP connection <0.3194.0> (10.0.2.58:43344 -> 10.0.2.54:5672)
2024-09-05 12:42:41.925986+09:00 [info] <0.3194.0> connection <0.3194.0> (10.0.2.58:43344 -> 10.0.2.54:5672): user 'guest' authenticated and granted access to vhost '/'
2024-09-05 12:42:47.408871+09:00 [info] <0.3222.0> accepting AMQP connection <0.3222.0> (10.0.2.58:53238 -> 10.0.2.54:5672)
2024-09-05 12:42:47.451867+09:00 [info] <0.3222.0> connection <0.3222.0> (10.0.2.58:53238 -> 10.0.2.54:5672): user 'guest' authenticated and granted access to vhost '/'
2024-09-05 12:53:39.878680+09:00 [notice] <0.86.0>     alarm_handler: {set,{system_memory_high_watermark,[]}}
2024-09-05 12:54:04.298460+09:00 [info] <0.476.0> Free disk space is insufficient. Free bytes: 647168. Limit: 50000000
2024-09-05 12:54:04.298588+09:00 [warning] <0.472.0> disk resource limit alarm set on node 'rabbit@mq-ke2-rhel89-swarm-1'.
2024-09-05 12:54:04.298588+09:00 [warning] <0.472.0> 
2024-09-05 12:54:04.298588+09:00 [warning] <0.472.0> **********************************************************
2024-09-05 12:54:04.298588+09:00 [warning] <0.472.0> *** Publishers will be blocked until this alarm clears ***
2024-09-05 12:54:04.298588+09:00 [warning] <0.472.0> **********************************************************
2024-09-05 12:54:04.298588+09:00 [warning] <0.472.0> 
2024-09-05 12:57:16.350956+09:00 [info] <0.4716.0> accepting AMQP connection <0.4716.0> (10.0.2.58:33252 -> 10.0.2.54:5672)
2024-09-05 12:57:16.406858+09:00 [info] <0.4716.0> connection <0.4716.0> (10.0.2.58:33252 -> 10.0.2.54:5672): user 'guest' authenticated and granted access to vhost '/'
2024-09-05 12:57:50.860279+09:00 [info] <0.4787.0> accepting AMQP connection <0.4787.0> (10.0.2.55:48046 -> 10.0.2.54:5672)  

解決策

以下の手順に従ってさらなる分析を行います:

  1. 以下のコマンドでRabbitMQのAlarmsステータスを確認します。

    [ke2-rhel89-swarm-1]$ docker exec $(docker ps -q -f name=rabbitmq) rabbitmqctl status
    

    Alarmsが残っている場合以下のように表示される

    Alarms
    
    Free disk space alarm on node rabbit@mq-ke2-rhel89-swarm-1
    
  2. VMで利用可能なディスクスペースを確認する:

    [ke2-rhel89-swarm-1]$ df -h
    

    上のコマンドで空きディスクスペースが十分にあるか確認します。空きスペースが不足している場合は不要なファイルを削除します。そして、RabbitMQのAlarmsステータスを再確認してディスクアラームが解除されたことを確認します。

    Alarms(none) になり、RabbitMQが自動的に正常になるべきです。

  3. 正常に戻らない場合、rabbitmq コンテナを再起動してください

    # CONTAINER ID を取得
    $ docker ps -f name=rabbitmq
    
    # rabbitmq コンテナを再起動
    $ docker restart < rabbitmq コンテナ ID>
    
  4. KE2 APP が正常に戻らない場合、KE2 APP を再起してください。

INS-R2: Rabbitmq ログに「memory resource limit alarm set on node 」というエラーが記録されている

Rabbitmqため十分なメモリが空いていない場合、特定のノードで RabbitMQ のログを確認すると、「ログのサンプルエントリ」のようなログが表示される可能性があります。

ログのサンプルエントリ

Node: ke2-rhel89-swarm-1

2024-09-25 21:42:10.868015+09:00 [warning] <0.475.0> memory resource limit alarm set on node 'rabbit@mq-ke2-rhel89-swarm-1'.
2024-09-25 21:42:10.868015+09:00 [warning] <0.475.0> 
2024-09-25 21:42:10.868015+09:00 [warning] <0.475.0> **********************************************************
2024-09-25 21:42:10.868015+09:00 [warning] <0.475.0> *** Publishers will be blocked until this alarm clears ***
2024-09-25 21:42:10.868015+09:00 [warning] <0.475.0> **********************************************************
2024-09-25 21:42:10.868015+09:00 [warning] <0.475.0> 

解決策

  1. 以下のコマンドでRabbitMQのAlarmsステータスを確認します。

    [ke2-rhel89-swarm-1]$ docker exec $(docker ps -q -f name=rabbitmq) rabbitmqctl status
    

    Alarmsが残っている場合以下のように表示される

    Alarms
    
    Memory alarm on node rabbit@mq-ke2-rhel89-swarm-1
    
  2. ホストサーバで高いメモリ使用率

    ホストサーバのリソース状況を確認してください。 メモリ使用率が高い場合は、メモリを解放してください。

    そしてまた、rabbitmq の状況をチェックすると Alarms が (none) になり、RabbitMQが正常に戻るはずです。

  3. 正常に戻らない場合、rabbitmq コンテナを再起動してください

    # CONTAINER ID を取得
    $ docker ps -f name=rabbitmq
    
    # rabbitmq コンテナを再起動
    $ docker restart < rabbitmq コンテナ ID>
    
  4. KE2 APP が正常に戻らない場合、KE2 APP を再起してください。