全文検索サーバーのインストール

全文検索サーバーを運用するサーバーに、全文検索サーバーをインストールします。

操作手順:
  1. 全文検索サーバーを運用するサーバーに、rootユーザーでログインします。

  2. 任意のディレクトリーに、全文検索サーバーのインストーラー「cbfts64-2.0.3.bin」を配置します。

  3. インストーラーを実行します。

    インストーラーを配置したディレクトリーで、次のコマンドを実行します。

    # sh cbfts64-2.0.3.bin

  4. 画面の指示にしたがって、全文検索サーバーをインストールします。

    インストール中、次の情報を指定します。

    入力する情報 説明
    全文検索サーバーをインストールするディレクトリー 全文検索サーバーのインストール先を指定します。
    指定したディレクトリーの配下に検索用のインデックスが保存されます。パーティションの空き容量に注意してください。
    必要な空き容量については、動作環境を参照してください。
    アプリケーション識別子 Garoonのインストール識別子を指定します。
    既定の設定でGaroonをインストールした場合、識別子は「cbgrn」です。
    アプリケーションのDBポート番号 GaroonのMySQLのポート番号を指定します。
    既定の設定でGaroonをインストールした場合、ポート番号は3770です。
    アプリケーションのDB接続パスワード Garoonの「データベース接続ユーザー」のパスワードを指定します。
    アプリケーションの実行ユーザー Garoon のサーバーで動作している Web サーバーサービスの実行ユーザーを指定します。通常の設定では、実行ユーザーは「apache」です。

Garoonと全文検索サーバーの接続を設定する

Garoonと全文検索サーバーとの通信に必要な設定を行います。

全文検索サーバーの設定

全文検索サーバーをインストールしたサーバーで、Garoonへの接続の設定と、Garoonからの接続を許可する設定を行います。

Garoonへの接続を設定する

全文検索サーバーの設定ファイルを編集し、Garoonへの接続を設定します。

操作手順:
  1. 全文検索サーバーの設定ファイル「cbgrn.json」と「slash.json」を編集します。
    • cbgrn.jsonとslash.jsonのファイルパス:
      • cbgrn.json: /usr/local/cybozu/cbfts/conf/cb/cbgrn.json
      • slash.json: /usr/local/cybozu/cbfts/conf/cb/slash.json
    • 変更内容:
      {
      "map": {
        "0": [
          {
            "username": "cb_cbgrn",
            "host": "garoon-server", a)
            "password": "cybozu", b)
            "port": 3770
          }
        ]
      },
      "algorithm": "range-int"
      }
      
    a):Garoon のサーバー構成に合わせて、次のIPアドレス、またはホスト名を指定します。
    キューを管理するサーバーに関する情報は、設定ファイル「setting.ini」の[mysql_job_host]セクションに記述されています。詳細は、GaroonがDB分割構成の場合を参照してください。
    b):Garoonのデータベース接続ユーザーのパスワードを指定します。

Garoonからの接続を許可する

初期設定では、全文検索サーバーにはほかのサーバーから接続できません。Garoonのサーバーから接続できるように設定を変更する必要があります。
この設定を行うと、Garoon以外のサーバーからも全文検索サーバーに接続できるようになります。セキュリティの保護のため、全文検索サーバーをインストールしたサーバーにファイアウォールを設定し、Garoonのサーバーからの接続だけを許可してください。
詳細は、Garoonと全文検索サーバーとの間の通信を参照してください。

操作手順:
  1. 全文検索サーバーの設定ファイル「configure」を編集します。

    • configureのファイルパス:
      /usr/local/cybozu/cbfts/bin/configure
    • 変更内容:
      workerHost=0.0.0.0 a)
      solrHost=0.0.0.0 a)
      workerPort=8686
      solrPort=8983
      
    a):「127.0.0.1」を「0.0.0.0」に変更します。

  2. WorkerとSolrを再起動します。

    次のコマンドを実行します。

    # /etc/init.d/cbss_worker stop
    # /etc/init.d/cbss_solr stop
    # /etc/init.d/cbss_solr start
    # /etc/init.d/cbss_worker start

ファイアウォールの設定をする

iptablesを使用する場合を例に、ファイアウォールの設定方法を説明します。

