いずれかの構成: 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)[0m
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 '/'[0m
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)[0m
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 '/'[0m
[38;5;87m2024-09-05 12:53:39.878680+09:00 [notice] <0.86.0> alarm_handler: {set,{system_memory_high_watermark,[]}}[0m
2024-09-05 12:54:04.298460+09:00 [info] <0.476.0> Free disk space is insufficient. Free bytes: 647168. Limit: 50000000[0m
[38;5;214m2024-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'.[0m
[38;5;214m2024-09-05 12:54:04.298588+09:00 [warning] <0.472.0> [0m
[38;5;214m2024-09-05 12:54:04.298588+09:00 [warning] <0.472.0> **********************************************************[0m
[38;5;214m2024-09-05 12:54:04.298588+09:00 [warning] <0.472.0> *** Publishers will be blocked until this alarm clears ***[0m
[38;5;214m2024-09-05 12:54:04.298588+09:00 [warning] <0.472.0> **********************************************************[0m
[38;5;214m2024-09-05 12:54:04.298588+09:00 [warning] <0.472.0> [0m
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)[0m
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 '/'[0m
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)[0m
解決策
以下の手順に従ってさらなる分析を行います:
-
以下のコマンドで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
-
VMで利用可能なディスクスペースを確認する:
[ke2-rhel89-swarm-1]$ df -h
上のコマンドで空きディスクスペースが十分にあるか確認します。空きスペースが不足している場合は不要なファイルを削除します。そして、RabbitMQの
Alarms
ステータスを再確認してディスクアラームが解除されたことを確認します。Alarms
が(none)
になり、RabbitMQが自動的に正常になるべきです。 -
正常に戻らない場合、rabbitmq コンテナを再起動してください
# CONTAINER ID を取得 $ docker ps -f name=rabbitmq # rabbitmq コンテナを再起動 $ docker restart < rabbitmq コンテナ ID>
-
KE2 APP が正常に戻らない場合、KE2 APP を再起してください。
INS-R2: Rabbitmq ログに「memory resource limit alarm set on node 」というエラーが記録されている
Rabbitmqため十分なメモリが空いていない場合、特定のノードで RabbitMQ のログを確認すると、「ログのサンプルエントリ」のようなログが表示される可能性があります。
ログのサンプルエントリ
Node: ke2-rhel89-swarm-1
[38;5;214m2024-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'.[0m
[38;5;214m2024-09-25 21:42:10.868015+09:00 [warning] <0.475.0> [0m
[38;5;214m2024-09-25 21:42:10.868015+09:00 [warning] <0.475.0> **********************************************************[0m
[38;5;214m2024-09-25 21:42:10.868015+09:00 [warning] <0.475.0> *** Publishers will be blocked until this alarm clears ***[0m
[38;5;214m2024-09-25 21:42:10.868015+09:00 [warning] <0.475.0> **********************************************************[0m
[38;5;214m2024-09-25 21:42:10.868015+09:00 [warning] <0.475.0> [0m
解決策
-
以下のコマンドで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
-
ホストサーバで高いメモリ使用率
ホストサーバのリソース状況を確認してください。 メモリ使用率が高い場合は、メモリを解放してください。
そしてまた、rabbitmq の状況をチェックすると
Alarms
が (none) になり、RabbitMQが正常に戻るはずです。 -
正常に戻らない場合、rabbitmq コンテナを再起動してください
# CONTAINER ID を取得 $ docker ps -f name=rabbitmq # rabbitmq コンテナを再起動 $ docker restart < rabbitmq コンテナ ID>
-
KE2 APP が正常に戻らない場合、KE2 APP を再起してください。