Zacznij od dziennika awarii, a nie od indeksu wyszukiwania. Na klasycznym serwerze Kopano Core wyszukiwarka jest kopano-searchusługą. Pakiet źródłowy Debiana opisuje tę generację jako indeksator oparty na procesach, zbudowany na python-kopano. Łączy się z [usługą] kopano-server, utrzymuje indeksy wyszukiwania dla poszczególnych magazynów i opcjonalnie może wywoływać narzędzia do analizy załączników. Zapoznaj się z pakietem źródłowym Kopano Search . Brakujący moduł Pythona, niezgodność gniazd serwera, problem z uprawnieniami lub miejscem na dysku, a także awaria parsera załączników – każdy z tych problemów może powodować różne objawy. Ponowne uruchomienie lub usunięcie całego indeksu przed zidentyfikowaniem awarii może ukryć istotne dowody i narazić na dodatkowe obciążenie.
Ten przewodnik obejmuje instalacje z klasycznym kopano-searchdemonem, w tym starsze pakiety Kopano Core. Dokumentacja Kopano dostępna obecnie dla tej usługi jest w wersji Kopano Core 8.0, a archiwalne strony podręcznika Ubuntu obejmują starsze kompilacje pakietów, takie jak 8.7. Przed zastosowaniem poleceń specyficznych dla danej wersji sprawdź zainstalowaną wersję Kopano i jej lokalną instrukcję. Wdrożenia Kopano Cloud lub kontenerowe mogą korzystać z innych nazw usług i procedur zarządzania.
Co należy sprawdzić przed zmianą czegokolwiek?
Do odczytu logów i konfiguracji Kopano potrzebny jest dostęp do powłoki z uprawnieniami. Przed edycją konfiguracji lub zmianą plików indeksu należy zapisać wersję pakietu i wykonać kopię zapasową odpowiedniej konfiguracji. Nie należy kopiować ścieżki indeksu z innego serwera: domyślne i skonfigurowane ścieżki różnią się w zależności od wersji pakietu. Podręcznik administratora Kopano opisuje /etc/kopano/search.cfgpliki indeksu dla poszczególnych magazynów, gniazdo usługi i analizę załączników; ostrzega również przed zmianą plików indeksu podczas działania usługi. Sekcja konfiguracji wyszukiwania w Kopano stanowi podstawowe źródło informacji o tych ustawieniach.
1. Sprawdź, czy kopano-search faktycznie ulega awarii
W systemie wykorzystującym systemd sprawdź jednostkę i ostatnie wpisy w dzienniku:
Sprawdź powtarzające się próby uruchomienia, kod wyjścia, ślad Pythona lub konkretny wyjątek końcowy. Ostatni wiersz śladu jest często bardziej przydatny niż pierwszy, ponieważ wskazuje błąd, który zatrzymał proces. Jeśli instalacja korzysta ze starszych skryptów inicjujących SysV, sprawdź sudo service kopano-search statusi przejrzyj skonfigurowany plik dziennika lub dziennik systemowy. Usługa może rejestrować dane w pliku lub dzienniku systemowym, w zależności od search.cfg, więc pusty dziennik nie dowodzi, że nie wystąpił żaden błąd.
Najpierw sprawdź stan usługi Kopano Search. Stan awarii w tym przykładzie jest ilustracyjny; porównaj go z wynikami swojego serwera.
Zapisz odpowiednie wiersze dziennika przed ponownym uruchomieniem. Jeśli usługa zakończy działanie i systemd uruchomi ją ponownie, warto sprawdzić, czy każda próba zakończy się niepowodzeniem na tym samym etapie, czy też awarię spowodowało jedno zdarzenie.
2. Sprawdź, czy usługa wyszukiwania może dotrzeć do serwera Kopano
Demon wyszukiwania musi połączyć się z prawidłowym gniazdem serwera Kopano. Sprawdź obie usługi i porównaj ich skonfigurowane wartości gniazd:
Dokładny zestaw dostępnych kluczy może się różnić w zależności od wersji. W klasycznej konfiguracji Core search_enabled = yesopcja włącza wyszukiwanie pełnotekstowe w server.cfg; search_socketinformuje serwer, gdzie ma się skontaktować z usługą wyszukiwania. Ustawienie usługi wyszukiwania server_socketwskazuje na serwer Kopano. Niezgodność, brak gniazda lub zatrzymany serwer mogą powodować błędy połączenia przypominające awarię wyszukiwania. Serwer może powrócić do bezpośredniego wyszukiwania w bazie danych, gdy gniazdo wyszukiwania jest niedostępne, ale indeksowanie pełnotekstowe nie zostanie przywrócone, dopóki usługa wyszukiwania nie będzie sprawna.
Użyj dziennika serwisowego, aby zidentyfikować kategorię awarii. Polecenie i przypomnienie są wyświetlane w celach orientacyjnych; dane wyjściowe zależą od konfiguracji rejestrowania.
3. Dopasuj pakiety Pythona do kompilacji Kopano
kopano-searchWykorzystuje powiązania Kopano z Pythonem i natywne komponenty MAPI. ImportErrorBłąd brakującej biblioteki współdzielonej lub błąd ładowania modułu może wystąpić po częściowej aktualizacji, zmianie repozytorium lub ręcznej instalacji pakietu Pythona. Zapisz zainstalowane pakiety i interpreter używany przez spakowany plik wykonywalny:
Drugie polecenie jest przydatne tylko wtedy, gdy kopano-searchznajduje się w ścieżce bieżącej powłoki. Porównaj te dane z repozytorium i instrukcjami instalacji dla zestawu pakietów Kopano, z którego faktycznie korzystasz. Jeśli serwer jest zarządzany za pomocą pakietów RPM, kontenerów lub urządzenia dostawcy, użyj narzędzi pakietowych tej platformy, a nie powyższych poleceń Debiana.
Nie naprawiaj spakowanego serwera Kopano, uruchamiając go sudo pip installw systemie za pomocą Pythona. Python-MAPI zawiera komponenty natywne, a mieszanie ich z niepowiązanymi pakietami Pythona może spowodować, że interpreter znajdzie niekompatybilne moduły. Przywróć lub ponownie zainstaluj pasujące pakiety Kopano z tego samego zaufanego repozytorium, a następnie uruchom ponownie usługę i sprawdź dziennik. Jeśli komputer był aktualizowany w różnych wersjach systemu operacyjnego, przed próbą ponownej instalacji pakietu sprawdź, czy repozytorium Kopano obsługuje tę kombinację systemu operacyjnego i Pythona.
4. Sprawdź uprawnienia, wolne miejsce i analizę załączników
Odczytaj skonfigurowane ustawienia index_path, log_file, tmp_pathi parsera załączników w /etc/kopano/search.cfg. Sprawdź, czy w systemie plików jest wolne miejsce i czy konto usługi może zapisywać dane w miejscu wymaganym przez konfigurację. Na przykład:
Zastąp przykładowy katalog indeksów wartością z własnej konfiguracji. Błędy takie jak „odmowa dostępu”, „brak miejsca” lub nieudane utworzenie pliku tymczasowego wskazują na dostęp do pamięci masowej, a nie na ogólną awarię Pythona. Przywróć zamierzonego właściciela i uprawnienia, korzystając z udokumentowanych domyślnych ustawień pakietów serwera; nie zmieniaj rekurencyjnie własności we wszystkich /var/lib/kopanobez sprawdzenia, które inne usługi z nich korzystają.
Jeśli analiza śladu lub synchronizacja wskazują na konieczność wyodrębnienia załącznika, należy sprawdzić index_attachments = yesi przeanalizować index_attachment_parserbazę danych parsera oraz wywoływane przez nią narzędzia zewnętrzne. W podręczniku Kopano wyjaśniono, że zawartość załącznika jest konwertowana na tekst przez skonfigurowany skrypt, a rozmiar załącznika, pamięć i limity procesora można ustawić. W ramach diagnostyki można tymczasowo ustawić [brakujący fragment index_attachments = notekstu], ponownie uruchomić usługę i sprawdzić, czy awaria ustanie. Spowoduje to wyłączenie przeszukiwania zawartości załącznika, ale nie wyłączy indeksowania treści wiadomości. Jeśli awaria zniknie, napraw konkretny parser lub zależność przed ponownym włączeniem indeksowania załączników.
Przykład konfiguracji pokazuje ścieżkę indeksu i ustawienia załącznika. Przed zmianą którejkolwiek z tych wartości sprawdź zainstalowaną instrukcję i aktualny plik.
5. Odbuduj tylko indeks sklepu, którego dotyczy problem, jeśli logi wskazują na uszkodzenie indeksu
Ponowne indeksowanie jest wskazane, gdy usługa uruchamia się poprawnie, ale wielokrotnie zawodzi podczas otwierania lub aktualizowania indeksu jednego magazynu, lub gdy logi Kopano identyfikują dany indeks jako uszkodzony. Nie jest to pierwsza poprawka błędu importu Pythona, niezgodności gniazd lub zapełnienia dysku.
W podręczniku administratora Kopano zaleca się zatrzymanie operacji kopano-searchprzed usunięciem pliku indeksu pojedynczego magazynu. Opisuje on również plik stanu w katalogu indeksów, dlatego nie należy usuwać całego katalogu ani wszystkich indeksów użytkowników w ramach rutynowej naprawy. Najpierw należy wykonać kopię zapasową odpowiedniego pliku indeksu i potwierdzić tożsamość użytkownika lub magazynu oraz ścieżkę. Jeśli w lokalnym man kopano-searchsystemie operacyjnym jest dostępna ta --reindexopcja, należy preferować składnię obsługiwaną przez pakiet do odbudowy jednego magazynu; format opcji różni się w zależności od zarchiwizowanej kompilacji. Na przykład podręcznik Ubuntu Focal opisuje opcję ponownego indeksowania docelowego i zaznacza, że demon musi być już uruchomiony.
Kompleksowa przebudowa może obciążać dysk i procesor, a wyniki wyszukiwania mogą być niekompletne, podczas gdy indeksowanie nadrabia zaległości. Jeśli nie masz pewności, którego pliku magazynu dotyczy problem, zatrzymaj się przed usunięciem czegokolwiek i zbierz dziennik serwisowy, wersje pakietów oraz dane konfiguracyjne index_pathdla administratora Kopano lub kanału wsparcia.
Składnia ponownego indeksowania zależy od zainstalowanej kompilacji Kopano. Skorzystaj z lokalnej instrukcji i wybierz jeden potwierdzony magazyn zamiast usuwać cały katalog indeksu.
6. Uruchom ponownie i sprawdź wynik
Po usunięciu przyczyny uruchom ponownie wyłącznie usługę wyszukiwania:
W przypadku instalacji SysV należy użyć polecenia service udokumentowanego w tym pakiecie. Należy upewnić się, że proces pozostaje aktywny, ten sam traceback się nie powtarza i że gniazdo wyszukiwania pojawia się po początkowym indeksowaniu. Kopano zauważa, że gniazdo może nie zostać utworzone do momentu utworzenia początkowego indeksu. Należy przetestować standardowe wyszukiwanie poczty i, jeśli indeksowanie załączników jest włączone, przetestować znany załącznik dopiero po naprawieniu parsera.
Krótki przewodnik diagnostyczny
Rejestr objawów
Pierwsza kontrola
Python ImportErrorlub brakujący moduł
Wersje pakietów i powiązań Pythona; cofnij mieszane źródła pakietów
Połączenie odrzucone lub brak gniazda
kopano-serverstatus i pasująca konfiguracja gniazda
Błąd uprawnień lub dysku
Skonfigurowano ścieżki dziennika, tymczasowe i indeksu; wolna przestrzeń i dostęp użytkownika usługi
Awaria występuje na jednym załączniku
Polecenie parsera załączników, zależności parsera i limity rozmiaru
Powtarzająca się awaria przy otwieraniu jednego indeksu sklepu
Utwórz kopię zapasową i ponownie zindeksuj tylko ten potwierdzony magazyn, używając składni lokalnej wersji
Najbardziej niezawodne rozwiązanie polega na usunięciu błędu w logu: napraw środowisko pakietu w przypadku błędów importu Pythona, przywróć prawidłowe gniazdo w przypadku błędów połączenia, napraw konkretną ścieżkę lub parser w przypadku błędów dostępu i ekstrakcji oraz ponownie zaindeksuj tylko wtedy, gdy dowody wskazują na uszkodzone dane indeksu. Dostępne podręczniki Kopano obejmują starsze wersje Core, więc należy ich używać wraz z podręcznikiem pakietu, zamiast zakładać, że każde obecne wdrożenie korzysta z tego samego menedżera usług lub składni opcji.