操作手順:
  1. 全文検索サーバーを運用しているサーバーで、iptablesの設定ファイル「iptables」を編集します。

    Garoonを運用しているデータベースサーバーごとに、iptablesを編集します。

    • iptablesのファイルパス:
      /etc/sysconfig/iptables
    • 変更内容:
      • キューを管理するサーバーからのアクセスを許可する:
        iptablesに、キューを管理するサーバーが全文検索サーバーにアクセスできるようにするための設定を追記します。
        キューを管理するサーバーのIPアドレスが「192.168.1.10」の場合の設定例です。

        -A INPUT -s 127.0.0.1 -j ACCEPT
        -A INPUT -s 192.168.1.10 -j ACCEPT
        -A OUTPUT -d 127.0.0.1 -j ACCEPT
        -A OUTPUT -d 192.168.1.10 -j ACCEPT

        キューを管理するサーバーについては、GaroonがDB分割構成の場合を参照してください。

      • アプリケーションサーバーからのアクセスを許可する:
        iptablesに、アプリケーションサーバーが全文検索サーバーにアクセスできるようにするための設定を追記します。
        アプリケーションサーバーのIPアドレスが「192.168.1.20」の場合の設定例です。

        -A INPUT -s 192.168.1.20 -j ACCEPT
        -A OUTPUT -d 192.168.1.20 -j ACCEPT

  2. iptablesを再起動します。

    次のコマンドを実行します。

    # systemctl restart iptables

    設定の変更がiptablesに反映されます。

  3. Garoonを運用しているサーバーからのみ、全文検索サーバーをインストールしたサーバーに接続できることを確認します。

    Garoonを運用している各サーバーと、それ以外のサーバーで、次の2つのコマンドを実行します。

    全文検索サーバーをインストールしたサーバーのIPアドレスが「192.168.2.10」の場合:

    • マスターデータベースサーバーで実行するコマンド:

      # wget --spider http://192.168.2.10:8686/version
    • アプリケーションサーバーで実行するコマンド:

      # wget --spider http://192.168.2.10:8983/version

    Garoonを運用しているサーバーで実行した場合にだけ「200 OK」が表示されることを確認します。

Garoonの設定

Garoonを運用しているサーバーで、全文検索サーバーとの接続に必要な設定を行います。

設定ファイル「fts.json」を編集する

fts.jsonに、全文検索サーバーの情報を記述します。
Garoonを運用しているすべてのサーバーで設定を行います。

操作手順:
  1. Garoonを運用しているサーバーにrootユーザーでログインします。

  2. 設定ファイル「fts.json」を編集します。

    • fts.jsonのファイルパス:
      /usr/local/cybozu/cbfts/conf/cb/fts.json
    • 変更内容:
      {
      "map": {
        "0": [
          {
            "username": null,
            "host": "search-server", a)
            "password": null,
            "port": 8983
          }
        ]
      },
      "algorithm": "range-int"
      }
      
    a):全文検索サーバーのIPアドレス、またはホスト名を指定します。

  3. Garoonを運用しているすべてのサーバーに対して、手順1から手順2を実行します。

ファイアウォールの設定をする

全文検索サーバーからGaroonに接続できるように、Garoonを運用しているサーバーのiptablesに、全文検索サーバーを運用しているサーバーのIPアドレスを設定します。
Garoonを運用しているすべてのサーバーで、iptablesの設定ファイル「iptables」を編集します。

  • iptablesのファイルパス:
    /etc/sysconfig/iptables

  • 変更内容:
    設定は、全文検索サーバーを運用しているサーバーのIPアドレスが「192.168.2.10」の場合の例です。
    設定例:

    -A INPUT -s 127.0.0.1 -j ACCEPT
    -A INPUT -s 192.168.2.10 -j ACCEPT
    -A OUTPUT -d 127.0.0.1 -j ACCEPT
    -A OUTPUT -d 192.168.2.10 -j ACCEPT

MySQLで通知を有効化する

GaroonのMySQLで、通知を有効化します。通知を有効化すると、MySQLは、キューへのジョブの追加を全文検索サーバーに通知するようになります。

MySQLにWorkerの情報を登録する

MySQLの設定ファイルを編集し、WorkerのIPアドレスとポート番号を登録します。
この作業は、すべてのデータベースサーバーで行います。

操作手順:
  1. Garoonのデータベースサーバーにrootユーザーでログインします。

  2. MySQLのWorkerの設定ファイル「worker.ini」を編集します。

    • worker.iniのファイルパス:
      /usr/local/cybozu/mysql-5.0/etc/worker.ini
    • 変更内容:
      WORKER_HOSTの値を、全文検索サーバーのIPアドレスに変更します。
      WORKER_HOST=(全文検索サーバーのIPアドレスまたはホスト名)

      全文検索サーバーをインストールしたサーバーのIPアドレスが「192.168.2.10」の場合の例です。
      • 変更前:

        WORKER_HOST=127.0.0.1
        WORKER_PORT=8686
      • 変更後:

        WORKER_HOST=192.168.2.10
        WORKER_PORT=8686

  3. MySQLを再起動します。

    コマンドプロンプトで、次のコマンドを実行します。

    # /etc/init.d/cyde_5_0 restart

  4. すべてのデータベースサーバーで、手順1から手順3を実行します。

