Krugle Full AiO (All‐in‐One) Server Deployment Guide - krugle-jp/Krugle-Library GitHub Wiki

Krugle Full AiO (All-in-One) Server Deployment Guide

バージョン:

  • Krugle Enterprise Search: 6.2.11
  • KrugleAI: 0.8.3

目次


インストール

前提条件

最低ハードウェア仕様

  • CPU: 16コア以上 ※NVIDIA GPU搭載サーバの場合は8コア以上
  • ディスク:
    • / ~500GB - システムボリューム
    • /data ~2TB - データボリューム
  • RAM: >32 GB
  • OS: Ubuntu Server 20.04/22.04/24.04 x86 64bit または RHEL 8.x/9.x x86 64bit

注記

  • クローリング対象の総ボリュームの2倍の容量を/dataディレクトリに割り当てることを推奨します。
  • パフォーマンス向上のため、ディスクにはSSDドライブを推奨します。
  • 各サーバーモジュールはDockerイメージとして提供されます。
  • HTTPS用のサーバー証明書(.crt/.key)を準備してください。

AWS EC2利用の最小構成

GPU搭載の場合  AMI: Deep Learning OSS Nvidia Driver AMI GPU PyTorch 2.5 (Ubuntu 22.04)  EC2: g4dn.2xlarge 以上

GPU非搭載の場合:  AMI: ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server-xxx~  EC2: c5a.8xlarge 以上

必須ライブラリ

  1. インストーラーはrootユーザーとして、またはsudo権限で実行する必要があります。

  2. インストーラーを実行する前に、以下のツールをインストールする必要があります。

Ubuntuの場合:

  • systemd
  • tar
  • ufw
  • tee
% sudo apt update
% sudo apt install systemd tar ufw tee -y

RHEL/CentOSの場合:

  • systemd
  • tar
  • firewalld
  • tee
% sudo yum update
% sudo yum install systemd tar firewalld tee -y
  1. 設定ファイルを編集するために、vimなどのテキストエディタをインストールする必要があるかもしれません。

  2. ファイアウォールサービスが開始されていることを確認してください。

Ubuntuの場合:

% sudo systemctl enable ufw
% sudo systemctl start ufw
% sudo ufw --force enable
% sudo ufw status

Status: activeと表示される場合、ufwファイアウォールが有効になっています。

SSHでサーバーにアクセスする場合、ポート22が許可されていることを確認することが重要です。

% sudo ufw allow 22
% sudo ufw reload

RHEL/CentOSの場合:

% sudo systemctl enable firewalld
% sudo systemctl start firewalld
    
% sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
% sudo firewall-cmd --reload
  1. $PATH変数に/usr/local/binが含まれていることを確認してください。

バージョンアップの場合ー事前準備

