Aggiungi la ricerca full-text di Elasticsearch a Nextcloud

Per effettuare ricerche all'interno dei file in Nextcloud, è necessario installare il framework di ricerca full-text, la relativa app per la piattaforma Elasticsearch e il provider File; quindi, connettere le app a un server Elasticsearch 8 compatibile e creare l'indice. Questo aggiunge il testo ricercabile dei documenti, ma comporta anche la necessità di un servizio separato da proteggere, monitorare e gestire. Il file README del connettore attuale identifica Elasticsearch 8 come versione principale supportata, pertanto è necessario verificare la compatibilità con la versione dell'app installata prima di selezionare una versione specifica di Elasticsearch.

Scegli la configurazione più adatta al tuo server

Elasticsearch aiuta gli utenti a trovare parole all'interno dei documenti, oltre ai nomi dei file e ai metadati di base. Il compromesso consiste in un ulteriore servizio da proteggere e gestire, oltre all'utilizzo di memoria, disco e CPU durante l'indicizzazione. Un piccolo cloud potrebbe non giustificare questo sovraccarico; un team che gestisce molti documenti potrebbe invece trovare la ricerca di contenuti un investimento valido.

L'integrazione è composta da tre applicazioni: Full Text Search coordina il provider e la piattaforma, Elasticsearch collega il framework al motore e Files fornisce il contenuto dei file. È possibile selezionare una sola applicazione della piattaforma alla volta. Consultare il file README del framework e il file README del provider Files .

Questi esempi Linux utilizzano percorsi e www-dataaccount Debian o Ubuntu. Adattare i percorsi e gli utenti del servizio per i container o altre distribuzioni.

1. Conferma la compatibilità e prepara Elasticsearch

Prima di installare Elasticsearch, verifica le versioni di Nextcloud e dell'app. Il file README del connettore indica che, a partire dalla versione 26.0.0 dell'app, è supportato Elasticsearch 8. Non dare per scontato che Elasticsearch 9 sia compatibile solo perché è più recente; consulta il file README del connettore e la wiki di installazione per la tua versione.

Installa Elasticsearch seguendo le istruzioni fornite da Elastic per il tuo sistema operativo e la versione principale compatibile. Il pacchetto Debian di Elastic include OpenJDK, quindi in genere non è necessaria un'installazione Java separata per questo pacchetto. Consulta la documentazione di installazione del pacchetto Debian di Elastic . Assicurati che Elasticsearch sia accessibile solo dall'host Nextcloud o dalla rete privata dell'applicazione, a meno che la tua architettura non richieda diversamente. Elasticsearch 8 abilita le funzionalità di sicurezza durante la configurazione del pacchetto; mantieni l'autenticazione e TLS per le implementazioni in rete e non esporre mai un endpoint di ricerca non autenticato a Internet.

Una volta avviato il servizio, testa il suo endpoint in locale utilizzando lo schema e le credenziali stabiliti durante l'installazione. Per un'istanza locale protetta, una richiesta potrebbe essere simile a questa curl --cacert /path/to/http_ca.crt -u elastic https://localhost:9200: inserisci la password quando richiesto anziché inserirla nella cronologia della shell. Utilizza il certificato CA generato per la tua installazione, non il percorso segnaposto. Una risposta positiva dovrebbe identificare il nodo e la versione di Elasticsearch. Se questo controllo fallisce, correggi il servizio, l'attendibilità del certificato o le credenziali prima di configurare Nextcloud.

2. Installa le app di ricerca di Nextcloud

Utilizza la pagina App di Nextcloud per installare e abilitare Ricerca full-text , Ricerca full-text - Piattaforma Elasticsearch e Ricerca full-text - File . Puoi anche utilizzare occlo strumento di amministrazione da riga di comando di Nextcloud, dalla directory di installazione di Nextcloud. Su un'installazione Debian o Ubuntu, il percorso è il seguente:

cd /var/www/nextcloud
sudo -E -u www-data php occ app:install fulltextsearch
sudo -E -u www-data php occ app:install fulltextsearch_elasticsearch
sudo -E -u www-data php occ app:install files_fulltextsearch