通知を有効化するためのコマンドを実行する

MySQLで通知を有効化するためのコマンドを実行します。

操作手順:
  1. キューを管理するデータベースサーバーで、次のディレクトリーに移動します。

    • /usr/local/cybozu/cbgrn/

    コマンドの例:

    # cd /usr/local/cybozu/cbgrn/

  2. 次のコマンドを実行します。

    # ./grn.cgi -C -q code/command/fts/enable_udf_notifier.csp db_admin_password=(データベース管理ユーザーのパスワード)

    「UDF notifier is available.」と表示されることを確認します。

    エラーメッセージが表示された場合の対処方法は、次のとおりです。

    エラーメッセージ 対処方法
    Error: DB00000
    A database error has occurred.
    Database error number: DB00000
    Cause:
    DBサーバーへの接続に失敗しました
    MySQLが起動していない場合は、起動します。
    MySQLがすでに起動している場合は、データベース管理ユーザーのパスワードが間違っている可能性があります。
    正しいパスワードを指定してください。
    Error: DB99999
    A database error has occurred.
    Database error number: (エラーコード)
    Cause:
    Response from database: (エラーメッセージ)
    MySQLを読み込めません。サイボウズにお問い合わせください。

  3. 全文検索サーバーをインストールしたサーバーにrootユーザーでログインします。

  4. Workerを再起動します。

    次のコマンドを実行します。

    # /etc/init.d/cbss_worker stop
    # /etc/init.d/cbss_worker start

添付ファイル保存領域をマウントする

全文検索サーバーをインストールしたサーバーから、Garoonの添付ファイル保存ディレクトリーをNFSマウントします。全文検索サーバーが添付ファイルの検索に必要なインデックスを作成するために必要な設定です。
この設定は、Garoonの添付ファイルを保存しているサーバーと、全文検索サーバーをインストールしたサーバーの、両方で行います。

ここでは、マウントにNFSv4を使用することを前提に、設定手順を説明します。

Garoonの添付ファイルを保存しているサーバーで行う設定

操作手順:
  1. Garoonの添付ファイルを保存しているサーバーにrootユーザーでログインします。

  2. 設定ファイル「exports」を編集します。

    Garoonの添付ファイル保存ディレクトリーと同じディレクトリーのパスを記述します。
    まだ接続先のディレクトリーは存在しませんが、先に設定ファイルを編集します。記述したディレクトリーは、あとで全文検索サーバーをインストールしたサーバーで作成します。

    • exportsのファイルパス:
      /etc/exports

    • 変更内容:
      次の行を追加します。

      [「files」ディレクトリーのパス] [全文検索サーバーのIPアドレスまたはホスト名](rw)

      入力例:

      /usr/local/cybozu/files search-server(rw)

  3. NFSマウントに必要なサービスが起動していることを確認し、手順2で編集したexportsの内容を反映します。

    確認するサービスと確認に必要なコマンドは、次のとおりです。

    • Red Hat Enterprise Linux Server 8

      • rpcbind:

        # systemctl status rpcbind.service
      • nfs:

        # systemctl status nfs-server.service
      • nfslock:

        # systemctl status rpc-statd.service
    • Red Hat Enterprise Linux Server 7

      • rpcbind:

        # systemctl status rpcbind
      • nfs:

        # systemctl status nfs
      • nfslock:

        # systemctl status nfs-lock

    NFSマウントに必要なサービスが停止している場合は、次のコマンドで起動します。 起動するサービスと起動に必要なコマンドは、次のとおりです。
    • Red Hat Enterprise Linux Server 8

      • rpcbind:

        # systemctl start rpcbind.service
      • nfs:

        # systemctl start nfs-server.service
    • Red Hat Enterprise Linux Server 7

      • rpcbind:

        # systemctl start rpcbind
      • nfs:

        # systemctl start nfs
      • nfslock:

        # systemctl start nfs-lock

    exportsの内容を反映するコマンド:

    # exportfs -r

  4. 手順3で確認したサービスの自動起動の設定を行います。

    OSの起動時に、NFSマウントに必要なサービスが自動起動されるように設定します。
    自動起動を設定するサービスと設定に必要なコマンドは、次のとおりです。

    • Red Hat Enterprise Linux Server 8

      • rpcbind:

        # systemctl enable rpcbind
      • nfs:

        # systemctl enable nfs-server.service
    • Red Hat Enterprise Linux Server 7

      • rpcbind:

        # systemctl enable rpcbind
      • nfs:

        # systemctl enable nfs
      • nfslock 1

        # systemctl enable nfs-lock
    1:この設定は、Red Hat Enterprise Linux 7.0の環境でのみ行います。Red Hat Enterprise Linux 7.1以降のバージョンでは、nfslockの自動起動の設定は必要ありません。

