W celu wykrywania błędów, awaryjnego zakończenia pracy platformy, konfiguracji wydajności oraz innej analizy działania systemu 1C:Enterprise 8 wykorzystywany jest dziennik technologiczny. Nieuchronnie każdy administrator 1C:Enterprise musi kiedyś skorzystać z tego dziennika. W tym wpisie omówimy, jak włączyć dziennik technologiczny, skonfigurować go do zbierania wymaganych informacji oraz przeanalizujemy przykłady najbardziej przydatnych dzienników technologicznych.
Uruchamianie dziennika technologicznego.
Aby rozpocząć zbieranie danych do dziennika, należy umieścić plik logcfg.xml w katalogu bin\conf konkretnego wydania 1C:Enterprise 8.2, na przykład w c:\Program Files\1cv82\8.2.18.104\bin\conf\ na maszynie, na której działa serwer 1C:Enterprise. Serwer sprawdza ten plik raz na minutę. Format pliku wygląda następująco:
<config xmlns="http://v8.1c.ru/v8/tech-log">
<dump create="true" location="c:\dumps" prntscrn="true" type="2"/>
<log history="72" location="c:\logs">
<event>
<eq property="name" value="EXCP"/>
</event>
<property name="all"/>
</log>
</config>
gdzie c:\dumps i c:\logs to odpowiednio katalogi na zrzuty pamięci (dumpy) i protokoły, a history oznacza czas przechowywania dziennika w godzinach. (Zrzuty pamięci są potrzebne, jeśli planujesz wysyłać je bezpośrednio do firmy 1C; w innych przypadkach ten tag nie jest wymagany).
Uwaga! Aby poprawnie uruchomić dziennik technologiczny, należy zapewnić:
- użytkownik, pod którym uruchomiony jest serwer 1C:Enterprise, musi mieć uprawnienia do zapisu w tych katalogach; parametr history określa czas przechowywania dziennika w godzinach;
- w nazwach katalogów w pliku logcfg.xml wielkość liter ma znaczenie; C:\LOGS i c:\Log to różne katalogi;
- w tym samym pliku nie należy kończyć ścieżki ukośnikiem; ścieżka c:\logs\ nie będzie działać.
Objawem prawidłowego uruchomienia dziennika technologicznego jest pojawienie się w katalogu c:\logs katalogów rphost_XXXX, rmng_XXXX, ragent_XXXX.
Konfiguracja dziennika.
Konfiguracja dziennika w większości przypadków sprowadza się do opisania zdarzeń wymaganych do analizy (tag EVENTS) oraz wskazania wymaganych atrybutów. Lista dopuszczalnych wartości VALUE znajduje się w poniższej tabeli.
| ALL | Wszystkie zdarzenia | Wszystkie zdarzenia dziennika technologicznego |
| ADMIN | Czynność administracyjna | Czynności użytkownika administratora klastra serwerów 1C:Preedpriyatie 8.2 |
| CALL | Wywołanie przychodzące | Przychodzące zdalne wywołanie (wywołanie zdalne po stronie odbiorcy) |
| CONN | Połączenie z serwerem | Ustanowienie lub zerwanie połączenia TCP między procesami systemu „1C:Preedpriyatie” |
| CLSTR | Aktywność klastra | Wykonywanie operacji zmieniających działanie klastra serwerów |
| EDS | Zewnętrzne źródło danych | Wszystkie zdarzenia zewnętrznych źródeł danych |
| DB2 | IBM DB2 | Wykonywanie instrukcji SQL bazy danych IBM DB2 |
| DBMSSQL | Microsoft SQL Server | Wykonywanie instrukcji SQL bazy danych Microsoft SQL Server |
| DBPOSTGRS | PostgreSQL | Wykonywanie instrukcji SQL bazy danych PostgreSQL |
| DBORACLE | Oracle Database | Wykonywanie instrukcji SQL bazy danych Oracle Database |
| DBV8DBEng | SQL, bazodanowa baza plików | Wykonywanie instrukcji SQL bazodanowej bazy plików |
| EXCP | Wyjątek | Sytuacja wyjątkowa aplikacji systemu „1C:Preedpriyatie”, która nie jest obsługiwana w sposób standardowy i może spowodować awaryjne zakończenie procesu serwerowego lub procesu klienckiego połączonego z nim |
| EXCPCNTX | Kontekst wyjątku | Zdarzenie, które rozpoczęło się, ale nie zakończyło w momencie wystąpienia sytuacji awaryjnej |
| HASP | Odwołanie do HASP | Odwołanie do sprzętowego klucza ochrony (HASP) |
| LEAKS | Wyciek pamięci | Zdarzenie związane z wyciekiem pamięci, który może być spowodowany błędami w kodzie konfiguracji |
| MEM | Wyciek pamięci serwera | Zdarzenie związane ze wzrostem objętości pamięci zajmowanej przez procesy serwerowe (ragent, rmngr, rphost). |
| PROC | Proces | Zdarzenie odnoszące się do procesu jako całości i wpływające na dalszą sprawność działania procesu. Np.: start, zakończenie, awaryjne zakończenie itp. |
| QERR | Błąd zapytania | Zdarzenie związane z wykryciem błędów kompilacji zapytania lub ograniczeń na poziomie rekordów i pól bazy danych |
| SCALL | Wywołanie wychodzące | Wychodzące zdalne wywołanie (wywołanie wychodzące po stronie źródła wywołania). |
| SCOM | Kontekst serwerowy | Zdarzenie utworzenia lub usunięcia kontekstu serwerowego, zwykle związanego z bazą informacyjną. |
| SDBL | Zapytanie do bazy danych | Wykonywanie zapytań do modelu bazy danych 1C:Preedpriyatie 8.2 |
| SESN | Sesja | Czynność odnosząca się do sesji pracy. Np.: rozpoczęcie sesji, zakończenie sesji itp. |
| SRVC | Serwisy klastra | Zdarzenia związane z uruchamianiem, zatrzymywaniem i powiadamianiami serwisów klastra serwerów |
| TLOCK | Blokada | Zarządzanie blokadami transakcyjnymi w trybie zarządzanym |
| TDEADLOCK | Blokada wzajemna | Wykryto blokadę wzajemną w trybie zarządzanym |
| TTIMEOUT | Limit czasu | Przekroczono maksymalny czas oczekiwania na blokadę transakcyjną |
| VRSCACHE | Bufor http | Działanie bufora wywołań serwerowych |
| VRSREQUEST | Zapytanie do serwera | Zapytanie do serwera o pewien zasób |
| VRSRESPONSE | Odpowiedź serwera | Odpowiedź serwera |
| SYSTEM | Zdarzenia systemowe | Zdarzenia systemowe mechanizmów platformy, przeznaczone do analizy przez pracowników firmy „1C” |
Przykłady dzienników
- Zapytania długotrwałe.
Zbierzemy dane o zapytaniach, które wykonują się dłużej niż 10 sekund. Wersja dla serwera bazy danych MSSQL.
<config xmlns="http://v8.1c.ru/v8/tech-log"> <log location="C:\Temp\1cv8logs\2" history="1"> <event> <eq property="Name" value="DBMSSQL" /> </event> <property name="sql"> <event> <eq property="Name" value="DBMSSQL" /> <gt property="Duration" value="10000" /> </event> </property> </log> </config>
- Wszystkie błędy, w tym zrzuty pamięci.
<config xmlns="http://v8.1c.ru/v8/tech-log"> <dump create="true" location="d:\dumps" prntscrn="true" type="2"/> <log history="72" location="d:\logs"> <event><eq property="name" value="EXCP"/></event> <event><eq property="name" value="EXCPCNTX"/></event> <event><eq property="name" value="PROC"/></event> <event><eq property="name" value="ADMIN"/></event> <event><eq property="name" value="MEM"/></event> <event><eq property="name" value="LEAKS"/></event> <property name="all"/> </log> </config> Если ваше предпр
Jeśli twoje przed
