5. コンテンツにスキップ

5. SSM WEBAPIのインストール

5.1 SSM WEBAPIモジュールのインストール

インストールディスクから、以下のインストーラを起動します。

64bit OS の場合 Senju Service Manager\Install\x64\2025.0.1.1\SSMWEBAPI\SSMWEBAPI\ssmwebapi-2501-01-x64.exe

Info

インストーラからMicrosoft Visual C++ 2022 Redistributable Package (x64)のインストールを求められることがあります。この場合、インストール画面のメッセージに従いインストールを行ってください。

「セットアップウィザードの開始」画面が表示されるので、「次へ」をクリックします。

「ユーザー情報」画面が表示されるので、ユーザー名・会社名を入力します。

入力し終わったら、「次へ」をクリックします。

「仮想環境作成先」画面が表示されるので、仮想環境を作成するフォルダを指定します(ここで指定したフォルダを環境変数とします)。指定した後、「次 へ」をクリックします。

「Apache2.4インストール先」画面が表示されるので、Apacheをインストールするフォルダを指定します (ここで指定したフォルダを環境変数とします)。指定した後、「次 へ」をクリックします。

「接続設定」画面が表示されるので、プロトコルを選択して、Port・サーバー名を入力します。入力し終わったら、「次へ」をクリックします。

Info

SSMWEBAPIインストール先フォルダのパスは、SSMWEBによって自動的に選択されますので、手動で変更できない。

「コンポーネントの選択」画面が表示されるので、SSMWEBAPIをインストールするコンポーネントが選択されていることを確認し、「次へ」をクリックします。

選択コンポーネント:

・SSM WEBAPIサーバー

・Microsoft Visual C++ 2022 Redistributable (x64)

・httpd-2.4.58-win64-VS17.zip

「インストール準備完了」画面が表示されます。

設定情報を確認した後、「インストール」ボタンをクリックします。

「インストール状況」画面が表示されます。処理が終了するまで待ちます。

インストールが完了して、「セットアップウィザードの完了」画面が表示されるので、「完了(F)」をクリックします。

以上で「SSM WEBAPIモジュールのインストール」は終了です。

5.2 Apacheの設定(SSL通信の設定)

Info

この手順はSSLを利用した接続を行わない場合は不要です。

  1. サーバー証明書・サーバーの秘密鍵を以下の場所に配置します。

    C:\[Apacheのインストールパス]\Apache24\conf\server.key
    C:\[Apacheのインストールパス]\Apache24\conf\ssl.crt
    
  2. ApacheのSSL設定ファイル(httpd-ssl.conf)をテキストエディタで開き、以下の内容を編集します。

    例:配置されたサーバー証明書・サーバーの秘密鍵は「ssl.crt・server.key」の場合

    SSLCertificateFile "${SRVROOT}/conf/ssl.crt"
    SSLCertificateKeyFile "${SRVROOT}/conf/server.key"
    SSLCertificateFile "C:/[Apacheのインストールパス]/conf/ssl.crt"
    SSLCertificateKeyFile "C:/[Apacheのインストールパス]/conf/server.key"
    

  3. Apacheを再起動します。

    「スタート」メニュー>「管理ツール」>「サービス」を選択し、「サービス」画面を表示します。

    「Apache2.4」を右クリックし、「起動(S)」をクリックします。

以上でApacheの設定(SSL通信の設定)は終了です。

5.3 WEBアプリケーションの設定変更

WEBアプリケーションの設定は、以下のファイルに記載されています。

  • ファイルパス:CCFSP\ccfspwebapi\conf\ssmwebapi.conf.template

設定ファイル変更前に、必ずテンプレートファイルの拡張子のtemplateを外して、conf拡張子に修正してください。

# conf拡張子へ修正前
ssmwebapi.conf.template
# conf拡張子へ修正後
ssmwebapi.conf

拡張子の修正が終わった設定ファイルは必要に応じて設定を変更してください。

仕様補足

ファイルはPython形式で記載されています。
・#から行末までの記載はコメントとして扱われます。
・タブやスペースを行頭に追加しないでください。
文法エラーとなりAPIサーバーが起動しなくなる可能性があります。

仕様補足

WEBアプリケーションの設定変更を反映するためには、ファイル編集後にWEBサーバーを再起動する必要があります。

仕様補足