全文検索サーバーをインストールしたサーバーで行う設定

全文検索サーバーをインストールしたサーバーで行う設定手順は、Garoonの構成によって異なります。

  • 添付ファイル領域にファイルを一括で保存している場合
    下記の構成のどちらかに該当する場合は、添付ファイルを一括で保存している場合を参照してください。
    • Garoonを単体構成で運用している
    • GaroonをDB分割構成で運用し、かつ添付ファイル領域にファイルを一括で保存している
  • 添付ファイル領域をアプリケーション別に保存している場合
    次の構成に該当する場合は、添付ファイルをアプリケーション別に保存している場合を参照してください。
    • GaroonをDB分割構成で運用し、かつ添付ファイル領域に、アプリケーション別にファイルを保存している

添付ファイルを一括で保存している場合

Garoonを単体構成で運用しているか、またはGaroonをDB分割構成で運用し、かつ添付ファイル領域にファイルを一括で保存している場合は、次の手順でマウントします。

操作手順:
  1. 全文検索サーバーをインストールしたサーバーにrootユーザーでログインします。

  2. NFSv3を使用している場合は、必要なサービスが起動しているかどうかを確認します。

    NFSv4を使用している場合、この手順は不要です。手順5に進みます。
    確認するサービスと確認に必要なコマンドなコマンドは、次のとおりです。

    • Red Hat Enterprise Linux Server 8

      • rpcbind:

        # systemctl status rpcbind.service
      • nfslock:

        # systemctl status rpc-statd.service
    • Red Hat Enterprise Linux Server 7

      • rpcbind:

        # systemctl status rpcbind
      • nfslock:

        # systemctl status nfs-lock

  3. NFSマウントに必要なサービスを起動します。

    手順2で停止していたサービスを起動します。
    起動するサービスと起動に必要なコマンドは、次のとおりです。

    • Red Hat Enterprise Linux Server 8

      • rpcbind:

        # systemctl start rpcbind.service
    • Red Hat Enterprise Linux Server 7

      • rpcbind:

        # systemctl start rpcbind
      • nfslock:

        # systemctl start nfs-lock

  4. 手順3で起動したサービスの自動起動の設定を行います。

    OSの起動時に、NFSマウントに必要なサービスが自動起動されるように設定します。
    自動起動を設定するサービスと設定に必要なコマンドは、次のとおりです。

    • Red Hat Enterprise Linux Server 8

      • rpcbind

        # systemctl enable rpcbind
    • Red Hat Enterprise Linux Server 7

      • rpcbind

        # systemctl enable rpcbind
      • nfslock 1

        # systemctl enable nfs-lock
    1:Red Hat Enterprise Linux 7.0の環境でのみ行います。Red Hat Enterprise Linux 7.1以降のバージョンでは、nfslockの自動起動の設定は必要ありません。

  5. Garoonの添付ファイル保存ディレクトリーとパスが同じディレクトリーを作成します。

    次のコマンドを実行します。

    # mkdir -p [Garoonの添付ファイル保存ディレクトリーのパス]

    コマンドの例:

    # mkdir -p /usr/local/cybozu/files

  6. 手順5で作成したディレクトリーに、次のパーミッションを設定します。

    • 所有者:apache
    • 所有グループ:root
    • パーミッション:000

    コマンドの例:

    # chown -R apache:root /usr/local/cybozu/files
    # chmod -R 000 /usr/local/cybozu/files

  7. Garoonの添付ファイル保存ディレクトリーをNFSマウントします。

    次のコマンドを実行します。

    # mount -o intr [Garoonの添付ファイルを保存しているサーバーのIPアドレスまたはホスト名]:[Garoonの添付ファイル保存ディレクトリーのパス] [手順5で作成したディレクトリーのパス]

    • コマンドの例:

      # mount -o intr garoon-server:/usr/local/cybozu/files /usr/local/cybozu/files
    • マウントに失敗する場合:
      Garoonの添付ファイルを保存しているサーバーで次のコマンドを実行してから、再度NFSマウントしてください。

      # exportfs -r

      上記のコマンドを実行してもNFSマウントに失敗する場合、NFSマウントに必要なポートが閉じている可能性があります。Garoonの添付ファイルを保存しているサーバーで、2049ポートを開放してください。

  8. 設定ファイル「fstab」を編集し、自動マウントを設定します。

    OSの起動時に、自動的にNFSマウントされるように設定します。

    • fstabのファイルパス:
      /etc/fstab

    • 変更内容:
      fstabに、1行で次の内容を追記します。

      [Garoonの添付ファイルを保存したサーバーのIPアドレスまたはホスト名]:[Garoonの添付ファイル保存ディレクトリーのパス] [手順5で作成したディレクトリーのパス] nfs4 defaults 0 0

      入力例:

      garoon-server:/usr/local/cybozu/files /usr/local/cybozu/files nfs4 defaults 0 0

