Najlepsze strategie i praktyki dotyczące rejestrowania aplikacji dla przedsiębiorstw!

Opublikowany: 2022-02-24

Logi aplikacji odgrywają kluczową rolę w przekazywaniu informacji związanych ze zdarzeniami zewnętrznymi i wewnętrznymi podczas działania aplikacji. A co najważniejsze, programiści mogą przeglądać te informacje podczas jego działania. W związku z tym w przypadku wystąpienia błędów, naruszeń bezpieczeństwa lub anomalii we wdrażaniu oprogramowania dzienniki aplikacji okazują się przydatne w analizie głównej przyczyny zdarzenia.

Dobrze zorganizowane logi działają cuda w uważnej obserwacji i szybkim działaniu — można łatwo i szybko zrozumieć, jak działa cały system i pomaga zapobiegać problemom z dużym wyprzedzeniem. Jednak sesje rozwiązywania problemów będą produktywne tylko wtedy, gdy deweloperzy będą przestrzegać skutecznych praktyk rejestrowania. Niewłaściwe praktyki rejestrowania doprowadzą do niepożądanych wyzwań. Teraz najbardziej prawdopodobne pytania, które pojawią się w twoim umyśle, to:

  • Co rejestrować?
  • Czego unikać logowania?
  • Jak się zalogować?

Cóż, ten post odpowiada na wszystkie te pytania — najlepsze praktyki dotyczące rejestrowania aplikacji korporacyjnych i rzeczy, których należy unikać podczas rejestrowania.

Najlepsze praktyki rejestrowania aplikacji do naśladowania

Zrozum swoją grupę docelową

Podczas obsługi dzienników ważne jest, aby zrozumieć, że dzienniki aplikacji mają dwa różne zestawy odbiorców — maszyny i ludzie — a ich sposoby obsługi danych są dość różne. Jeśli dane są ustrukturyzowane, maszyny mogą przetwarzać ogromne ilości danych automatycznie i szybko, podczas gdy ludzie radzą sobie słabo z przetwarzaniem znacznych ilości danych, ponieważ potrzebują czasu na przeczytanie dzienników. Ale w przypadku danych nieustrukturyzowanych ludzie przewyższają maszyny.

Dlatego, aby uzyskać najlepsze wyniki z twoich dzienników, dzienniki muszą być tworzone w taki sposób, aby były odpowiednie zarówno dla maszyn, jak i dla ludzi — ustrukturyzowane dla maszyn, a jednocześnie czytelne dla ludzi.

Poznaj zastosowanie różnych poziomów dziennika

Poziomy dziennika wskazują powagę każdego zdarzenia w systemie, a twórcy oprogramowania powinni wiedzieć, kiedy użyć każdego z nich. Poniżej podano najczęstsze dostępne poziomy dziennika wraz z ich scenariuszem przypadku użycia.

  • Poziom informacji dotyczy działań specyficznych dla systemu lub zależnych od użytkownika, takich jak regularnie zaplanowane operacje, kluczowe banery zdarzeń i komunikaty informacyjne obecne w zachowaniu aplikacji.
  • Dzienniki poziomu śledzenia umożliwiają badanie wartości zmiennych, a także pełnych stosów błędów. Zajmuje się informacjami, takimi jak ślady kodu stosu w celu dostarczenia informacji o konkretnym zdarzeniu. Mają one służyć do śledzenia błędów podczas rozwoju.
  • Poziom debugowania przedstawia szczegółowe i wyczerpujące informacje. Ten dziennik pomaga programistom przejść przez kod i jest zwykle używany do debugowania.
  • Poziom błędu wskazuje te wystąpienia błędów, które mogą nadal umożliwiać działanie aplikacji w sposób ciągły, ale ze zmniejszonymi możliwościami na ścieżkach, których dotyczy problem. Tak więc ten poziom jest używany do rejestrowania warunków błędów — wewnętrznych zdarzeń błędów lub wywołań API, które zwracają błędy.
  • Poziom ostrzeżenia oznacza zdarzenia, które są mniej szkodliwe niż błędy, ale wskazuje na sygnały ostrzegawcze, które należy zbadać. Dlatego użyj tego poziomu, aby rejestrować zdarzenia, które potencjalnie mogą stać się błędem — przypadki, gdy pamięć podręczna w pamięci zbliża się do pojemności lub wywołanie bazy danych przekracza wstępnie zdefiniowany czas trwania. Dziennik poziomu ostrzeżenia aktywuje automatyczne ostrzeganie, a użyty podczas rozwiązywania problemów umożliwi zrozumienie zachowania systemu przed jego awarią.
  • Poziom krytyczny wskazuje na wystąpienie poważnych błędów, które mogą spowodować przerwanie działania aplikacji i poważne awarie. Logowanie na poziomie krytycznym zwykle oznacza koniec programu. Dlatego z tego programu należy korzystać oszczędnie, tylko wtedy, gdy wyjście jest jedyną rozsądną akcją do wyboru.