Utilizza l'account HTTP della tua distribuzione e segui le linee guida occ di Nextcloud . Se un'app è installata ma disabilitata, utilizza occ app:enable APP_ID. Mantieni tutte e tre le app compatibili con la tua versione di Nextcloud.

3. Configurare la piattaforma e il provider di file

Apri le impostazioni di amministrazione e seleziona la sezione Ricerca full-text. Scegli Elasticsearch come piattaforma di ricerca, quindi inserisci l'indirizzo del servlet di Elasticsearch, un nome di indice e le credenziali di connessione o le impostazioni del certificato richieste dalla versione del connettore installato. L'indirizzo deve essere raggiungibile dal processo del server Nextcloud. Se entrambi i servizi sono in esecuzione nella stessa rete di container, localhostin genere punta al container Nextcloud stesso e non al container di Elasticsearch; in tal caso, utilizza il nome del servizio Elasticsearch o il nome host interno.

Utilizza un nome di indice in minuscolo, ad esempio nextcloud; assegna a ciascun cloud un indice separato se condividono un servizio. I nomi separati facilitano l'amministrazione, ma non sostituiscono i controlli di accesso. Evita di includere le credenziali in screenshot, ticket e cronologia della shell.

Nelle impostazioni del provider File, abilita l'indicizzazione per i tipi di file e l'intervallo di dimensioni richiesti dai tuoi utenti. Il contenuto ricercabile dipende dal provider e dal supporto per l'estrazione; la sola indicizzazione dei nomi dei file non renderà ricercabile il testo all'interno di un PDF. Il processore di allegati di Elasticsearch estrae il testo dai formati di file comuni come PDF e documenti di Office, ma si applicano limiti di estrazione e formati supportati. In Elasticsearch 8, la funzionalità di acquisizione degli allegati è inclusa nella distribuzione; consulta la documentazione di riferimento del processore di allegati di Elastic . Per scansioni o immagini, la normale estrazione del testo dai documenti non è OCR: aggiungi un provider OCR solo se hai bisogno di questa funzionalità e ne hai verificato i requisiti. Mantieni limiti di dimensione dei file prudenti su un server con risorse limitate.

4. Crea l'indice e mantienilo aggiornato

Eseguire un controllo di integrità prima dell'indicizzazione. Dalla directory di Nextcloud, utilizzare:

sudo -E -u www-data php occ fulltextsearch:check

Risolvi prima gli errori di connessione, piattaforma o provider segnalati. Dopodiché, avvia l'indicizzazione iniziale:

sudo -E -u www-data php occ fulltextsearch:index

La prima esecuzione analizza i file degli utenti selezionati e può richiedere molto tempo. Mantieni stabile la sessione SSH o esegui il comando in un multiplexer di terminale come tmuxe monitora CPU, memoria e spazio su disco. L'indicizzazione copia il testo estratto e i metadati dei file in Elasticsearch; non sostituisce i backup di Nextcloud. Pianifica di proteggere l'indice di ricerca e le relative credenziali e ricorda che l'eliminazione o la ricostruzione dell'indice potrebbe richiedere un'altra indicizzazione completa.

Per gli aggiornamenti continui, assicurati che i processi in background di Nextcloud vengano eseguiti in modo affidabile. Il progetto documenta anche un fulltextsearch:liveworker per l'indicizzazione quasi immediata; questo può ridurre il ritardo di aggiornamento, ma aggiunge un servizio da supervisionare. Inizia con i processi pianificati e aggiungi il worker solo se il ritardo è rilevante. Adatta l' esempio del servizio upstream ai tuoi percorsi, account e ordine di avvio del database.

Verifica il risultato e scegli il tuo compromesso

Una volta completata l'indicizzazione, cerca una frase distintiva che compare all'interno di un piccolo documento di prova ma non nel suo nome file. Verifica che Nextcloud restituisca il file previsto per un utente che dispone delle autorizzazioni di lettura. Quindi carica o modifica un secondo documento di prova, consenti l'esecuzione del job in background o del worker live configurato e ripeti la ricerca. Un controllo di stato positivo da solo non dimostra che il contenuto del file sia stato indicizzato.