既に使用しているconfファイルが存在する場合、上記テンプレートファイルを参考にして各バージョンごとに追加された項目を適宜追加してください。

  1. SSMWEBサーバーのプロトコルを指定します。

    # httpの場合
    SSMWEB_SERVER_PROTOCOL = “http”
    # httpsの場合
    SSMWEB_SERVER_PROTOCOL = “https”
    
  2. SSMWEBサーバーのホスト名を指定します。

    SSMWEB_SERVER_HOST = “ssmwebhost”
    
  3. データベースの接続設定を記載します。

    SQLALCHEMY_DATABASE_URI = "postgresql+psycopg2://ssmuser:ssmpwd@localhost:5432/ssmdb"
    

    仕様補足

    データベースの接続設定は以下の形式で指定します。

    “postgresql+psycopg2://< DBユーザー名 >:< DBユーザーパスワード >@< Postgre SQLホスト名 >:< DBポート番号>/<データベース名>”

  4. トークンを暗号化する際のシード値を指定します。

    SECRET_KEY = b'p\xbeT\x8e\xb8bk\xe2 \xb8\xee\xdb\x0c\x0f\t\xef'
    

    操作説明

    以下の操作でシード値を生成してください。
    仮想環境上で以下のコマンドを実行します。

    python -c "import os;print(os.urandom(24))"
    

  5. アクセストークン・リフレッシュトークンの有効期限を指定します。

    # アクセストークンの有効期限
    JWT_ACCESS_TOKEN_EXPIRES = datetime.timedelta(hours=1)
    # リフレッシュトークンの有効期限
    JWT_REFRESH_TOKEN_EXPIRES = datetime.timedelta(days=30)
    
  6. ヘルスチェックAPIの公開/非公開を制御します。

    # ヘルスチェックAPIを公開する場合
    PUBLISH_HEALTHCHECK_API = True
    # ヘルスチェックAPIを非公開にする場合
    PUBLISH_HEALTHCHECK_API = False
    

    仕様補足

    設定ファイルに本項目が記載されていない場合、True(公開)が設定された扱いとなります。

  7. SSL認証設定の有効/無効を制御します。

    # SSL検証を行う場合(有効)
    SSL_CERT_VERIFICATION = True
    # SSL検証を行う場合(無効)
    SSL_CERT_VERIFICATION = False
    

    仕様補足

    指定された値が上記以外の場合または設定ファイルに本項目が記載されていない場合、True(有効)が設定された扱いとなります。

  8. アクセスURLの取得には以下を設定します。

    # アクセスURL設定項目に <SSM本体のURL>を設定する。
    ACCESS_URL_SOURCE = “http://your-senjusm-url/ssm”
    

    仕様補足

    設定ファイルに本項目が記載されていない場合、アクセスURL・SAML認証用アクセスURLの値は空文字が返却されます。

以上でWEBアプリケーションの設定変更は終了です。

5.4 WEBAPI初回起動タスクの設定

Senju/SM WEBAPIでは、WEBAPIサーバー起動後の初回実行時に、WEBAPIアプリケーションを作成する処理が行われるため、時間がかかります。

該当処理は初回のみ実行されますが、本番運用で初回実行時の処理時間の増大が許容できない場合、事前に「Windowsのタスクスケジューラ」で「OS起動時」および「Apacheの起動時」にWEBAPIのヘルスチェック用エンドポイントにリクエストを実行するようにすることで、事象を回避することが可能です。

上記処理についてSenju/SM WEBAPIではスクリプトを提供しています。こちらの設定手順について記載します。

5.4.1 事前準備

  1. WEBAPIフォルダ配下のRequest_healthcheckAPI.batファイルを仮想環境と同じ場所に配置します。

    例:C:\workspace\Request_healthcheckAPI.bat

  2. WEBアプリケーション設定のssmwebapi.confファイルを開きます。

  3. ファイル内に「PUBLISH_HEALTHCHECK_API」で設定されている値を確認します。

  4. 確認した結果、以下に該当する場合はヘルスチェックAPIが使用可能であるため、準備はここで終了です。

    • ファイル内に「PUBLISH_HEALTHCHECK_API」にTrueが設定されている場合

    • ファイル内に「PUBLISH_HEALTHCHECK_API」が記載されていない場合

  5. 「PUBLISH_HEALTHCHECK_API」にFalseが設定されている場合はTrueに値を書き換えてください。