Zastosuj format dziennika, który możesz przeanalizować bez większego nakładu pracy

Nie jest pożądane, aby platforma obserwowalności nie mogła wyodrębnić danych z dzienników. Aby uniknąć takiej sytuacji, musisz użyć formatu dziennika, który możesz łatwo przeanalizować. Ponadto utrzymuj spójną strukturę dziennika, aby dane można było łatwo gromadzić i agregować.

W przypadku kilku platform służących wspólnemu celowi ustandaryzuj format dziennika dla wszystkich aplikacji. Ułatwi to proces włączania danych do platformy obserwowalności, nawet jeśli zespoły zaangażowane w każdą aplikację wymagają wglądu w różne atrybuty. A jeśli używasz niestandardowego formatu, ustaw wyzwalacze typu dziennika i utwórz reguły analizowania zdefiniowane przez klienta.

Wykorzystaj skuteczne narzędzia i solidne ramy do tworzenia dzienników

Wykorzystaj wypróbowane i przetestowane struktury i narzędzia rejestrowania zamiast odkrywać koło na nowo, tworząc własne środowisko rejestrowania. Ten ruch nie tylko zaoszczędzi Twój czas i kłopoty. Co więcej, spójna struktura rejestrowania zawiera następujące funkcje.

Standardowe funkcje platformy rejestrowania

  • Konfigurowanie różnych programów dołączających, z których każdy ma swój własny niestandardowy wzorzec dziennika i format wyjściowy
  • Automatyczne dodawanie nazwy rejestratora i znacznika czasu
  • Zapewnienie obsługi kilku poziomów bezpieczeństwa oraz możliwość filtrowania według tych poziomów

Zaawansowane funkcje platformy logowania

  • Konfigurowanie różnych progów poziomu dziennika dla różnych składników kodu
  • Zatrudnienie stratnego appendera, który upuszcza wydarzenia na niższym poziomie, gdy kolejki się zapełniają
  • Korzystanie z dołączacza podsumowującego logi, który będzie wyświetlał za pośrednictwem wiadomości liczbę powtórzeń określonej wiadomości; zamiast powtarzać to tyle razy.
  • Umieszczenie progu na poziomie dziennika, a następnie skonfigurowanie go tak, aby „wyprowadzało również N wierszy dziennika niższego poziomu”, gdy ważność dziennika jest wysoka.

Twórz zwięzłe komunikaty dziennika, które są przyjazne dla programistów

Jeśli twoje komunikaty dziennika zawierają mniej informacji, trudno będzie uchwycić niezbędne informacje potrzebne do stworzenia kontekstu każdego kluczowego zdarzenia. A jeśli komunikaty dziennika są zbyt długie, pojawią się problemy z wydajnością. Na przykład duże pliki dzienników oznaczają większą liczbę operacji we/wy i większe zużycie miejsca na dysku, a jeśli ten aspekt nie jest obsługiwany przez system plików, negatywnie wpłynie to na ogólną wydajność. Krótko mówiąc, ogromne logi zajmują pamięć, zmniejszają szybkość wyszukiwania dzienników i odwracają uwagę od podstawowego problemu, co utrudnia debugowanie.

Aby rozwiązać ten problem, należy zoptymalizować komunikaty dziennika. W tym celu musisz dokładnie zrozumieć oczekiwania funkcjonalne i niefunkcjonalne systemu, a także odpowiednio zaplanować jakość i ilość komunikatów, które będziesz logować. Krótko mówiąc, musisz zachować idealną równowagę między jakością a ilością komunikatów w dzienniku — każdy komunikat dziennika powinien być znaczący i odpowiedni do kontekstu. Na przykład, gdy aplikacja nie łączy się i nie pobiera danych z wewnętrznego interfejsu API, rejestrowanie komunikatów o błędach z interfejsu API lub informacji o stanie sieci ekosystemu jest ważniejsze niż uwzględnianie informacji o liczbie uruchomionych aplikacji lub ilości pamięci używane przez aplikację.

Praktyki rejestrowania aplikacji, których należy unikać

Rejestrowanie wrażliwych danych bez odpowiedniego szyfrowania

