Acasă
» ADMIN. REȚEA
»
Remediază prăbușirea serviciului Python al motorului de căutare Kopano
Remediază prăbușirea serviciului Python al motorului de căutare Kopano
Începeți cu jurnalul de erori, nu cu indexul de căutare. Pe un server Kopano Core clasic, motorul de căutare este kopano-searchserviciul. Pachetul sursă Debian descrie această generație ca un indexator bazat pe procese, construit pe python-kopano. Se conectează la kopano-server, menține indexuri de căutare per depozit și poate apela opțional instrumente de analiză a atașamentelor. Consultați pachetul sursă Kopano Search . Un modul Python lipsă, o nepotrivire server-socket, o problemă de permisiuni sau spațiu pe disc sau un parser de atașamente defect pot cauza simptome diferite. Repornirea sau ștergerea întregului index înainte de identificarea erorii poate ascunde dovezi utile și poate crea mai multă muncă.
Acest ghid acoperă instalările care rulează daemonul clasic kopano-search, inclusiv pachetele Kopano Core mai vechi. Documentația Kopano disponibilă în prezent pentru acest serviciu este versionată pentru Kopano Core 8.0, în timp ce paginile de manual arhivate ale Ubuntu acoperă versiunile mai vechi de pachete, cum ar fi 8.7. Confirmați versiunea de Kopano instalată și manualul local al acesteia înainte de a aplica comenzi specifice versiunii. Implementările Kopano Cloud sau containerele pot utiliza nume de servicii și proceduri de gestionare diferite.
Ce ar trebui să verifici înainte să schimbi ceva?
Aveți nevoie de acces la shell cu permisiune pentru a citi jurnalele și configurația Kopano. Înainte de a edita configurația sau de a atinge fișierele index, înregistrați versiunea pachetului și faceți o copie de rezervă a configurației relevante. Nu copiați o cale de index de pe un alt server: căile implicite și cele configurate diferă în funcție de versiunea pachetului. Manualul de administrare Kopano descrie /etc/kopano/search.cfgfișierele index per depozit, socketul de serviciu și analizarea atașamentelor; de asemenea, avertizează împotriva modificării fișierelor index în timp ce serviciul rulează. Secțiunea de configurare Căutare din Kopano este referința principală pentru aceste setări.
1. Confirmați că kopano-search se blochează efectiv
Pe un sistem care folosește systemd, verificați unitatea și intrările recente în jurnal:
Căutați încercări repetate de pornire, un cod de ieșire, un traceback Python sau o excepție finală specifică. Ultima linie a unui traceback este adesea mai utilă decât prima linie, deoarece denumește eroarea care a oprit procesul. Dacă instalarea dvs. utilizează scripturile de inițializare SysV mai vechi, verificați sudo service kopano-search statusși inspectați fișierul jurnal configurat sau jurnalul de sistem. Serviciul se poate înregistra într-un fișier sau jurnal syslog, în funcție de search.cfg, deci un jurnal gol nu dovedește că nu a apărut nicio eroare.
Verificați mai întâi starea serviciului Kopano Search. Starea de eșec din acest exemplu este ilustrativă; comparați-o cu rezultatul propriu al serverului.
Salvați liniile de jurnal relevante înainte de a reporni. Dacă serviciul se închide și systemd îl pornește din nou, doriți să știți dacă fiecare încercare eșuează în aceeași etapă sau dacă un eveniment a declanșat eroarea.
2. Verificați dacă serviciul de căutare poate ajunge la serverul Kopano
Daemonul de căutare trebuie să se conecteze la socketul corect al serverului Kopano. Verificați ambele servicii și comparați valorile socketului configurate:
Setul exact de chei prezente poate varia în funcție de versiune. În configurația Core clasică, search_enabled = yesactivează căutarea full-text în server.cfg; search_socketindică serverului unde să contacteze serviciul de căutare. Setarea serviciului de căutare server_socketindică serverul Kopano. O nepotrivire, un socket lipsă sau un server oprit pot produce erori de conexiune care arată ca o blocare a căutării. Serverul poate reveni la căutarea directă în baza de date în timp ce socketul de căutare nu este disponibil, dar indexarea full-text nu este restabilită până când serviciul de căutare nu este funcțional.
Folosește jurnalul de service pentru a identifica categoria de eroare. Comanda și memento-ul sunt afișate pentru orientare; rezultatul depinde de configurația de înregistrare în jurnal.
3. Potriviți pachetele Python cu versiunea Kopano
kopano-searchutilizează legăturile Python ale Kopano și componentele MAPI native. O ImportErroreroare de tip , o bibliotecă partajată lipsă sau o eroare de încărcare a modulului poate apărea după o actualizare parțială, o modificare a depozitului sau o instalare manuală a unui pachet Python. Înregistrați pachetele instalate și interpretorul utilizat de executabilul inclus în pachet:
A doua comandă este utilă numai dacă kopano-searchse găsește în calea shell-ului curent. Comparați aceste detalii cu instrucțiunile din repozitoriu și instalare pentru setul de pachete Kopano pe care îl utilizați de fapt. Dacă serverul este gestionat cu RPM, containere sau un dispozitiv al unui furnizor, utilizați instrumentele de pachet ale platformei respective în loc de comenzile Debian de mai sus.
Nu reparați un server Kopano integrat în pachete rulând sudo pip installPython în sistemul Python. Python-MAPI include componente native, iar combinarea lor cu pachete Python fără legătură poate face ca interpretorul să găsească module incompatibile. Restaurați sau reinstalați pachetele Kopano corespunzătoare din același depozit de încredere, apoi reporniți serviciul și verificați din nou jurnalul. Dacă mașina a fost actualizată între versiuni ale sistemului de operare, verificați dacă depozitul Kopano acceptă acea combinație de sistem de operare/Python înainte de a încerca o reinstalare a pachetului.
4. Verificați permisiunile, spațiul liber și analizarea atașamentelor
Citiți setările configurate index_path, log_file, tmp_path, și attachment-parser din /etc/kopano/search.cfg. Confirmați că sistemul de fișiere are spațiu liber și că contul de serviciu poate scrie acolo unde este așteptat de configurație. De exemplu:
Înlocuiți directorul index exemplu cu valoarea din propria configurație. Erori precum „permisiune refuzată”, „nu există spațiu rămas” sau o creare eșuată a unui fișier temporar indică accesul la spațiul de stocare, în loc de o eroare generală a Python. Restaurați proprietarul și permisiunile intenționate folosind valorile implicite documentate ale pachetului serverului; nu schimbați recursiv proprietatea pe întregul server /var/lib/kopanofără a verifica ce alte servicii îl utilizează.
Dacă urmărirea sau sincronizarea implică extragerea atașamentelor, verificați dacă index_attachments = yesși inspectați index_attachment_parserbaza de date a parserului și utilitarele externe pe care le apelează. Manualul Kopano explică faptul că, de asemenea, conținutul atașamentelor este convertit în text de către un script configurat și că se pot seta limitele dimensiunii atașamentelor, memoriei și CPU. Ca o diagnosticare, puteți seta temporar index_attachments = no, reporni serviciul și vedea dacă eroarea se oprește. Aceasta dezactivează căutarea în conținutul atașamentelor; nu dezactivează indexarea corpului mesajului. Dacă eroarea dispare, reparați parserul sau dependența specifică înainte de a activa din nou indexarea atașamentelor.
Exemplul de configurare arată calea indexului și setarea atașamentelor. Verificați manualul instalat și fișierul curent înainte de a modifica oricare dintre valori.
5. Reconstruiți doar indexul magazinului afectat atunci când jurnalele indică deteriorarea indexului
Reindexarea este potrivită atunci când serviciul pornește corect, dar eșuează în mod repetat la deschiderea sau actualizarea indexului unui magazin sau când jurnalele Kopano identifică acel index specific ca fiind deteriorat. Nu este prima soluție pentru o eroare de import Python, o nepotrivire de socket sau un disc plin.
Manualul de administrare al programului Kopano recomandă oprirea kopano-searchînainte de a șterge fișierul index al unui anumit magazin. De asemenea, descrie un fișier de stare din directorul index, așa că nu eliminați întregul director sau toți indexurile utilizatorilor ca o reparație de rutină. Mai întâi, faceți o copie de rezervă a fișierului index relevant și confirmați identitatea și calea utilizatorului sau magazinului. Dacă versiunea locală man kopano-searchdocumentează --reindexopțiunea, preferați sintaxa acceptată de pachet pentru reconstruirea unui magazin; formatul opțiunii diferă între versiunile arhivate. Manualul Ubuntu Focal, de exemplu, documentează o opțiune de reindexare direcționată și menționează că daemonul trebuie să ruleze deja.
O reconstrucție extinsă poate consuma mult spațiu pe disc și procesor, iar rezultatele căutării pot fi incomplete în timp ce indexarea recuperează. Dacă nu sunteți sigur ce fișier de stocare este afectat, opriți-vă înainte de a șterge ceva și colectați jurnalul de service, versiunile pachetului și configurația index_pathpentru un administrator Kopano sau un canal de asistență.
Sintaxa de reindexare depinde de versiunea Kopano instalată. Folosește manualul local și vizează un magazin confirmat în loc să ștergi întregul director de indexare.
6. Reporniți și verificați rezultatul
După ce ați corectat cauza, reporniți doar serviciul de căutare:
Pentru o instalare SysV, utilizați comanda service documentată de pachetul respectiv. Confirmați că procesul rămâne activ, că aceeași traceback nu se mai repetă și că socket-ul de căutare apare după indexarea inițială. Kopano notează că socket-ul nu poate fi creat până când indexul inițial nu a fost construit. Testați o căutare normală de e-mailuri și, dacă indexarea atașamentelor este activată, testați un atașament cunoscut numai după ce parserul a fost reparat.
Ghid rapid de diagnosticare
Jurnal simptom
Prima verificare
Python ImportErrorsau modul lipsă
Versiuni de legături de pachete și Python; anulează sursele de pachete mixte
Conexiune refuzată sau priză lipsă
kopano-serverstare și configurația socketului corespunzătoare
Eroare de permisiune sau de disc
Căi configurate pentru jurnal, temporare și index; spațiu liber și acces al utilizatorilor de servicii
Se produce o eroare la un atașament
Comanda parserului de atașamente, dependențele parserului și limitele de dimensiune
Eroare repetată la deschiderea unui index de magazin
Faceți o copie de rezervă și reindexați doar acel magazin confirmat folosind sintaxa versiunii locale
Cea mai fiabilă soluție urmează erorii din jurnal: reparați mediul pachetului pentru erorile de import Python, restaurați socketul corect pentru erorile de conexiune, remediați calea specifică sau parserul pentru erorile de acces și extragere și reindexați doar atunci când dovezile indică date de index deteriorate. Manualele Kopano disponibile acoperă versiunile Core mai vechi, așa că folosiți-le alături de manualul propriu al pachetului, în loc să presupuneți că fiecare implementare curentă folosește același manager de servicii sau aceeași sintaxă de opțiuni.