Jak usunąć starą historię wiadomości i multimedia w Matrix Synapse

Przykładowy scenariusz (tylko ilustracyjny): Northstar Community, hipotetyczna organizacja non-profit, prowadzi serwer domowy Matrix Synapse. Jego baza danych i magazyn multimediów rosną, a administrator chce usunąć starą historię pokoju i nieaktualne multimedia bez przypadkowego usuwania bieżących dyskusji lub zdjęć profilowych. Ten przykład nie jest raportem z rzeczywistego wdrożenia ani przetestowanym rezultatem.

Kluczem jest traktowanie historii wiadomości i multimediów jako osobnych zadań czyszczenia. Synapse oferuje API czyszczenia historii pomieszczeń i osobne narzędzia do czyszczenia multimediów; ustawienie retencji multimediów pozwala również usuwać pliki, zachowując jednocześnie zdarzenia Matrix, które się do nich odwołują. Najpierw zdecyduj, co ma pozostać dostępne, a następnie utwórz kopię zapasową bazy danych i magazynu multimediów, wybierz odpowiednią metodę i zweryfikuj oba obszary pamięci masowej.

Zdecyduj, co dla Twojego serwera oznacza „stary”

Przed zmianą konfiguracji lub wywołaniem destrukcyjnego punktu końcowego, zapisz regułę retencji. W przykładzie z Northstar, załóżmy, że zarząd zatwierdza przechowywanie zwykłej historii pokoju przez 180 dni, przechowywanie lokalnych plików przesyłanych zgodnie z podobną polityką oraz traktowanie zdalnych multimediów jako pamięci podręcznej, którą można ponownie pobrać w razie potrzeby. Inna organizacja może potrzebować lat retencji ze względów prawnych, operacyjnych lub społecznych. Te okresy są przykładami, a nie uniwersalnymi zaleceniami.

Podziel dane na dwie kategorie:

  • Wydarzenia w pokoju: wiadomości i inne zdarzenia przechowywane w bazie danych Synapse. Usuwanie zdarzeń zmienia zakres, w jakim użytkownicy mogą przeglądać dane w pokoju.
  • Media: przesłane pliki, miniatury i kopie plików z pamięci podręcznej z innych serwerów domowych. Znajdują się one w repozytorium multimediów lub w skonfigurowanym repozytorium zewnętrznym.

Oficjalna dokumentacja Synapse opisuje zasady przechowywania zdarzeń i czyszczenia nośników niezależnie. Samo czyszczenie historii pokoju nie dowodzi, że magazyn nośników został wyczyszczony, a usunięcie pliku multimedialnego nie powoduje usunięcia powiązanego z nim zdarzenia. Zacznij od zarejestrowania rozmiaru bazy danych, rozmiaru magazynu nośników, dotkniętych pokoi i planowanego odcięcia. Zapoznaj się z podręcznikiem konfiguracji Synapse .

Przed oczyszczeniem wykonaj kopię zapasową

Wykonaj kopię zapasową bazy danych, stosując procedurę zalecaną dla Twojego silnika bazy danych, a także kopię zapasową repozytorium multimediów lub zewnętrznego magazynu multimediów. Sama kopia zapasowa bazy danych nie zachowuje przesłanych plików; sama kopia zapasowa multimediów nie przywraca zdarzeń w pomieszczeniu. Przed kontynuacją upewnij się, że kopie zapasowe są czytelne i wiesz, jak je przywrócić. Jeśli Synapse działa w kontenerach lub korzysta z oddzielnych procesów roboczych, uwzględnij odpowiednią konfigurację i woluminy pamięci masowej w swoim planie konserwacji.

W przypadku hipotetycznego serwera Northstar administrator rejestruje rozmiary bazy danych i magazynu multimediów oraz potwierdza ostatni punkt przywracania przed wprowadzeniem zmian do współdzielonych pomieszczeń. Jest to przydatne, ponieważ „czyszczenie” jest skuteczne tylko wtedy, gdy usuwa pożądane dane, pozostawiając wymaganą zawartość do odzyskania.

Wybierz zaplanowane przechowywanie w celu bieżącego czyszczenia

Jeśli chcesz, aby Synapse nadal stosował politykę, skonfiguruj oddzielnie retencję zdarzeń i retencję multimediów w konfiguracji serwera domowego. Na przykład, administrator może dostosować ten przykład do serwera, którego zatwierdzona polityka to 180 dni dla historii pokoju i multimediów lokalnych, z 30-dniową pamięcią podręczną multimediów zdalnych:

retention:
  enabled: true
  default_policy:
    max_lifetime: 180d

media_retention:
  local_media_lifetime: 180d
  remote_media_lifetime: 30d

