猫山さんの日記

写真付きで日記や趣味を書くならgooブログ

Fess再構築(5)

2024-06-04 | 日記
LDAPを設定しよう
システム→全般を開き、LDAPの項目配下を設定する
https://news.mynavi.jp/techplus/article/techp4283/
を参考に設定すると、ドメインユーザでログインできるようになった。

次はクローラーの設定だ。
クローラー→ファイルシステムで新規作成
設定項目は、最低3箇所
名前:任意
パス:smb://ホスト名.ドメイン名/ほにゃらら
深さ:6で大方カバーできるけれど、まずは5で始めよう
パーミッション:{group}(グループ名)

さあ、実行してみよう
システム→スケジューラ→Default Crawlerを開き、「今すぐ開始」
検索してみると、ひっかからない。
システム情報→障害URLを見てみたら、
jcifs.smb.SmbAuthExceptionと表示されている。
認証情報の問題のようだ。
クローラー→ファイル認証を登録した。

再度障害URLを見ると、違うエラーが出ている。
org.codelibs.fess.exception.ContentNotFoundException
Default Crawlerのログレベルを変えて、ログを見てみよう。
return container.getComponent("crawlJob").logLevel("debug").gcLogging().execute(executor);
/var/log/fess/fess-crawler.log
jcifs.smb.smbexception cannot findだって。
なんでだろう。

どうやら、パスの最後に/が必要らしい。マニュアルにも書いてあるよ!
https://github.com/AgNO3/jcifs-ng/issues/134
クローラーのパスの最後に/を入れたらエラーが出なくなった。
でも検索結果は、・・出ない。
クローラーのパーミッション欄に指定したユーザーでログインして検索すると、出た。
これは不便だ。後で直そう。
検索結果には、パスをコピーするボタンが付いている。
これは便利だけど、ファイル名まではいらない。
後でファイルを少し変更して、ファイルを置いているフォルダのパスをコピーできるようにしよう。
参考:Fessを試してみよう(2)

スケジューラに登録されているうち、不要なものを無効にしよう
サジェストはうちの用途では不要だし、今回はサムネイルを作らない。
Suggest Indexer
Thumbnail Generator
Thumbnail Purger

他にもいくつか設定を変えよう。
システム→全般→同時クローラー設定を1にする
ログインが必要を有効にする
人気ワードのレスポンスを無効にする

試しにうちの係のフォルダをクロールさせよう。
早速エラーが出た。
org.codelibs.fess.crawler.exception.MaxLengthExceededException
パスが長すぎるんだろうか。いや、ファイルサイズが制限にかかったようだ。
後でサイズを検討しよう

システム→全般→クローラー
以前のドキュメントを削除30日にしておこう

どうも、ネストしたアクセス権が反映していないようだ。
「環境によって、ネストしたグループ情報をADから取得するのに時間がかかるためです。
なので、単純にADの処理が時間がかかるので、取得に時間がかかるネストしたグループ情報が取得できたら、
非同期に更新されます。」らしい。
https://discuss.codelibs.org/t/topic/1855
ログインしてしばらく放置してみよう。

あと、邪魔なので検索オプションにある、「優先する言語」を消そう
参考:Fessを試してみよう(21)

Fess再構築(4)

2024-06-03 | 日記
最初からやり直そう。
hyper-Vのセキュアブートを「Microsoft UEFI 証明機関」にして、
オールインワンのでかいISOでAlmaLinuxをインストールした。

ユーザーをsudoersに追加
# visudo

システムを最新にする
$ sudo dnf update

インストール要件にjava17と書いてあるけれど、21でやってみる。
$ sudo dnf install java-21-openjdk-devel

opensearchのリポジトリ追加
$ cd /etc/yum.repos.d
$ sudo wget https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/opensearch-2.x.repo
$ sudo wget https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/2.x/opensearch-dashboards-2.x.repo
$ sudo dnf install opensearch
なんかエラー出た。でも、デモ設定用スクリプトのエラーみたいだから、いいか。
$ sudo dnf install opensearch-dashboards
こっちの方はエラーなくインストールできた。
さあ、起動しよう
$ sudo systemctl start opensearch
エラーで起動できない。

$ systemctl status opensearch.serviceを見たが、ヒントがない
/var/log/opensearch/opensearch.logを見てみよう

opensearch.ymlに証明書を記述する必要がありそうだ。
セキュリティーをOFFにできないだろうか。
opensearchのdocumentationにDisable securityの記述があった。
これを試してみよう。
$ sudo vi /etc/opensearch/opensearch.yml
追加する場所は、末尾でいいかな?
plugins.security.disabled: true

$ sudo systemctl start opensearch
起動できた!
$ sudo systemctl daemon-reload
$ sudo systemctl enable opensearch

ファイアウォールの設定
$ sudo firewall-cmd --add-port=5601/tcp --permanent
$ sudo firewall-cmd --reload

opensearch-dashboardのアクセス制限変更
$ sudo vi /etc/opensearch-dashboards/opensearch_dashboards.yml
server.host: "192.168.0.0"を追記

$ sudo systemctl start opensearch-dashboards
$ sudo systemctl enable opensearch-dashboards

接続してみよう。
http://localhost:5601
OpenSearch Dashboards server is not ready yetだって。何で?
おっと、手順書にはOpenSearchの設定や起動は行わないでと書いてある。
やり直そう。

$ sudo /usr/share/opensearch/bin/opensearch-plugin install org.codelibs.opensearch:opensearch-analysis-fess:2.14.0
$ sudo /usr/share/opensearch/bin/opensearch-plugin install org.codelibs.opensearch:opensearch-analysis-extension:2.14.0
$ sudo /usr/share/opensearch/bin/opensearch-plugin install org.codelibs.opensearch:opensearch-minhash:2.14.0
$ sudo /usr/share/opensearch/bin/opensearch-plugin install org.codelibs.opensearch:opensearch-configsync:2.14.0

$ sudo vi /etc/opensearch/opensearch.yml
下記を追加
configsync.config_path: /var/lib/opensearch/data/config/
plugins.security.disabled: true

$ sudo wget https://github.com/codelibs/fess/releases/download/fess-14.14.0/fess-14.14.0.rpm
$ sudo rpm -ivh fess-14.14.0.rpm

$ sudo systemctl daemon-reload
$ sudo systemctl enable opensearch.service
$ sudo systemctl enable fess.service

$ sudo vi /usr/share/fess/bin/fess.in.sh
中に似た記載がコメントアウトされているので、書き換える
SEARCH_ENGINE_HTTP_URL=http://localhost:9200
FESS_DICTIONARY_PATH=/var/lib/opensearch/data/config/

$ sudo systemctl start opensearch.service
$ sudo systemctl start fess.service
起動できた。
ブラウザからアクセスしてみる
http://localhost:8080
お、ちゃんと表示された。
http://localhost:8080/admin
こちらもログインできた。

試しに再起動してみよう
$ sudo systemctl stop fess
$ sudo systemctl stop opensearch
再起動後もちゃんとログインできた。