2. ログレベル

2.1. はじめに

本書では、ITAにおける ログレベル について説明します。
ログレベルの設定はシステム管理者のみ可能です(オーガナイゼーションユーザーからはアクセス出来ません)。

2.2. ログレベルとは

ITAの各サービスのログレベルを管理するためのものです。
指定したサービスに対して、ログレベルを変更することができます。
サービスのログレベルは、全オーガナイゼーション、ワークスペースで共通です。

2.2.1. ログレベルの設定値と出力について

表 2.105 ログレベルの設定値と出力について

サービスのログレベルの設定値

ログに出力される対象

INFO

INFO
ERROR

DEBUG

INFO
ERROR
DEBUG

注釈

インストール直後は、INFOで設定されています。

2.2.2. ログレベル変更可能なサービス一覧

ログレベル変更可能なサービスの一覧は、以下です。
表 2.106 サービス一覧

サービス名

機能概要

ita-api-admin

ITA管理者機能API

ita-api-organization

ITA利用者用API

ita-by-ansible-execute

Ansible作業実行

ita-by-ansible-legacy-role-vars-listup

Ansible-LegacyRole変数刈取

ita-by-ansible-legacy-vars-listup

Ansible-Legacy変数刈取

ita-by-ansible-pioneer-vars-listup

Ansible-Pionner変数刈取

ita-by-ansible-towermaster-sync

Ansible Automation controller同期

ita-by-cicd-for-iac

CI/CD実行

ita-by-collector

収集

ita-by-conductor-regularly

Conductor定期作業実行

ita-by-conductor-synchronize

Conductor作業実行

ita-by-excel-export-import

Excel一括エクスポート・インポート実行

ita-by-execinstance-dataautoclean

オペレーション削除

ita-by-file-autoclean

ファイル削除

ita-by-hostgroup-split

ホストグループ分割処理

ita-by-menu-create

パラメータシート作成

ita-by-menu-export-import

メニューエクスポート・インポート実行

ita-by-terraform-cli-execute

Terraform-CLI作業実行

ita-by-terraform-cli-vars-listup

Terraform-CLI変数刈取

ita-by-terraform-cloud-ep-execute

Terraform-Cloud/EP作業実行

ita-by-terraform-cloud-ep-vars-listup

Terraform-Cloud/EP変数刈取

2.2.3. ログレベルの設定手順

ログレベル設定変更用のAPIを実行し、設定を変更します。
手順については、「ログレベル設定変更 」を参照してください。

2.3. ログレベル確認、設定変更について

2.3.1. 前提条件

本作業には下記のコマンドが必要となるため、事前にインストールをしてください。
  • 作業クライアントに必要なアプリケーション

    • curl

    • git

    • jq

2.3.2. ログレベル設定の流れ

ログレベルを登録する流れは以下の通りとなります。
  • 事前準備
  • 現状のログレベル確認
  • ログレベルの設定を作成
  • ログレベルの変更を設定

2.4. ログレベル設定確認、設定手順

2.4.1. 事前準備

GitHub リポジトリから取得した資材の中にある、シェルスクリプトを実行しオーガナイゼーションを作成します。
confファイルは、各種設定・取得シェルで使用します。
  1. ログレベルの取得、更新のシェルスクリプトを、リポジトリから git clone により取得します。

    # Exastro Platform の資材を入手
    git clone https://github.com/exastro-suite/exastro-platform.git
    
  2. 取得した資材のtoolsフォルダに移動し、API設定ファイル( api-auth.conf )のAPI実行先URLを、システム管理者用サイトアドレスに変更します。

    vi api-auth.conf
    
    変更箇所
    • api-auth.conf

      CONF_BASE_URL={システム管理者用サイトアドレス}
      CURL_OPT=-svk
      

    Tip

    自己証明書を利用している場合、証明書エラーが発生します。
    設定ファイル内の CURL_OPT=-svCURL_OPT=-svk に変更することで証明書エラーを回避できますが、認証機関から発行された正しい証明書をインストールすることを推奨します。

2.4.2. ログレベルの確認