5.4.2 OS起動時の実行設定

  1. Windowsの「検索バー」から「タスク スケジューラ」と入力しアプリを開きます。

  2. 右側のメニューから「操作」>「タスクの作成」を押下します。

  3. タスクの作成の「全般」タブに以下の内容を入力します。

    項目名 設定値
    名前 任意の「名前」を指定
    説明 任意の「説明」を指定
    セキュリティオプション 「ユーザーがログオンしているときのみ実行する」にチェックを入れる
    「最上位の特権で実行する」にチェックを入れる

  4. 「トリガー」タブを選択し、「新規」ボタンを押下します。

  5. 新しいトリガーの画面で「タスクの開始」に「スタートアップ時」を選択し、「OK」ボタンを押下します。

  6. 「操作」タブを選択し、「新規」ボタンを押下します。

  7. 新しい操作の画面で以下の内容を設定します。

    項目名 設定値
    操作 プログラムの開始
    プログラム/
    スクリプト
    コマンドプロンプトのパスを指定する。
    例) C:\Windows\System32\cmd.exe
    引数の追加
    (オプション)
    実行するbatファイルのパスと引数を指定する
    /c "\ <サーバープロトコルパ> <サーバーホスト名> "
    例) /c "C:\Temp\Request_healthcheckAPI.bat http localhost 49152 Apache2.4"

  8. タスク作成画面で「OK」ボタンを押下します。

  9. OSログインユーザー認証画面が表示されます。\ ログインユーザーのパスワードを記入してOKを押下してください。

  10. タスクが登録されることを確認します。

5.4.3 Apache起動時の実行設定

  1. Windowsの「検索バー」から「タスクスケジューラ」と入力しアプリを開きます。

  2. 右側のメニューから「操作」>「タスクの作成」を押下します。

  3. タスクの作成の「全般」タブに以下の内容を入力します。

    項目名 設定値
    名前 任意の「名前」を指定
    説明 任意の「説明」を指定
    セキュリティオプション 「最上位の特権で実行する」にチェックを入れる

  4. 「トリガー」タブを選択し、「新規」ボタンを押下します。

  5. 新しいトリガーの画面で「タスクの開始」に「イベント時」を選択します。

  6. 設定のカスタムを選択し、「新しいイベントフィルター」を押下します。

  7. XMLタブを押下し、「手動でクエリを編集する」にチェックをいれ、イベントビューアーの警告メッセージに対して「はい」を押下します。

  8. ここで以下のXMLクエリを記載して「OK」ボタンを押下します。

    ※「Apache2.4」と記載がありますが、これはご利用中の環境のApacheサービス名称に合わせて修正してください。(デフォルトはApache2.4です。)

    <QueryList>
    <Query Id="0" Path="System">
        <Select Path="System">
                *[System[Provider[@Name='Service Control Manager'] and (EventID=7036)]]
                and
                *[EventData[Data[@Name='param1'] = 'Apache2.4' and Data[@Name='param2'] = '実行中']]
            </Select>
    </Query>
    </QueryList>
    

  9. 新しいトリガーの画面でも「OK」ボタンを押下します。

  10. 「操作」タブを選択し、「新規」ボタンを押下します。

  11. 新しい操作の画面で以下の内容を設定します。

    項目名 設定値
    操作 プログラムの開始
    プログラム/
    スクリプト
    コマンドプロンプトのパスを指定する。
    例) C:\Windows\System32\cmd.exe
    引数の追加
    (オプション)
    実行するbatファイルのパスと引数を指定する
    /c "\ <サーバープロトコルパ> <サーバーホスト名> "
    例) /c "C:\Temp\Request_healthcheckAPI.bat http localhost 49152 Apache2.4"

  12. 最後にタスク作成画面で「OK」ボタンを押下します。

  13. タスクが登録されていることを確認します。

5.4.4 登録したタスクの動作確認

登録したタスクスケジューラが正常に動作するか確認します。

  1. 登録したタスクを選択し、右クリック>実行するを選択します。

  2. WEBAPIのログを確認し、以下の正常ログが記載されていることを確認します。

    • GET <指定したプロトコルパラメータ>://<指定したホスト名>:<指定したポート番号>/api/healthcheck module=app line=344 200 OK

ログが出力されない原因としては以下が考えられます。

  • Apacheのサービスが起動していない(起動中)

  • タスクスケジュールに登録した設定内容の不備

上記を見直して再度正常実行されるか確認してください。

5.5 ウィルススキャンの除外

APIサーバーが稼働している環境において、アンチウィルスソフトのようなセキュリティ関連ソフトや、バックアップソフト等の予期しない動作により、パフォーマンスの影響や動作不調を起こす場合があります。

そのため、アプリケーションやミドルウェアのフォルダやファイルをリアルタイム検索から除外していただく必要があります。

各アンチウィルスソフトの除外設定手順に従い、設定を行ってください。

対象は 資料集「1.1 Senju Service Managerシステム」の9を参照してください。