添付ファイルをアプリケーション別に保存している場合

GaroonをDB分割構成で運用し、かつ添付ファイル領域に、アプリケーション別にファイルを保存している場合は、次の手順でマウントします。

操作手順:
  1. 全文検索サーバーをインストールしたサーバーにrootユーザーでログインします。

  2. 必要なサービスが起動しているかどうかを確認します。

    確認するサービスと確認に必要なコマンドなコマンドは、次のとおりです。

    • Red Hat Enterprise Linux Server 8

      • rpcbind:

        # systemctl status rpcbind.service
      • nfslock:

        # systemctl status rpc-statd.service
    • Red Hat Enterprise Linux Server 7

      • rpcbind:

        # systemctl status rpcbind
      • nfslock:

        # systemctl status nfs-lock

  3. NFSマウントに必要なサービスを起動します。

    手順2で停止していたサービスを起動します。
    起動するサービスと起動に必要なコマンドは、次のとおりです。

    • Red Hat Enterprise Linux Server 8

      • rpcbind:

        # systemctl start rpcbind.service
    • Red Hat Enterprise Linux Server 7

      • rpcbind:

        # systemctl start rpcbind
      • nfslock:

        # systemctl start nfs-lock

  4. 手順3で起動したサービスの自動起動の設定を行います。

    OSの起動時に、NFSマウントに必要なサービスが自動起動されるように設定します。
    自動起動を設定するサービスと設定に必要なコマンドは、次のとおりです。

    • Red Hat Enterprise Linux Server 8

      • rpcbind:

        # systemctl enable rpcbind
    • Red Hat Enterprise Linux Server 7

      • rpcbind:

        # systemctl enable rpcbind
      • nfslock 1

        # systemctl enable nfs-lock
    1:Red Hat Enterprise Linux 7.0の環境でのみ行います。Red Hat Enterprise Linux 7.1以降のバージョンでは、nfslockの自動起動の設定は必要ありません。

  5. Garoonの添付ファイル保存ディレクトリーとパスが同じディレクトリーを作成します。

    1)次のコマンドを実行します。

    # mkdir -p [Garoonの添付ファイル保存ディレクトリーのパス]

    コマンドの例:

    # mkdir -p /usr/local/cybozu/files

    2)作成したディレクトリーに移動します。

    # cd [Garoonの添付ファイル保存ディレクトリーのパス]

    コマンドの例:

    # cd /usr/local/cybozu/files

    3)サブディレクトリーを作成します。
    作成するサブディレクトリーは、Garoonのバージョンによって異なります。

    • Garoon バージョン 5.x:

      # mkdir address assets bulletin cabinet cbwebsrv dezielink favour fts job kunai link logging mail memo message notification phonemessage portal presence report schedule space star system timecard todo workflow
    • Garoon バージョン 4.x:

      # mkdir address bulletin cabinet cbdnet cbwebsrv cellular dezielink favour fts job kunai link logging mail memo message notification phonemessage portal presence report rss schedule space star system timecard todo workflow

  6. 手順5で作成したディレクトリーに、次のパーミッションを設定します。

    • 所有者:apache
    • 所有グループ:root
    • パーミッション:000

    コマンドの例:

    # chown -R apache:root /usr/local/cybozu/files
    # chmod -R 000 /usr/local/cybozu/files/*

  7. Garoonの添付ファイル保存ディレクトリーをNFSマウントします。

    次のコマンドを実行します。

    # mount -o intr [Garoonの添付ファイルを保存しているサーバーのIPアドレスまたはホスト名]:[Garoonの添付ファイル保存ディレクトリーのパス] [手順5で作成したディレクトリーのパス]

    • コマンドの例:
      次の設定を例に説明します。
      • garoon-server1
        メッセージとメール以外のアプリケーションの添付ファイルを保存している
      • garoon-server2
        メッセージとメールの添付ファイルを保存している

    messageとmail以外のディレクトリーのmountコマンド入力例:

    # mount -o intr garoon-server1:/usr/local/cybozu/files/address /usr/local/cybozu/files/address
    # mount -o intr garoon-server1:/usr/local/cybozu/files/assets /usr/local/cybozu/files/assets
    # mount -o intr garoon-server1:/usr/local/cybozu/files/bulletin /usr/local/cybozu/files/bulletin
    # mount -o intr garoon-server1:/usr/local/cybozu/files/cabinet /usr/local/cybozu/files/cabinet
    # mount -o intr garoon-server1:/usr/local/cybozu/files/cbwebsrv /usr/local/cybozu/files/cbwebsrv
    # mount -o intr garoon-server1:/usr/local/cybozu/files/dezielink /usr/local/cybozu/files/dezielink
    # mount -o intr garoon-server1:/usr/local/cybozu/files/favour /usr/local/cybozu/files/favour
    # mount -o intr garoon-server1:/usr/local/cybozu/files/fts /usr/local/cybozu/files/fts
    # mount -o intr garoon-server1:/usr/local/cybozu/files/job /usr/local/cybozu/files/job
    # mount -o intr garoon-server1:/usr/local/cybozu/files/kunai /usr/local/cybozu/files/kunai
    # mount -o intr garoon-server1:/usr/local/cybozu/files/link /usr/local/cybozu/files/link
    # mount -o intr garoon-server1:/usr/local/cybozu/files/logging /usr/local/cybozu/files/logging
    # mount -o intr garoon-server1:/usr/local/cybozu/files/memo /usr/local/cybozu/files/memo
    # mount -o intr garoon-server1:/usr/local/cybozu/files/notification /usr/local/cybozu/files/notification
    # mount -o intr garoon-server1:/usr/local/cybozu/files/phonemessage /usr/local/cybozu/files/phonemessage
    # mount -o intr garoon-server1:/usr/local/cybozu/files/portal /usr/local/cybozu/files/portal
    # mount -o intr garoon-server1:/usr/local/cybozu/files/presence /usr/local/cybozu/files/presence
    # mount -o intr garoon-server1:/usr/local/cybozu/files/report /usr/local/cybozu/files/report
    # mount -o intr garoon-server1:/usr/local/cybozu/files/schedule /usr/local/cybozu/files/schedule
    # mount -o intr garoon-server1:/usr/local/cybozu/files/space /usr/local/cybozu/files/space
    # mount -o intr garoon-server1:/usr/local/cybozu/files/star /usr/local/cybozu/files/star
    # mount -o intr garoon-server1:/usr/local/cybozu/files/system /usr/local/cybozu/files/system
    # mount -o intr garoon-server1:/usr/local/cybozu/files/timecard /usr/local/cybozu/files/timecard
    # mount -o intr garoon-server1:/usr/local/cybozu/files/todo /usr/local/cybozu/files/todo
    # mount -o intr garoon-server1:/usr/local/cybozu/files/workflow /usr/local/cybozu/files/workflow

    messageとmailのディレクトリーのmountコマンド入力例:
    # mount -o intr garoon-server2:/usr/local/cybozu/files/message /usr/local/cybozu/files/message
    # mount -o intr garoon-server2:/usr/local/cybozu/files/mail /usr/local/cybozu/files/mail

  8. 設定ファイル「fstab」を編集し、自動マウントを設定します。

    OSの起動時に、自動的にNFSマウントされるように設定します。

    • fstabのファイルパス:
      /etc/fstab

    • 変更内容:
      fstabに、1行で次の内容を追記します。

      [Garoonの添付ファイルを保存したサーバーのIPアドレスまたはホスト名]:[Garoonの添付ファイル保存ディレクトリーのパス] [手順5で作成したディレクトリーのパス] nfs4 defaults 0 0

      入力例:

      garoon-server:/usr/local/cybozu/files /usr/local/cybozu/files nfs4 defaults 0 0