To jest konfiguracja przykładowa, a nie polityka typu „drop-in” dla każdego serwera. Synapse dokumentuje funkcję przechowywania zdarzeń jako domyślnie wyłączoną. default_policyDotyczy to pokoi, które nie mają m.room.retentionzdarzenia stanu; administratorzy pokoi mogą ustawiać zasady dla pokoi, podczas gdy administratorzy serwerów mogą ograniczać czas życia zasad za pomocą udokumentowanych ustawień dozwolonego czasu życia. Jeśli potrzebujesz spójnego górnego limitu, sprawdź te elementy sterujące i już używane zasady dla pokoi, zamiast zakładać, że domyślne ustawienie obejmuje każdy pokój.

Czasy życia multimediów są oparte na czasie od ostatniego dostępu do elementu multimedialnego. Jeśli do elementu nigdy nie uzyskano dostępu, Synapse używa czasu jego utworzenia. Ustawienie dotyczy oryginałów i miniatur; nieustawione lub zerowe czasy życia nie powodują usunięcia danej kategorii multimediów. Zdalny element z pamięci podręcznej może zostać ponownie zażądany z jego źródła po usunięciu. Nośniki poddane kwarantannie i lokalnie chronione stanowią wyjątki i nie są usuwane przez te ustawienia przechowywania. Czyszczenie multimediów jest uruchamiane w procesie lub procesie roboczym Synapse, który został enable_media_repowłączony. Sprawdź bieżące informacje dotyczące przechowywania i media_retention , a następnie zastosuj konfigurację, wykonując standardową procedurę ponownego uruchomienia lub wdrożenia instalacji.

Przed zastosowaniem przykładu porównaj jego działanie z Twoimi potrzebami. Jeśli wiadomość w pokoju musi pozostać czytelna wraz z załącznikiem przez 180 dni, nie wybieraj krótszego czasu życia multimediów, chyba że akceptujesz, że wiadomość może przetrwać dłużej niż lokalnie dostępny plik. Sprawdź, czy Twoje media są przechowywane w samym Synapse, czy w zewnętrznym repozytorium multimediów; API usuwania lokalnych multimediów w Synapse nie usuwa multimediów przechowywanych w zewnętrznym repozytorium.

Usuń starsze wydarzenia w pokoju na żądanie

Aby wykonać jednorazowe czyszczenie, skorzystaj z interfejsu API administratora Synapse Purge History. Wymaga to tokenu dostępu administratora serwera ; bycie administratorem pojedynczego pokoju to nie to samo uprawnienie. Synapse zaleca, aby interfejs API administratora był ukryty i nie był widoczny publicznie, a żądania były zazwyczaj wysyłane z serwera lub zaufanego hosta administracyjnego. Nie wklejaj aktywnego tokenu dostępu do współdzielonej historii powłoki, zgłoszeń ani logów.

Żądanie musi określać punkt odcięcia za pomocą identyfikatora zdarzenia lub znacznika czasu systemu Unix w milisekundach. Poniższy przykład powłoki jest ilustracją. Zastąp serwer domowy, identyfikator pokoju, zmienną tokena i punkt odcięcia przykładu wartościami, które sprawdziłeś. Przykład wyraźnie żąda również usunięcia zdarzeń komunikatów użytkownika lokalnego:

export SYNAPSE_ADMIN_TOKEN='replace-with-a-server-admin-token'
PURGE_CUTOFF_MS=1760000000000  # replace with the approved UTC cutoff

