はじめに
Docker上にデプロイしたIBM Application Gatewayのコンテナとバックエンドアプリケーションを連携させたときの問題対応するときによく使うコマンドを紹介いたします。
よく使うコマンド
dockerサービスの起動、ステータス確認
sudo service docker start
sudo service docker status
コンテナの停止、削除
docker stop <コンテナ名>
docker rm <コンテナ名>
IBM Application Gatewayのコンテナ起動
$ sudo docker run --hostname <ホスト名> --name <コンテナ名>
--detach --publish 8443:8443 --volume /mnt/c/IAG/xxx/:/var/iag/config/
--env LANG=ja icr.io/ibmappgateway/ibm-application-gateway:23.04
コンテナのログ確認
$ docker logs <コンテナ名>
IBM Application Gateway バージョン 23.04 (Build 230424) https://ibm.biz/ibm-app-gateway
Copyright (C) IBM Corporation 1994-2023. All Rights Reserved.
~~~省略~~~
コンテナ内へのアクセス
$ docker exec -it <コンテナ名> /bin/bash
コンテナのConfig.yaml設定確認
$ docker exec -it <コンテナ名> /bin/bash
$ cat /var/iag/config/config.yaml
デバッグ設定とログ確認
config.yamlに以下のエントリを設定。trace/snoop/fsssoログの出力設定する。
デフォルトで、 /var/iag/logs/フォルダがあるため、その下に出力するのがわかりやすい。
logging:
tracing:
- file_name: /var/iag/logs/trace.log
component: pdweb.debug
level: 9
- file_name: /var/iag/logs/snoop.log
component: pdweb.snoop
level: 9
- file_name: /var/iag/logs/fsso.log
component: pdweb.wan.fsso
level: 9
ログの確認方法① コンテナ内のファイルを参照する
コンテナ内にアクセス
$ docker exec -it <コンテナ名> /bin/bash
デバッグファイルを確認
$ cat /var/iag/logs/trace.log
grepコマンドも利用できる。
$ cat /var/iag/trace.log |grep server
tailコマンドも利用できる。
$ cat /var/iag/trace.log |tail -n 10
grepで該当する行の後も一緒に表示する。(-A 10 で10行表示)
$ cat /var/iag/trace.log |grep -A 10 server
Trace.logで特定リクエストが行われた時刻を確認した後、snoop.logでリクエストの詳細をを確認する。
$ cat /var/iag/snoop.log |grep -A 100 2023-08-09-07:06:07.706
ログの確認方法② コンテナ外にファイルを出力する。
IBM Application Gatewayのコンテナ起動時に、コンテナ外のストレージとファイルをマッピングしておく、
sudo docker run --hostname <ホスト名> --name <コンテナ名>
--detach --publish 8443:8443 --volume /mnt/c/IAG/xxx/:/var/iag/config/
--volume /mnt/c/IAG/xxx/trace.log:/var/iag/trace.log
--volume /mnt/c/IAG/xxx/snoop.log:/var/iag/snoop.log
--volume /mnt/c/IAG/xxx/fsso.log:/var/iag/fsso.log
--env LANG=en icr.io/ibmappgateway/ibm-application-gateway:23.04