Garoonで全文検索機能を有効化する

Garoonの設定ファイルを編集し、全文検索機能を有効化します。
Garoonを運用しているすべてのサーバーで、この作業を行います。

操作手順:
  1. Garoonを運用しているサーバーにrootユーザーでログインします。

  2. 設定ファイル「common.ini」を編集します。

    • common.iniのファイルパス:
      /usr/local/cybozu/cbgrn/common.ini

    • 変更内容:
      enable_ftsの値を、0から1に変更します。

      [FTS]
      enable_fts = "1"
      bulletin_max_category = "10000"
      cabinet_max_folder = "10000"
      message_max_message = "1000000"
      space_max_space = "1000000"
      

    enable_ftsの値を変えると、全文検索機能の有効または無効の切り替えができます。
    設定できる値と機能は次のとおりです。

    機能
    0 検索ボックスを非表示にし、インデックスの作成を中止します。
    1 検索ボックスを表示し、全文検索機能を有効にします。
    2 検索ボックスを非表示にし、インデックスの作成は継続します。

  3. Garoonを運用しているすべてのサーバーで、手順1から手順2を実行します。

  4. GaroonのWebサーバーサービスとスケジューリングサービスを再起動します。

    Garoonを運用するサーバーでコマンドを実行し、Webサーバーサービスとスケジューリングサービスを再起動します。
    Webサーバーサービスは、アプリケーションサーバーで起動します。
    スケジューリングサービスは、マスターデータベースサーバーで起動します。

    次のコマンドを実行します。

    # systemctl restart httpd.service
    # /etc/init.d/cyss_cbgrn restart

    アプリケーションサーバーが複数ある場合は、すべてのアプリケーションサーバーでWebサーバーサービスを起動します。

  5. Garoonにログインし、画面上部のバーに検索ボックスが表示されていることを確認します。

    バージョン 4.10以降のGaroonの例: キャプチャー:Garoonの画面で全文検索のボックスが枠で囲まれている