Se vengono visualizzati solo i nomi dei file, verificare il provider dei file, le impostazioni relative al tipo e alle dimensioni dei file, il supporto per l'estrazione e i log di indicizzazione. In caso di errori di connessione, controllare l'endpoint dalla rete di Nextcloud, la fiducia TLS e le credenziali.

Scegli Elasticsearch quando la ricerca dei contenuti è sufficientemente importante da giustificare il mantenimento di un ulteriore servizio stateful. Se la ricerca per nome file è sufficiente, evita di aggiungere risorse e di compromettere la sicurezza. Prima di implementare aggiornamenti in produzione, verifica l'esatta combinazione di Nextcloud, app ed Elasticsearch; questa configurazione non garantisce il supporto per tutti i metodi di implementazione.

Lascia un commento

Cosa serve per ottenere una valutazione di sicurezza A+ da Nextcloud

Cosa serve per ottenere una valutazione di sicurezza A+ da Nextcloud

Risolvi i problemi più comuni riscontrati durante le scansioni di Nextcloud con gli aggiornamenti più recenti, HTTPS e HSTS, una configurazione precisa del proxy inverso e verifiche rispetto al server pubblico.

Abilita la crittografia lato server di Nextcloud con un impatto misurabile

Configura Nextcloud SSE per lo spazio di archiviazione che lo richiede, proteggi le chiavi di crittografia e misura l'impatto sul trasferimento dati e sulla CPU prima di crittografare i file esistenti.

Aggiungi la ricerca full-text di Elasticsearch a Nextcloud

Collega la ricerca file di Nextcloud a Elasticsearch, indicizza il contenuto dei documenti e scegli una configurazione adatta alle esigenze del tuo server e della tua sicurezza.

Imposta una politica di scadenza affidabile per i file eliminati da Nextcloud.

Imposta una politica di scadenza affidabile per i file eliminati da Nextcloud.

Configura Nextcloud per rimuovere i file eliminati dopo un periodo di conservazione definito, pianifica in modo affidabile le attività in background ed evita i comandi che svuotano il cestino di tutti gli utenti.

Risolvi l'avviso di Nextcloud relativo agli indici del database mancanti.

Risolvi l'avviso di Nextcloud relativo agli indici del database mancanti.

Esegui in modo sicuro la riparazione OCC di Nextcloud, visualizza in anteprima le modifiche al database e verifica il motivo per cui l'avviso potrebbe persistere.

Aumentare il limite di caricamento web di Nextcloud oltre i 2 GB

Aumentare il limite di caricamento web di Nextcloud oltre i 2 GB

Consenti il ​​caricamento di file di dimensioni maggiori nel browser Nextcloud allineando le impostazioni di PHP, Nginx o Apache, dello spazio di archiviazione temporaneo e del timeout, e verifica quale limite sta bloccando il file.

Rimuovi l'avviso di memoria PHP di Nextcloud sul server web

Imposta il limite di memoria PHP effettivamente utilizzato da Nextcloud, riavvia il servizio corretto e conferma l'impostazione di 512 MB nella Panoramica di amministrazione.

Collega un bucket compatibile con S3 allo storage esterno di Nextcloud.

Monta un bucket di object storage compatibile in Nextcloud utilizzando il suo backend S3, con l'endpoint, le credenziali, l'ambito di accesso e i passaggi di verifica corretti.

Spostare i dati di Nextcloud su un'unità esterna senza interrompere lo storage

Spostare i dati di Nextcloud su un'unità esterna senza interrompere lo storage

Spostare in modo sicuro una directory di dati Nextcloud su Linux verso un'unità esterna utilizzando un mount UUID persistente, la modalità di manutenzione, una copia verificata e il collegamento simbolico del percorso originale.

Errore del database di Nextcloud dopo un aggiornamento: cosa controllare per prima cosa

Ripristina l'accesso a Nextcloud dopo un aggiornamento diagnosticando gli errori SQL, verificando la connettività del database e completando in sicurezza le migrazioni interrotte.