インストール開始前に以下の手順で旧バージョンのアンインストールをしてください。

  1. Krugle認証サービス(KAS)が設定されている場合、管理画面の「設定」ー「認証」から認証方式を「なし(認証不要」に変更

  2. 管理画面のプロジェクト一覧画面から'Mass Export'でクロール設定のバックアップを取得

  3. '/opt/krugle/scmi/data/’以下のファイルを一時退避 (*install.shの正常終了後に手動でのデータ回復手順がありますのでご注意ください。)

% mkdir /data/krugle-backup/
% cp -r /opt/krugle/scmi/data/ /data/krugle-backup/
% cp /opt/krugle/scmi/filesystem-scmi/ldap* /data/krugle-backup/
  1. 旧バージョンのインストーラーを削除
% rm -rf /root/krugle-aio-installer/
  1. Krugleサービスの停止
% sudo systemctl stop krugle
% sudo systemctl stop shasta
  1. 旧バージョンのアンインストール
% cd /opt/krugle
% bash ./uninstall.sh

Krugleデータを削除するかを選択できます。(デフォルト:N = 保持)

Do you want to keep Krugle data on the server or remove it? Please make your decision carefully.
Remove Krugle data? (Y/N, default: N): 
  1. サーバーのリスタート
% sudo reboot

インストーラーの実行

  1. インストーラーをダウンロードする

Krugle Full AiOインストーラーをKrugleダウンロードウェブサイトからダウンロードしてください(詳細についてはKrugleサポートチームにお問い合わせください)。

  1. インストーラーを展開する
% tar -zxf ./Krugle-AiO-installer-*.tgz
  1. SSL設定

Krugleの使用にはHTTPSが必要です。

PEM形式の証明書ファイルkrugle-aio-installer/krugle/kng/kse/ssl/server.crtおよびキー ファイルkrugle-aio-installer/krugle/kng/kse/ssl/server.keyを編集/置換して、独自の証明書とキーにしてください。

※自己証明書を使用される場合、以下の手順を例に証明書を作成/配置してください。

% cd krugle-aio-installer/krugle/kng/kse/ssl
% openssl req -newkey rsa:4096 -nodes -sha256 -keyout server.key -x509 -days 3650 -out server.crt
  1. krugle-aio-installer/shasta-linux/shasta.confファイルを編集
  • hf_から始まるアクセストークンを最新の内容に変更 ← お手数ですがKrugleの担当エンジニアにご確認ください
hf_xxxxxxxxxxxxxxxxxxxxxxxxx
YOUR_KE_API_URL
YOUR_KE_USERNAME
YOUR_KE_PASSWORD
  1. インストーラーを実行する
% cd krugle-aio-installer/
% sudo ./install.sh

以下の設問について、特別なご要望がなければデフォルトのままご回答ください。

Have you read the README.md? (Y/N, default: Y):

README.md参照の確認

Enable KrugleAI Web UI? (default: Y): 

AI-web導入の確認 (デフォルト:Y)

Enable KrugleAI MRE (Model Runtime Environment, formerly known as Shasta)? (default: Y): 

Krugle Code LLM(Shasta)導入の確認 (デフォルト:Y)

Who should set up the firewall?
    - a. Let Krugle set up the firewall rules automatically
    - b. I want to set up the firewall myself
    (default: a): 

ufw設定の確認 (デフォルト:a)

Krugleサービスは/opt/krugleにインストールされ、Krugleデータは/data/krugleに配置されます。

Krugleの起動

% sudo systemctl start krugle

バージョンアップの場合ーインストール後

install.shの正常終了後、以下の手順にて以前のデータを回復してください。

  1. アップデート作業前に一時退避したデータファイルの再配置
% cp -r /data/krugle-backup/data /opt/krugle/scmi/
% cp /data/krugle-backup/ldap* /opt/krugle/scmi/filesystem-scmi/

注意)アップデートに伴い、認証サービス(KAS)の設定は無効化されています。 2. Krugleサービスの再起動

% sudo systemctl restart krugle
% sudo systemctl restart shasta
  1. shastaへの最新15Bモデルをインストール
% sudo shasta init
Do you want to perform an offline installation of LLM models?
(Offline installation requires LLM data to be pre-downloaded and extracted to the shasta installation root directory)
Enter Y for offline installation, or any other key for online installation:

デフォルトのオンラインインストールを選択:(無回答でEnter)

Please choose an LLM to install:

A) ✨🥇 [KrugleAI Code 15B + KrugleAI Text Embedding] - SIZE: 10.15 GB RAM/VRAM: 15+ GB
B) [KrugleAI Code 10B + KrugleAI Text Embedding] - SIZE: 8.85 GB RAM/VRAM: 15+ GB
C) [KrugleAI Code 35B + KrugleAI Text Embedding] - SIZE: 23.15 GB RAM/VRAM: 48+ GB

Enter your choice:

新たにインストールするLLMのモデルを選択: デフォルトのAを選択

  1. Krugle認証サービス(KAS)が必要な場合、KAS設定ガイドに従って管理画面からの有効化ならびにshastaの設定ファイルを更新 https://github.com/krugle-jp/Krugle-Library/wiki/Krugle-Authentication-Service-(KAS)-Configuration-Guide

カスタマー登録

 ※このステップは初期構築時のみ必要です。バージョンアップの際にはスキップしてください。