インデックスを作成する

Garoonのコマンドを使用して、検索に必要なインデックスを作成します。

操作手順:
  1. Garoonのキューを管理するデータベースサーバーに、rootユーザーでログインします。

  2. 次のディレクトリーに移動します。

    • /usr/local/cybozu/cbgrn/

    次のコマンドを実行します。

    # cd /usr/local/cybozu/cbgrn/

  3. インデックスの作成を開始します。

    次のコマンドを実行します。

    # ./grn.cgi -C -q code/command/fts/full_index.csp (パラメーター)

    パラメーター:
    パラメーターの指定は任意です。

    パラメーター 説明
    startTime サーバーで、インデックスの作成を開始する時刻を、24時間表記で指定します。
    Garoon のシステム管理で「ロケールの初期値」に設定されているタイムゾーンの時刻を、0から23の整数で指定します。
    例:startTime=20
    このパラメーターを省略すると、即時実行されます。

    • startTime は、stopTimeとセットで指定します。startTimeとstopTimeには、同じ値は指定できません。
    • 実際の開始と終了時刻は、コマンド実行時刻によって前後します。
      例えば、startTime=11、stopTime=12を指定したコマンドを、10時55分に実行した場合、11時55分から12時55分の間にインデックスが作成されます。
    stopTime サーバーで、インデックスの作成を中止する時刻を、24時間表記で指定します。
    Garoon のシステム管理で「ロケールの初期値」に設定されているタイムゾーンの時刻を、0から23の整数で指定します。
    例:stopTime=8
    このパラメーターを省略すると、インデックスの作成が完了するまで継続されます。

    • startTime は、stopTimeとセットで指定します。startTimeとstopTimeには、同じ値は指定できません。
    • 実際の開始と終了時刻は、コマンド実行時刻によって前後します。
      例えば、startTime=11、stopTime=12を指定したコマンドを、10時55分に実行した場合、11時55分から12時55分の間にインデックスが作成されます。

    次の例で説明します。

    • インデックスの作成を開始する時刻:20
    • インデックスの作成を中止する時刻:8
    • コマンドを実行した時刻:19:30

    コマンドの実行例:

    .\grn.exe -C -q code\command\fts\full_index.csp startTime=20 stopTime=8

    startTimeとstopTimeの指定により、20:30~翌日8:30の時間でインデックスを作成します。
    インデックス作成の開始時刻と終了時刻は、コマンド実行時刻によって前後します。20:00~翌日8:00で実行されるわけではありません。

    インデックスを作成するために、キューにデータが追加されます。インデックスを作成する準備ができると、コマンドラインに次のメッセージが表示されます。

    [(出力日時)] Finish indexing of received files, tab_grn_mail_fileinfo___p49.
    [(出力日時)] Finish indexing of received files.
    [(出力日時)] Finish indexing of mail data.