ログレベルの設定変更にあたって、指定可能なサービスを確認します。
  • コマンド

    ./get-ita-loglevel.sh
    
  • コマンド実行後に入力(入力例)

    your username : システム管理者自身のユーザー名を入力します
    your password : システム管理者自身のパスワードを入力します
    
  • 成功時の結果表示

    "result": "000-00000" が、成功したことを示しています。
    < HTTP/1.1 200 OK
    < Date: Fri, 09 Dec 2022 06:58:26 GMT
    < Server: Apache/2.4.37 (Red Hat Enterprise Linux) mod_wsgi/4.7.1 Python/3.9
    < Content-Length: 995
    < Content-Type: application/json
    <
    { [995 bytes data]
    * Connection #0 to host platform-auth left intact
    {
      "data": {
        "ita-api-admin": "INFO",
        "ita-api-organization": "INFO",
        "ita-by-ansible-execute": "INFO",
        "ita-by-ansible-legacy-role-vars-listup": "INFO",
        "ita-by-ansible-legacy-vars-listup": "INFO",
        "ita-by-ansible-pioneer-vars-listup": "INFO",
        "ita-by-ansible-towermaster-sync": "INFO",
        "ita-by-cicd-for-iac": "INFO",
        "ita-by-collector": "INFO",
        "ita-by-conductor-regularly": "INFO",
        "ita-by-conductor-synchronize": "INFO",
        "ita-by-excel-export-import": "INFO",
        "ita-by-execinstance-dataautoclean": "INFO",
        "ita-by-file-autoclean": "INFO",
        "ita-by-hostgroup-split": "INFO",
        "ita-by-menu-create": "INFO",
        "ita-by-menu-export-import": "INFO",
        "ita-by-terraform-cli-execute": "INFO",
        "ita-by-terraform-cli-vars-listup": "INFO",
        "ita-by-terraform-cloud-ep-execute": "INFO",
        "ita-by-terraform-cloud-ep-vars-listup": "INFO"
      },
      "message": "SUCCESS",
      "result": "000-00000",
      "ts": "2023-06-23T05:50:00.455Z"
    }
    
  • RestAPIを直接呼び出す場合は以下の内容で呼び出すことが出来ます。

    BASE64_BASIC=$(echo -n "システム管理者のユーザー名を設定してください:システム管理者のパスワードを設定してください" | base64)
    BASE_URL=システム管理者用サイトアドレスを設定してください
    
    curl -k -X GET \
        -H "Content-Type: application/json" \
        -H "Authorization: basic ${BASE64_BASIC}" \
        -d  @- \
        "${BASE_URL}/api/ita/loglevel-settings/"
    

2.4.3. ログレベルの設定を作成

  • 変更するログレベルのjsonファイルを設定

    取得した toolsフォルダ配下にある、 update-ita-loglevel.sample.json を コピーして使用してください。
    ログレベル変更可能なサービス一覧 または、ログレベルの確認 で確認した対象から、変更するサービス名、ログレベルを指定してください。
  • 登録するログレベルの設定

    update-ita-loglevel.sample.jsonにコピーした例
    vi update-ita-loglevel.sample.json
    
    変更前
    {
        "service_name_1": "INFO/DEBUG",
        "service_name_2": "INFO/DEBUG"
    }
    
    変更後
    リスト 2.115 例:「ita-api-admin」、「ita-api-organization」を「DEBUG」へ変更
     {
        "ita-api-admin": "DEBUG",
        "ita-api-organization": "DEBUG"
     }
    
  • 項目説明

    表 2.107 ログレベル設定項目

    項目名

    形式

    サービス名

    ログレベル

    INFO:INFO、ERRORレベルのログを出力します。
    DEBUG:INFO、DEBUG、ERRORレベルのログを出力します。

2.4.4. ログレベル設定変更

  • コマンド

    ./update-ita-loglevel.sh update-ita-loglevel.sample.json
    
  • コマンド実行後に入力(入力例)

    your username : システム管理者自身のユーザー名を入力します
    your password : システム管理者自身のパスワードを入力します
    
  • 成功時の結果表示

    "result": "000-00000" が、成功したことを示しています。
    < HTTP/1.1 200 OK
    < Date: Fri, 09 Dec 2022 08:12:35 GMT
    < Server: Apache/2.4.37 (Red Hat Enterprise Linux) mod_wsgi/4.7.1 Python/3.9
    < Content-Length: 104
    < Content-Type: application/json
    <
    { [104 bytes data]
    * Connection #0 to host platform-auth left intact
    {
      "data": null,
      "message": "SUCCESS",
      "result": "000-00000",
      "ts": "2022-12-09T08:12:36.219Z"
    }
    
  • 失敗時の結果表示イメージ

    < HTTP/1.1 400 BAD REQUEST
    < Date: Fri, 09 Dec 2022 08:16:09 GMT
    < Server: Apache/2.4.37 (Red Hat Enterprise Linux) mod_wsgi/4.7.1 Python/3.9
    < Content-Length: 265
    < Connection: close
    < Content-Type: application/json
    <
    { [265 bytes data]
    * Closing connection 0
    {
      "message": "サービス名、ログレベルが不正です。(ita-by-ansible-legacy-role-vars-listup:CRITICAL)",
      "result": "499-01401",
      "ts": "2023-06-23T06:30:50.187Z"
    }
    
  • RestAPIを直接呼び出す場合は以下の内容で呼び出すことができます。

    BASE64_BASIC=$(echo -n "システム管理者のユーザー名を設定してください:システム管理者のパスワードを設定してください" | base64)
    BASE_URL=システム管理者用サイトアドレスを設定してください
    
    curl -k -X POST \
        -H "Content-Type: application/json" \
        -H "Authorization: basic ${BASE64_BASIC}" \
        -d  @- \
        "${BASE_URL}/api/ita/loglevel-settings/" \
        << EOF
        {
          "service_name_1": "INFO/DEBUG",
          "service_name_2": "INFO/DEBUG",
        }
        EOF
    
設定変更後の確認は、「ログレベルの確認 」を参照してください。