シングル構成・外部 DB シングル構成: kengine ログ調査

INS-SK1: kengine ログに「nc: bad address 'rabbitmq'」というエラーが記録されている

kengine のログに次のようなエラーが記録されている場合は、rabbitmq が停止している可能性が考えられます。

エラーログのサンプル

nc: bad address 'rabbitmq'
nc: bad address 'rabbitmq'
nc: bad address 'rabbitmq'
nc: bad address 'rabbitmq'
nc: bad address 'rabbitmq'
nc: bad address 'rabbitmq'
nc: bad address 'rabbitmq'
nc: bad address 'rabbitmq'
nc: bad address 'rabbitmq'
nc: bad address 'rabbitmq'
nc: bad address 'rabbitmq'
nc: bad address 'rabbitmq'
nc: bad address 'rabbitmq'
nc: bad address 'rabbitmq'
nc: bad address 'rabbitmq'

解決策

以下のコマンドで rabbitmq コンテナのステータスを確認してください。

$ docker ps -a -f name=rabbitmq

CONTAINER ID   IMAGE                                          COMMAND                  CREATED          STATUS                      PORTS     NAMES
4d8f2e81eb86   kompira.azurecr.io/kompira-enterprise:latest   "docker-entrypoint.s…"   16 minutes ago   Exited (1) 12 seconds ago             ke2-rabbitmq-1

ステータスが UP である場合はコンテナとしては起動しているため、コンテナ停止以外の問題が起きていると考えられます。 ホストサーバや docker サービス、ネットワークなどの状態を確認してみてください。

ステータスが UP 以外の場合は、停止しているコンテナの最新の ID を指定して再起動してみてください。

$ docker restart <rabbitmq コンテナ ID>

再起動しても正常に戻らない場合は、rabbitmq コンテナ内部で動作している rabbitmq アプリをリセットしてみてください。

$ docker exec $(docker ps -q -f name=rabbit) rabbitmqctl stop_app
$ docker exec $(docker ps -q -f name=rabbit) rabbitmqctl reset
$ docker exec $(docker ps -q -f name=rabbit) rabbitmqctl start_app

この時点でも正常に戻らない場合は、KE2 APP の再起動を試してみてください。

INS-SK2: kengine ログに「Error -2 connecting to redis:6379. Name does not resolve」というエラーが記録されている

kengine のログに次のようなエラーが記録されている場合も、redis が停止している可能性が考えられます。

主なエラーメッセージ

redis.exceptions.ConnectionError: Error -2 connecting to redis:6379. Name does not resolve.

ログのサンプルエントリ

Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/kompira/core/cache.py", line 55, in get_object
    cache.touch(key)
  File "/usr/local/lib/python3.11/site-packages/django/core/cache/backends/redis.py", line 195, in touch
    return self._cache.touch(key, self.get_backend_timeout(timeout))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/django/core/cache/backends/redis.py", line 115, in touch
    return bool(client.expire(key, timeout))
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/redis/commands/core.py", line 1762, in expire
    return self.execute_command("EXPIRE", name, time, *exp_option)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/redis/client.py", line 1266, in execute_command
    conn = self.connection or pool.get_connection(command_name, **options)
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/redis/connection.py", line 1461, in get_connection
    connection.connect()
  File "/usr/local/lib/python3.11/site-packages/redis/connection.py", line 713, in connect
    raise ConnectionError(self._error_message(e))
redis.exceptions.ConnectionError: Error -2 connecting to redis:6379. Name does not resolve.

解決策

以下のコマンドで redis コンテナのステータスを確認してください。

$ docker ps -a -f name=redis

CONTAINER ID   IMAGE                                          COMMAND                  CREATED          STATUS                      PORTS     NAMES
4d8f2e81eb86   kompira.azurecr.io/kompira-enterprise:latest   "docker-entrypoint.s…"   16 minutes ago   Exited (1) 12 seconds ago             ke2-redis-1

ステータスが UP である場合はコンテナとしては起動しているため、コンテナ停止以外の問題が起きていると考えられます。 ホストサーバや docker サービス、ネットワークなどの状態を確認してみてください。

ステータスが UP 以外の場合は、停止しているコンテナの最新の ID を指定して再起動してみてください。

$ docker restart <redis コンテナ ID>

この時点でも正常に戻らない場合は、KE2 APP の再起動を試してみてください。