ライセンスをご購入いただいたお客様は、初期構築時にKrugle Enterpriseインストールウィザードに従ってカスタマー登録をしていただく必要があります。

  1. ブラウザにてURL https://<AIOサーバ>/admin/install/welcome.htmlにアクセス
  2. Registration設定では、会社名/エイリアスと、データ暗号化に使用されるKrugleキーチェーンのパスワードを入力してください
  3. Admin Account設定では、管理者のメールアドレスとパスワードを入力します。このパスワードは以後adminユーザーとしてログインする際に使用します。
  4. SMTP設定では、エラー発報先のメール情報を設定します。不必要であればスキップしてください。
  5. Authentidation設定は、ここではスキップしてください。  補足:認証を設定される場合、AiOサーバ構築完了後に別ドキュメント「KAS Configuration Guilde」をご参照ください。`

注意)設定済みのカスタマー登録内容への上書きはDBの破損につながる可能性がございますのでご注意ください。


ライセンス登録

 ※このステップは初期構築時のみ必要です。バージョンアップの際にはスキップしてください。

  1. ブラウザにて、URL https://<AIOサーバ>/admin/にアクセス

    ※ user:admin, password:(上記Registrationステップで設定したパスワード)

  2. 設定タブに移動し、左側のメニューからライセンスキーをクリック

  3. 下段のライセンスキートークンセクションで生成ボタンをクリック

  4. 生成されたライセンストークンを御社担当Krugleエンジニアにご送付ください

  5. 担当KrugleエンジニアからKrugleライセンスキーとKrugleAIライセンスキーの2つのライセンスを受領

  6. 上記同ページの更新ボタンから適用(適用)してください


ライセンス確認

  1. ブラウザにて、URL https://<AIOサーバ>/admin/にアクセス
    ※ user:admin, password:(上記Registrationステップで設定したパスワード)
  2. 設定タブに移動し、左側のメニューからライセンスキーをクリック
  3. 表示されいるライセンスの内容をご確認ください

AI-WebによるJob実行用Shastaの設定

 ※この手順はAiOサーバ上で稼働するShastaを使用する場合には必要ありません。

AI-Webが使用するshastaをAiOサーバ以外の環境で稼働させる場合にのみ、以下の手順でshastaのURLを指定する必要があります。

% sudo cd /opt/krugle
% sudo vi .env

この.envファイル中のKrugleAI Coreに関する記載を任意の内容に変更してください。

AI_BASE_URL=http://30.20.55.1: 5668
MODEL_TYPE=krugle-code-15b-chat

変更後、Krugleのサービスを再起動してください。

% sudo systemctl restart krugle

補足

※ 以下の操作は任意であり、インストールには必須ではありません。

ヒープサイズの調整

このセクションでは、大規模なコードリポジトリやファイルを扱う際にKrugleのパフォーマンスを向上させるためのパラメーター最適化方法について説明します。

Krugle HUBサービスのデフォルトのヒープサイズは4096 MB、Krugle Solrには8192 MBが割り当てられています。インデックス作成とクエリのニーズに基づいてJavaヒープサイズを調整してください。

  • Hubの設定を変更するには、以下の手順に従います。
  1. テキストエディタを使用して、/opt/krugle/kng/hub-entrypoint.shファイルを開きます:
% vi /opt/krugle/kng/hub-entrypoint.sh
  1. -Xmsと-Xmxの値を希望の値に変更します。例:
% java -Dkrugle.mode=live -Xms512m -Xmx8192m -jar /opt/kng/kng-hub.jar
  • Solrの設定を変更するには、以下の手順を実行します。
  1. テキストエディタを使用して、/opt/krugle/kng/solr.in.shにあるsolr.in.shファイルを開きます:
% vi /opt/krugle/kng/solr.in.sh
  1. SOLR_HEAPの値を希望の値に調整します。例えば:
SOLR_HEAP="16000m"

アンインストール

Krugleサービスを削除するには、アンインストールスクリプトを実行します。

cd /opt/krugle
bash ./uninstall.sh

Krugleデータを保持するか、削除するかを選択できます。

Do you want to keep Krugle data on the server or remove it? Please make your decision carefully.
Remove Krugle data? (Y/N, default: N): 

サービス管理

Krugleサービスの開始

% systemctl start krugle

Shastaサービスの開始

sudo systemctl start shasta

Krugleサービスの停止

% sudo systemctl stop krugle

Shastaサービスの停止

sudo systemctl stop shasta

ログ

各コンポーネントのログファイルは、以下のパスにあります。

Krugle Search

  • Hub: /data/krugle/hub/data/krugle/hub/logs/hub/*.log
  • API: /data/krugle/hub/data/krugle/hub/logs/api/*.log
  • Solr: /data/krugle/solr/logs/*.log
  • KSE:
    • /data/krugle/kse/logs/k7/*.log
    • /data/krugle/kse/logs/nginx/*.log
    • /data/krugle/kse/logs/uwsgi/*.log

SCMI

  • Git SCMI: /data/krugle/scmi/gitscmi/logs/*.log
  • Filesystem SCMI: /data/krugle/scmi/fsscmi/logs/*.log
  • Jira SCMI: /data/krugle/scmi/jirascmi/logs/*.log
  • Subversion SCMI: /data/krugle/scmi/svnscmi/logs/*.log

KrugleAI

  • API: /data/krugle/ai/logs/*.log
  • Web: /data/krugle/ai/admin-ui/logs/*.log

Shasta

  • /var/log/shasta/shasta.log

ライセンス

© 2024 Krugle/Aragon Consulting Group, Inc.

⚠️ **GitHub.com Fallback** ⚠️