Ręczne przeglądanie i edycja danych z plików logów – poradnik

Pliki logów są przechowywane i zapisywane z rozszerzeniem .sqlite3, co oznacza że są plikami bazy danych SQLite. Czasami zachodzi potrzeba bezpośredniej podglądu oraz edycji danych przechowywanych w plikach logów, np. gdy chcemy przejrzeć historię wartości rejestrów, które nie były uwzględnione w zdefiniowanych raportach lub gdy chcemy dostać do danych dostępnych za pomocą API bez pisania służącej do tego ekstra aplikacji. W tej sytuacji możemy to zrobić za pomocą dowolnej przeglądarki plików w formacie .sqlite3. Pokażemy to na przykładzie programu DB Browser for SQLite. 

Krok 1.

Instalujemy DB Browser for SQLite ze strony  https://sqlitebrowser.org/dl/.

Źródło: https://sqlitebrowser.org/

Krok 2.

Pobieramy szukany plików logów zgodnie z instrukcją w artykule Serwer FTP z folderu „log”.

Pliki logów, które będą nam potrzebne, posiadają rozszerzenie „.sqlite3”. Pliki o rozszerzeniu „.sqlite3-shm” oraz „.sqlite-wal” są plikami tymczasowymi zgodnie z dokumentacją SQLite. Logi i wszystkie dane zapisywane są w plikach o nazwie „log-XXXX-YY-ZZ..sqlite3”, gdzie „XXXX-YY-ZZ” dzień, z którego pochodzą dane. Każdego dnia jest tworzony nowy plik.

Krok 3.

Otwieramy plik logów w DB Browser for SQLite.

W zakładce „Struktura danych” widzimy strukturę naszej bazy danych. Jest to widok pokazujący zawartość logu, w którym znajdziemy wszystko co WebHMI zapisuje w pamięci:

  • „alerts” – alarmy
  • „alerts_comments” – komentarze do alarmów
  •  „log” – logi zmiennych etc.

Przejdźmy teraz do zakładki „Przeglądarka danych”, gdzie będziemy mogli podejrzeć zawartość tabel.

Jako przykład wybrałem tabelę „log_60”, gdzie gromadzone są wartości zapisywane w logu co 60 minut. Widzimy wszystkie informacje, które możemy także odczytać na WebHMI, czyli patrząc kolumnami:

  • „regId” – numer ID rejestru,
  • „min” – wartość minimalna z tego przedziału czasowego,
  • „max” – wartość maksymalna z tego przedziału czasowego,
  • „datetime” – czas wpisu do logu w formacie Unix TimeStamp (w dalszej części pokażemy sposób w jaki przekonwertować go na czytelne datę i czas).

Krok 4.

Eksportujemy dane do pliku CSV za pomocą polecenia „Plik” → „Eksportuj” → „Tabele do pliku CSV…”.

Krok 5.

W ostatnim kroku otworzymy plik CSV i poprawimy formatowanie danych w celu zwiększenia jego czytelności.

Widok po rozdzieleniu tekstu na kolumny po wykorzystaniu polecenia „Dane” → „Narzędzia danych” → „Tekst jako kolumny” z  przecinkiem jako wybranym znakiem rozdzielenia.

W kolumnie „datatime” znajdują się czasy i daty wykonania wpisu do logu w formacie Unix TimeStamp, czyli ilość sekund jaka minęła od daty 1970-01-01. Jest to informacja dla człowieka nieczytelna, więc w celu jej rozkodowania należy użyć formuły =(((E2/60)/60)/24)+DATA(1970;1;1) oraz zmienić formatowanie kolumn na niestandardowe, a w typie wpisać dd.mm.rrrr gg:mm:ss, dzięki czemu uzyskamy w jednej kolumnie datę i czas z dokładnością do sekundy.

W ten sposób otrzymaliśmy dostęp do danych zapisanych na WebHMI, na których nam zależało.

Podsumowanie

W tym artykule pokazaliśmy w jaki nieskomplikowany sposób możemy dobrać się do danych zaszytych w WebHMI. Wykorzystaliśmy do tego przeglądarkę plików w formacie .sqlite oraz proste formuły w Excelu.

W razie potrzeby korzystajcie z naszych artykułów w zakładce Wiadomości oraz poradników w Bazie Wiedzy Jeśli tam nie znajdziecie rozwiązania swoich problemów – piszcie na support@zestapro.pl, zawsze udzielimy kompetentnej pomocy.

Potrzebujesz oferty?

Zapraszamy do kontaktu. Wystarczy podać dane firmy a my dostarczymy ofertę na WebHMI najszybciej jak to możliwe.