curl --fail-with-body -X POST \
  -H "Authorization: Bearer $SYNAPSE_ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  --data "{\"purge_up_to_ts\": $PURGE_CUTOFF_MS, \"delete_local_events\": true}" \
  "https://matrix.example.org/_synapse/admin/v1/purge_history/!room:example.org"

Bez [brakuje delete_local_events: truewartości], Synapse domyślnie zachowuje zdarzenia wysłane przez użytkowników lokalnych; zdarzenia wysłane zdalnie mogą zostać usunięte. Stan pokoju, taki jak członkostwo i stan tematu, jest zachowywany. Synapse przechowuje również co najmniej jedną wiadomość w każdym pokoju. Operacja może trwać kilka minut lub dłużej, a użytkownicy nie mogą przeglądać wstecz fragmentu czyszczonego podczas jej działania. API natychmiast zwraca identyfikator czyszczenia; odpytuj, /_synapse/admin/v1/purge_history_status/<purge_id>aż status będzie równy [brakuje wartości] completelub zbadaj błąd, jeśli jest równy [brakuje wartości] failed. Przed wybraniem punktu odcięcia zapoznaj się z dokumentacją API historii czyszczenia . W szczególności sprawdź, czy usuwanie zdarzeń lokalnych jest odpowiednie dla Twoich pokoi.

Wyczyść oddzielnie lokalne nośniki i zdalną pamięć podręczną

W przypadku cyklicznego czyszczenia użyj media_retentioni wybierz okresy życia odpowiadające dostępności, którą obiecujesz użytkownikom. W przypadku jednorazowego czyszczenia Synapse udostępnia oddzielne punkty końcowe:

  • Media lokalne: POST /_synapse/admin/v1/media/delete?before_ts=<timestamp_ms> usuwa kwalifikujące się media lokalne na podstawie czasu ich ostatniego użycia. Interfejs API akceptuje również próg rozmiaru. Media profilowe i awatara pokoju są domyślnie zachowywane; nie wyłączaj tej ochrony, chyba że celowo sprawdzisz konsekwencje.
  • Zdalne nośniki w pamięci podręcznej: POST /_synapse/admin/v1/purge_media_cache?before_ts=<timestamp_ms> usuwa zbuforowane zdalne nośniki, do których ostatni dostęp nastąpił przed momentem odcięcia. Jeśli użytkownik zażąda usuniętego pliku zdalnego później, Synapse może ponownie zażądać go z serwera macierzystego.

Oba punkty końcowe używają dodatniego znacznika czasu Unix w milisekundach, a odcięcie multimediów jest oparte na ostatnim dostępie, a nie tylko na dacie przesłania lub utworzenia. Interfejs API usuwania lokalnych multimediów usuwa plik i miniatury z pamięci masowej Synapse, w tym z lokalnych kopii plików zdalnych przechowywanych w pamięci podręcznej; nie czyści zewnętrznego repozytorium multimediów. Odpowiedź raportuje liczbę usuniętych elementów. Przed uruchomieniem żądania sprawdź bieżące parametry i szczegóły punktu końcowego w interfejsie API administrowania multimediami Synapse .

W przykładzie Northstar administrator najpierw przetestowałby wartość odcięcia z zatwierdzoną polityką i sprawdził, czy identyfikatory lub liczniki zwrócone przez punkt końcowy są zgodne z oczekiwaniami. Jeśli zdalna pamięć podręczna jest jedynym źródłem wzrostu, czyszczenie lokalnych plików przesłanych przez serwer byłoby niewłaściwą operacją. Jeśli lokalne pliki przesłane muszą pozostać dostępne, należy wybrać dłuższy lokalny czas życia lub unikać punktu końcowego czyszczenia nośników lokalnych.

Zmierz wynik i zmień kurs, gdy będzie to konieczne

Po każdym zadaniu sprawdź, czy czyszczenie zakończyło się pomyślnie, przejrzyj liczbę odpowiedzi API, potwierdź, że reprezentatywne pomieszczenia wyświetlają oczekiwaną granicę historii i porównaj osobno wykorzystanie bazy danych i magazynu nośników. Zmniejszenie liczby wierszy w bazie danych może nie być od razu widoczne jako równoznaczne ze zmniejszeniem wykorzystania dysku systemu operacyjnego; odzyskiwanie miejsca w bazie danych zależy od silnika bazy danych i jego procedur konserwacyjnych. Postępuj zgodnie ze wskazówkami dostawcy bazy danych, zamiast ręcznie usuwać pliki bazy danych.

Jeśli baza danych się kurczy, ale magazyn nośników nie, sprawdź retencję nośników, pracownika nośników z enable_media_repokwarantanną lub statusem ochrony oraz czy pliki są przechowywane zewnętrznie. Jeśli użycie nośników spada, ale pozostają stare wiadomości, jest to normalne, gdy tylko nośnik został oczyszczony. Jeśli zdarzenia nieoczekiwanie się utrzymują, sprawdź, czy retencja jest włączona, czy pomieszczenie ma własny stan retencji, czy zdarzenia lokalne zostały celowo zachowane i czy status czyszczenia został zakończony.

Dla Northstar kryterium sukcesu nie jest po prostu „mniejszy dysk”. Chodzi o to, aby zatwierdzona granica starej historii była widoczna, wymagane bieżące wiadomości i załączniki nadal działały, docelowa kategoria multimediów została wyczyszczona, a obie kopie zapasowe pozostają dostępne. Jeśli te kontrole się nie powiodą, należy przerwać dalsze czyszczenie i sprawdzić politykę pokoju, odpowiedź API, konfigurację pracownika oraz zaplecze pamięci masowej przed rozszerzeniem czyszczenia.

Ograniczenia, o których należy pamiętać

Zasady przechowywania danych nie zastępują kontroli prawnej ani kontroli przechowywania danych w organizacji. Federacja oznacza, że ​​inne serwery domowe mogą przechowywać własne kopie zdarzeń lub multimediów, a Synapse nie może zagwarantować usunięcia danych z tych serwerów. Zdalne czyszczenie multimediów usuwa pamięć podręczną tego serwera; nie usuwa pliku źródłowego na serwerze domowym, z którego pochodzi. Podobnie, usunięcie lokalnego zdarzenia lub obiektu multimedialnego z Synapse nie powoduje przywrócenia kopii pobranej już przez innego uczestnika.

Użyj zaplanowanego przechowywania, gdy potrzebujesz powtarzalnej polityki; użyj interfejsów API administratora, aby przeprowadzić weryfikację i ukierunkowane czyszczenie. Zachowaj te dwie operacje oddzielnie w rekordzie zmian, ponieważ ich sygnały sukcesu i skutki są różne.

Zostaw komentarz

10 najlepszych narzędzi do pingowania w celu znajdowania urządzeń w sieci

10 najlepszych narzędzi do pingowania w celu znajdowania urządzeń w sieci

Porównaj 10 narzędzi do pingowania, które umożliwiają szybkie wykrywanie sieci LAN, skanowanie międzyplatformowe i zarządzanie adresami IP. Dowiedz się, co narzędzie pingujące może Ci powiedzieć, a czego nie.

6 najlepszych narzędzi do zarządzania siecią, umożliwiających śledzenie wydajności

6 najlepszych narzędzi do zarządzania siecią, umożliwiających śledzenie wydajności

Porównaj sześć narzędzi do zarządzania siecią służących do monitorowania wydajności, obejmujących zasięg SNMP, mapowanie, alerty, modele wdrażania i kompromisy kosztów.

Ping Monitor: 7 darmowych i otwartych narzędzi do monitorowania dostępności sieci

Ping Monitor: 7 darmowych i otwartych narzędzi do monitorowania dostępności sieci

Porównaj siedem darmowych i otwartych monitorów pingów — od kompletnych pakietów sieciowych po ukierunkowane sondy opóźnień — i wybierz odpowiedni monitor pod kątem dostępności, utraty pakietów i historii.

QoS w sieciach: czym jest jakość usług i jak działa

QoS w sieciach: czym jest jakość usług i jak działa

Dowiedz się, co oznacza QoS w sieciach, w jaki sposób oznaczenia DSCP i kolejki ruchu nadają priorytet aplikacjom głosowym, wideo i biznesowym oraz czego QoS nie jest w stanie naprawić.

Najlepsze oprogramowanie serwera SFTP do bezpiecznego przesyłania plików

Najlepsze oprogramowanie serwera SFTP do bezpiecznego przesyłania plików

Porównaj niezawodne oprogramowanie serwera SFTP dla systemów Windows i Linux, w tym OpenSSH, Bitvise, SolarWinds i SFTPGo. Znajdź rozwiązanie odpowiednie dla swoich potrzeb w zakresie bezpieczeństwa i transferu plików.

7 najlepszych narzędzi do zarządzania adresami IP dla zespołów sieciowych

7 najlepszych narzędzi do zarządzania adresami IP dla zespołów sieciowych

Porównaj siedem narzędzi do zarządzania adresami IP służących do wykrywania podsieci, koordynacji DNS i DHCP, inwentaryzacji sieci i otwartego oprogramowania IPAM.

6 najlepszych narzędzi do monitorowania serwerów Windows Server zapewniających lepszą dostępność i wydajność

6 najlepszych narzędzi do monitorowania serwerów Windows Server zapewniających lepszą dostępność i wydajność

Porównaj sześć narzędzi do monitorowania systemu Windows Server pod kątem zbierania danych systemu Windows, widoczności aplikacji, modelu wdrażania i licencjonowania, aby znaleźć odpowiednie rozwiązanie.

10 najlepszych narzędzi do skanowania sieci w celu wykrywania urządzeń i adresów IP

10 najlepszych narzędzi do skanowania sieci w celu wykrywania urządzeń i adresów IP

Porównaj narzędzia do skanowania sieciowego umożliwiające szybkie wykrywanie urządzeń, skanowanie adresów IP na wielu platformach oraz zarządzanie IPAM w przedsiębiorstwie. Znajdziesz tu wskazówki dotyczące dopasowania każdej opcji do swojej sieci.

Najlepsze praktyki monitorowania sieci: co śledzić i jakich narzędzi używać

Najlepsze praktyki monitorowania sieci: co śledzić i jakich narzędzi używać

Zbuduj praktyczny monitoring sieci z przejrzystym zakresem urządzeń, przydatnymi wskaźnikami wydajności, przydatnymi alertami oraz porównaniem SolarWinds NPM, PRTG i OpManager.

Jak używać Nmap do śledzenia trasy i odczytywania ścieżki sieciowej

Jak używać Nmap do śledzenia trasy i odczytywania ścieżki sieciowej

Użyj opcji --traceroute programu Nmap, aby mapować przeskoki do autoryzowanego hosta, zrozumieć dane wyjściowe dotyczące przeskoków i czasu RTT oraz rozwiązywać problemy z brakującymi odpowiedziami bez nadmiernego skanowania.