インデックスの作成を停止する

何らかの理由により、インデックスの作成処理を即時停止する場合は、CtrlキーとCキーを同時に押します。

シンボリックリンクを置き換える(RedHat Enterprise Linux Server 7および8)

全文検索サーバーの起動スクリプトを、シンボリックリンクから物理ファイルに置き換えます。
この作業は、次の条件を両方とも満たす場合にのみ行います。

  • サーバーOSに、Red Hat Enterprise Linux 7または8を利用している。
  • ルートディレクトリーのあるパーティションと、全文検索サーバーがインストールされたディレクトリーのパーティションが別である。

上記の条件を満たす環境でOSを起動すると、全文検索サーバーが自動で起動しない場合があります。solrとworkerのシンボリックリンクを物理ファイルに置き換えることで、この問題を回避できます。
シンボリックリンクを物理ファイルに置き換える手順は、[Linux版の現象]Red Hat Enterprise Linux 7以降で、OSを起動した時に全文検索サーバーが自動起動しない場合がある。を参照してください。

インストール後の確認をする

作業後に確認する内容は、Garoonを新規に構築した場合と、運用中のGaroonの場合とで異なります。

新規に構築したGaroonの場合

新規に構築したGaroonでは、インデックスの作成は数分で完了します。キューに追加されたデータが処理されると、キューから消え、データに含まれる字句を検索できるようになります。
詳細は、キューの確認を参照してください。
キューに追加されたデータが消えたら、次の点を確認します。

  • 掲示板やメッセージに書き込んだ文字列で検索できるかどうか
  • ファイル管理に添付した文書ファイル内の文字列で検索できるかどうか

仕様については、検索の仕様を参照してください。

インデックス作成後のトラブルと対処方法

インデックスの作成後にトラブルが発生した場合の対処方法は、次のとおりです。

トラブル 対処方法
「GRN_FTS_00002」のエラーメッセージが表示される 次のコマンドを実行し、全文検索サーバーのSolrを起動します。
/etc/init.d/cbss_solr start
上記のコマンドを実行しても解決しない場合、Garoonから全文検索サーバーへの接続が正しく設定されているかどうかを確認してください。
詳細は、Garoonの設定を参照してください。
検索結果が表示されない 次の操作を実施済みであることを確認します。

運用中のGaroonの場合

運用中のGaroonでは、インデックスの作成に時間がかかります。インデックスの作成が完了したら、正常に検索できることを確認します。

インデックスの作成が進んでいることを確認する

次の操作で、インデックスが作成中であることを確認できます。

操作手順:
  1. へッダーの歯車の形をした管理者メニューアイコンをクリックします。

  2. [システム設定]をクリックします。

  3. 「基本システムの管理」タブを選択します。

  4. [キューの監視]をクリックします。

  5. [全文検索サーバー]をクリックします。

  6. 「全文検索サーバー」画面でインデックスの作成が進んでいることを確認します

    次の2点を確認します。

    • 「キューの残数」が変化すること
    • 画面を再読み込みすると、表示されるジョブが変わること

    詳細は、キューの確認を参照してください。

確認中のトラブルと対処方法

インデックスの作成を確認中にトラブルが発生した場合の対処方法は、次のとおりです。

トラブル 対処方法
キューの監視画面を開けない 次の操作を実施済みであることを確認します。
画面を再読み込みしても、表示されるジョブが変わらない 次の操作を実施済みであることを確認します。
検索できることを確認する

キューに追加されたデータが処理されると、キューから消え、データに含まれる字句を検索できるようになります。
詳細は、キューの確認を参照してください。

キューに追加されたデータが消えたら、次の点を確認します。

  • 掲示板やメッセージに書き込んだ文字列で検索できるかどうか
  • ファイル管理に添付した文書ファイル内の文字列で検索できるかどうか

仕様については、検索の仕様を参照してください。

インデックス作成後のトラブルと対処方法

インデックスの作成後にトラブルが発生した場合の対処方法は、次のとおりです。

トラブル 対処方法
「GRN_FTS_00002」のエラーメッセージが表示される 次のコマンドを実行し、全文検索サーバーのSolrを起動します。
/etc/init.d/cbss_solr start
上記のコマンドを実行しても解決しない場合、Garoonから全文検索サーバーへの接続が正しく設定されているかどうかを確認してください。
詳細は、Garoonの設定を参照してください。