Dzienniki aplikacji nie powinny ujawniać następujących danych wrażliwych:

  • Dane osobowe lub informacje umożliwiające identyfikację , takie jak nazwa użytkownika, imię/nazwisko, data urodzenia, płeć, adres rozliczeniowy/adres pocztowy, identyfikator e-mail, numer kontaktowy, numer karty kredytowej, numer ubezpieczenia społecznego itp.
  • Nazwy firm/informacje kontaktowe , takie jak nazwy firm; osoby powiązane, w tym personel, klienci itp.; relacje biznesowe; oraz transakcje biznesowe ze stronami trzecimi.
  • Poświadczenia bezpieczeństwa , hasła i tokeny uwierzytelniania
  • Dane finansowe, takie jak dane karty, numery kont bankowych i kwoty transakcji.

Większość przepisów/regulacji dotyczących prywatności, takich jak RODO, HIPAA i CCPA, odradza wyświetlanie wyżej wymienionych informacji w dziennikach, ponieważ może to prowadzić do naruszeń bezpieczeństwa i poważnych procesów sądowych. Zgodnie ze standardowym protokołem, jeśli w dziennikach znajdują się jakiekolwiek dane finansowe, należy je całkowicie zamaskować lub ukryć. A jeśli trzeba wspomnieć o jakiejkolwiek transakcji biznesowej, należy użyć wygenerowanego przez system identyfikatora zdarzenia zamiast prawdziwych nazw/identyfikatorów biznesowych.

Jak zapewnić bezpieczeństwo, jeśli musisz rejestrować wrażliwe dane użytkownika w środowiskach nieprodukcyjnych?

  • Określ informacje, które mają być ukryte w dziennikach — dołączając atrybut do każdego pola i podając jego poziom widoczności za pomocą poleceń takich jak „pokaż”, „ukryj”, „maskuj” i „szyfruj”.
  • Napisz parsery do filtrowania komunikatów dziennika i obsługi wrażliwych pól, które są zgodne ze wstępnie zdefiniowanymi instrukcjami, zgodnie z powiązanym środowiskiem.

Blokada dostawcy

Zarządzanie dziennikami powinno być zorganizowane w taki sposób, aby nie przypisywać Cię do konkretnego dostawcy. Z tego powodu unikaj twardych bibliotek dostawców; zamiast tego wybierz standardową bibliotekę/opakowanie, aby zapewnić przenośność. Użycie opakowania zapewniłoby, że kod Twojej aplikacji nie będzie wyraźnie wymieniał narzędzia innej firmy lub możesz utworzyć interfejs rejestratora zgodnie z metodologiami apt i dołączyć klasę, która go zaimplementuje. Następnie dodaj kod, który wywołuje stronę trzecią do tej klasy.

Rejestrowanie wiadomości tylko do rozwiązywania problemów

Wszyscy wiemy, że rozwiązywanie problemów jest kluczowym celem rejestrowania. Jednak komunikaty dziennika nie powinny być przeznaczone wyłącznie do rozwiązywania problemów, ponieważ komunikaty dziennika są niezwykle pomocne również w niektórych innych zadaniach. Tak więc, oprócz rozwiązywania problemów, możesz także rejestrować komunikaty dotyczące następujących zadań biznesowych:

  • Profilowanie: Dzienniki, które są oznaczone znacznikiem czasu — czasami do poziomu milisekund — mogą być używane jako skuteczne narzędzie do profilowania sekcji programu. Na przykład, jeśli rejestrujesz początek i koniec operacji, możesz wywnioskować określone metryki wydajności podczas rozwiązywania problemów bez konieczności dodawania tych metryk do samego programu.
  • Audyt: Przechwytuj ważne zdarzenia, stwierdzenia opisujące aktywność — logowanie, edytowanie itp. — użytkowników systemu.
  • Zbieranie raportów statystycznych : możesz zbierać interesujące statystyki dotyczące uruchomionego programu lub zachowania użytkowników. Możesz również podłączyć go do systemu alertów w celu wykrycia zbyt wielu błędów występujących z rzędu.

Słowa końcowe

Obecnie rejestrowanie odgrywa kluczową rolę w wielu aspektach każdego przedsiębiorstwa — analizie biznesowej, operacjach i strategiach marketingowych. Bardzo ważne jest przestrzeganie właściwych technik rejestrowania i skuteczne działanie dzienników. Przestrzeganie najlepszych praktyk w zakresie monitorowania i zarządzania logami pomoże Ci w płynnym prowadzeniu działalności biznesowej, szybszym rozwiązywaniu problemów, co skutkuje szybszym procesem rozwoju.

Aby uzyskać pomoc techniczną, skontaktuj się z Biz4Solutions, wysoce doświadczoną i kompetentną firmą outsourcingową zajmującą się tworzeniem oprogramowania w Indiach. Od ponad 10 lat oferujemy wyjątkowe usługi globalnej klienteli.