Kolegovia, pokračujeme v sérii článkov venovaných technologickému magazínu.

Dnes si ukážeme prax rozboru log logov TJ.

Ďalšie články zo série Technology Magazine:

Analýza technologických denníkov

Čo sa z tohto článku dozviete?

  • Pozrime sa bližšie na prihlásenia 1C: Enterprise 8
  • Pozrime sa podrobne na formát denníka Technologický časopis
  • Pozrime sa na príklad denníka so zaznamenanými údajmi

Pozrime sa, čo sa stane, ak vytvoríme súbor logcfg.xml s vyššie uvedenou štruktúrou a umiestnite ju do adresára "C:\Program Files\1Cv82\conf"

Počkáme 60 sekúnd a otvoríme adresár "C:\1C_Info\Logs", pretože to je presne to, čo sme uviedli v riadku 3 súboru logcfg.

Ak je adresár 1C_Info nie je na disku, potom sa ho server 1C pokúsi vytvoriť, existuje však riziko, že používateľ, pod ktorým služba 1C beží, nebude mať práva. Preto sa odporúča vytvoriť adresáre pre protokoly manuálne a skontrolovať, či má server 1C práva na zápis do tohto adresára.

Výsledkom je, že v adresári vidíme 3 podadresáre.

Každý klastrový proces vytvoril adresár, ktorý obsahuje protokoly iba tohto procesu a odvtedy Mám len 3 procesy, takže sú tam aj 3 adresáre.

Adresár je vytvorený pomocou šablóny ProcessName_PIDProcess. PID potrebné na rozlíšenie medzi procesmi s rovnakým názvom.

Log súbor je pomenovaný podľa vzoru YYMMDDHCH.log.

Ak je protokol starší ako počet hodín uvedený v parametri histórie súbor logcfg, potom ho platforma automaticky odstráni.

Pozrime sa bližšie na formát protokolu technológie.

Udalosť sa zapíše do denníka až po jej dokončení, pretože je potrebné zaznamenať trvanie udalosti.

Riadok denníka má formát:

Mm:ss.ttt-d,<ИмяСобытия>, <Уровень>, <Свойства>

mm– číslo minúty v aktuálnej hodine.

ss– číslo sekundy v aktuálnej minúte.

tttt– číslo desaťtisíciny aktuálnej sekundy pre 8,3 je tu zobrazené číslo milióntiny.

d– trvanie udalosti v desaťtisícinách sekundy, 8,3 v milióntine.

<ИмяСобытия> – názov udalosti.

<Уровень> – úroveň udalosti v zásobníku aktuálneho vlákna.

<Свойства> - vlastnosti udalosti oddelené čiarkami, hodnoty vlastností oddelené znamienkom «=» .

Pozrime sa na to na príklade.

Existuje denník s nasledujúcim obsahom:

00:16 - to sú minúty a sekundy konca udalosti. Dátum a hodinu udalosti možno prevziať z názvu súboru denníka. Podujatie sa skončilo 6. apríla 2015 o 11:00 minúte a 16 sekunde. 8640 – pre 8,2 je to desať tisícin sekundy. A na 8,3 - milióntiny sekundy od okamihu, keď sa udalosť skončí. 1 je trvanie udalosti. V 8.2 je trvanie uvedené v desaťtisícinách sekundy, v 8.3 v milióntinach sekundy. Ak potrebujete nastaviť filter na trvanie, môžete použiť názov vlastnosti „Trvanie“. DBMSSQL je názov udalosti. V tomto prípade vykonanie inštrukcií MS SQL Server DBMS. 3 – úroveň udalosti. Ďalej sú to vlastnosti udalosti DBMSSQL a každá udalosť má svoj vlastný súbor vlastností Úplný zoznam vlastností pre všetky udalosti nájdete v príručke správcu. Tu sa bližšie pozrieme na vlastnosti len pre aktuálnu udalosť. Proces– Popisuje proces, pre ktorý je tento protokol napísaný. Všetky udalosti majú túto vlastnosť. V mojom prípade je zapísaný protokol procesov rphost. P:názov procesu– názov informačnej základne 1C. Udalosť bola vytvorená v databáze s názvom Deadlock. T:clientID- identifikátor spojenia s klientom cez TCP. T:názov aplikácie– identifikátor klientskeho programu. Tie. kto presne zapríčinil udalosť, v mojom prípade ide o prácu na pozadí. T:connectID– číslo spojenia s infobázou. ID relácie– číslo relácie priradené aktuálnemu vláknu. Ak aktuálne vlákno nemá priradenú reláciu, vlastnosť sa nepridá. Usr– meno používateľa infobase, pod ktorým sa tento tok vykonáva. Ak používateľ nie je definovaný, nahradí sa hodnota DefUser. Trans– zobrazuje, či je transakcia otvorená na začiatku udalosti alebo nie. 1 – otvorené, 0 – nie. dbpid– číslo spojenia servera 1C s databázovým serverom. SQL– text SQL príkazu. Najčastejšie obsahuje text SQL dotazu s parametrami. Riadky– počet riadkov, ktoré dotaz vrátil. Ovplyvnené riadky– počet riadkov, ktoré dotaz zmenil v databáze. Kontext– aký riadok kódu v jazyku 1C vygeneroval túto udalosť. Pre nás asi najzaujímavejšia udalosť.

Burmistrov Andrej

V nasledujúcich článkoch sa pozrieme na „Udalosti“, ako aj na ich filtrovanie TJ.

Medzitým priložte prijatý materiál k svojej testovacej informačnej základni :)

(alebo časť pomocou filtra), napríklad:
— spustiteľný kód 1C:Enterprise 8;
— Transact-SQL kód pre DBMS;
— interaktívne akcie používateľov,

- chybové hlásenia,

Poznámka. Ak TJ stále nie je zapísaný, udeľte všetkým práva na tento priečinok (dočasne, aby ste sa uistili, že práva sú správne).

3) V adresári technologického denníka by nemali byť žiadne nadbytočné súbory. Adresár obsahujúci nadbytočné súbory neumožní vytvorenie denníka (logov).

4) Neuchovávajte výpisy a protokoly spolu, pretože po stanovenom intervale (predvolená 1 hodina) sa obsah úplne vymaže a výpisy stratíte

nastavenie

Je lepšie nakonfigurovať TJ (pomocou filtrov - logcfg.xml tagov) len pre skúmané udalosti, zvyšok nezbierať, inak zažijete „nedostatok miesta na disku“ a spomalíte výkon servera.

1) Jednoduchšie je konfigurovať filtre pomocou spracovania s ITS nastaveniami Technologického časopisu.epf, ale zároveň pamätajte, že nové funkcie najnovších vydaní nemusia byť zahrnuté v návrate (každá nová verzia pridáva nové funkcie, sú nepremietne do spracovania). V tomto prípade upravte súbor logcfg.xml manuálne.

2) Ak chcete zastaviť zhromažďovanie protokolov, stačí premenovať súbor, nie je potrebné reštartovať server, nastavenia sa prepočítavajú každú minútu „za behu“;

3) nakonfigurujte súbor logcfg.xml na filtrovanie udalostí pre špecifické zabezpečenie informácií, použite „p:processName=“

4) http://users.v8.1c.ru/Adm1936.aspx – príklady nastavení

Podrobnosti

Je jasné, že zhromažďovanie protokolov nestačí, aby sa vyriešil konkrétny problém.

1) Ťažkosti s čítaním TJ:

— Vyžaduje si dobré pochopenie architektúry systému

— Texty žiadostí sú registrované v internom jazyku 1C:Enterprise av jazyku DBMS

2) Technologické protokolové súbory sú uložené v podadresároch. Názov každého podadresára technologického denníka jedného procesu bude vyzerať takto:<ИмяПроцесса>_<ИдентификаторПроцесса>, napríklad: rphost_4076. Názov súboru protokolu je určený šablónou YYMMDDHCH.log. Napríklad v protokole 07051819.log je názov súboru vytvorený od 18. mája 2007, 19 hodín)

3) Protokol na analýzu je možné nahrať do Excelu napríklad pomocou čiarky ako oddeľovača

Ak chcete použiť protokol na analýzu chybových hlásení, použite bezplatnú službu.

ak ste nenašli odpoveď na svoju otázku, rozšírme materiál

— spustiteľný kód 1C:Enterprise 8;
— Transact-SQL kód pre DBMS;
— interaktívne akcie používateľov;
— chybové hlásenia;
- úniky pamäte.

V prípade abnormálneho ukončenia vám protokol umožňuje vytvoriť výpis pamäte a kópiu obrazovky na prenos vývojárom.

Ak chcete povoliť technologický denník, musíte:
Vytvorte súbor logcfg.xml v priečinku C:\Program Files (x86)\1cv82\8.2.15.301\bin\conf (cesta - adresár 1C Enterprise) na serveri 1C Enterprise.
Potom musíte zapísať cesty k vytvoreným priečinkom do súboru logcfg.xml (kde špecifikovaná cesta 1 je cesta k protokolom a špecifikovaná cesta 2 je cesta k výpisom):

Tu je príklad nastavení z môjho servera:























Po dokončení týchto krokov aplikácia 1cv8 automaticky začne ukladať systémové informácie o všetkých chybách, ktoré sa vyskytli v systéme do týchto adresárov.
Po dokončení analýzy je možné protokol procesu deaktivovať odstránením alebo premenovaním súboru logcfg.xml.
Predpokladá sa, že na počítačoch, kde bude tento protokol povolený, môžu súbory zaberať pomerne veľké množstvo miesta na disku (samozrejme relatívne). Preto odporúčam špecifikovať cesty k diskom s veľkým množstvom voľného miesta.
1) Ak chcete úspešne vytvárať protokoly, musíte vytvoriť adresáre pre protokoly (napríklad „D:\1Clog“) a výpisy (napríklad „D:\1Cdumps“), je lepšie ich vytvárať nie na systémovej jednotke.
2) Pre tieto TG adresáre musia byť nakonfigurované nasledujúce práva:
— plné práva na katalóg technologických časopisov;
— práva na čítanie pre vlastníka adresára technologického denníka.
Poznámka. Ak TJ stále nie je zapísaný, udeľte všetkým práva na tento priečinok (dočasne, aby ste sa uistili, že práva sú správne).
3) V adresári technologického denníka by nemali byť žiadne nadbytočné súbory. Adresár obsahujúci nadbytočné súbory neumožní vytvorenie denníka (logov).
4) Neuchovávajte výpisy a protokoly spolu, pretože po stanovenom intervale (predvolená 1 hodina) sa obsah úplne vymaže a výpisy stratíte
Je lepšie nakonfigurovať TJ (pomocou filtrov - logcfg.xml tagov) len pre skúmané udalosti, zvyšok nezbierať, inak zažijete „nedostatok miesta na disku“ a spomalíte výkon servera.
1) Jednoduchšie je konfigurovať filtre pomocou spracovania s ITS nastaveniami Technologického časopisu.epf, ale zároveň pamätajte, že nové funkcie najnovších vydaní nemusia byť zahrnuté v návrate (každá nová verzia pridáva nové funkcie, sú nepremietne do spracovania). V tomto prípade upravte súbor logcfg.xml manuálne.
2) Ak chcete zastaviť zhromažďovanie protokolov, stačí premenovať súbor, nie je potrebné reštartovať server, nastavenia sa prepočítavajú každú minútu „za behu“;
3) nakonfigurujte súbor logcfg.xml na filtrovanie udalostí pre špecifické zabezpečenie informácií, použite „p:processName=“

Pomocou týchto nastavení zhromažďujem informácie o:

výnimočné situácie aplikácií systému 1C: Enterprise 8.2, ktoré sa nespracúvajú normálne a môžu spôsobiť núdzové ukončenie serverového procesu alebo klientskeho procesu, ktorý je k nemu pripojený.

    udalosti, ktoré sa začali, ale neskončili, keď nastala mimoriadna situácia.

    udalosti súvisiace s celým procesom a ovplyvňujúce ďalší výkon procesu. Napríklad: začiatok, koniec, zlyhanie atď.

    kontrolné akcie správcu klastra serverov 1C:Enterprise 8.2

    udalosti súvisiace so zvýšením množstva pamäte obsadenej procesmi servera (ragent, rmngr, rphost).

    udalosti úniku pamäte, ktoré môžu byť spôsobené chybami v konfiguračnom kóde.


Nie je to tak dávno, čo som pre seba objavil niečo nové, ukázalo sa, že existuje technologický časopis (TJ). Čo je to za zviera a prečo je to potrebné, pokúsim sa odpovedať v tomto článku.

Ako hovoriť 1C sám Technologický časopis Systémy 1C:Enterprise 8 možno použiť na analýzu technologických problémov systému a analýzu núdzových koncoviek. Registruje informácie zo všetkých aplikácií 1C:Enterprise 8 spustených na danom počítači.Z tejto definície je hneď zrejmá užitočnosť tohto nástroja, môžeme sa z nej dozvedieť napríklad:

  • Pri vykonávaní akého kódu zlyhávajú pracovné procesy servera?
  • ktoré dopyty sú pomalé a odkiaľ sa volajú?
  • Zistite, či došlo k zablokovaniu alebo vypršaniu časového limitu
  • a oveľa viac.
čo je TJ? A predstavuje TJkolekcia textových súborov uložených v určenom adresári.
Tieto súbory možno rozdeliť do 2 skupín
  • výpisy súborov
  • log súbory
Denníky– ide o súbory s príponou log, kde sú informácie uložené v textovej forme.
Skládky– ide o súbor s príponou mdmp, ktorý obsahuje obsah pamäte RAM procesu v čase zlyhania.


Pokračuj. V akom adresári sú uložené súbory TJ?
Predvolené TJ sa vytvorí v adresári:
%USERPROFILE%\Local Settings\Application Data\1C\1Cv82\
Ak používate systém Windows Vista a vyšší, použije sa adresár: %LOCALAPPDATA%\1C\1Cv82\
Pre 8.3 sa namiesto katalógu 1Cv82 používa 1Cv8.
Tento adresár je však možné zmeniť. Viac o tom nižšie.
Ako zapnúť TJ?
V predvolenom nastavení je protokol procesov povolený a nakonfigurovaný tak, aby ukladal minimálne výpisy. Pomocou špeciálneho súboru môžeme nakonfigurovať TJ. Menovite môžeme meniť adresáre TJ, označovať, ktoré udalosti sa majú evidovať v TJ atď.
Hovorím o súbore nastavení TJlogcfg.xml .

Tento súbor by sa mal nachádzať napríklad v adresári conf v priečinku s nainštalovaným 1c
"D:\Program Files\1Cv8\conf"
Pozrime sa na príklad súboru nastavení pre kompletnú TZ.
config xmlns="http://v8.1c.ru/v8/tech-log"> Tento konfiguračný súbor definuje výstup všetkých udalostí do protokolu procesov spolu so všetkými vlastnosťami. Denník sa uloží na týždeň (24 hodín). Objem výstupných informácií však bude veľmi veľký.
Je vhodnejšie nakonfigurovať TJ iba pre udalosti, ktoré nás zaujímajú, napríklad chceme vidieť, či sa v systéme vyskytli chyby alebo dlhé operácie (>10 sekúnd)

Najčastejšie podujatia TJ: EXCP– výnimočné situácie systémových aplikácií 1C:Enterprise, ktoré sa nespracúvajú normálne a môžu spôsobiť núdzové ukončenie serverového procesu alebo klientskeho procesu, ktorý je k nemu pripojený. EXCPCNTX– udalosti, ktoré sa začali, ale neskončili v čase vzniku mimoriadnej situácie. DBMSSQL– vykonávanie príkazov SQL z DBMS Microsoft SQL Server. Každý DBMS používa svoju vlastnú udalosť (BPOSGRS, DBORACLE, DB2, DBV8DBENG – verzia súboru) ADMIN– akcie správcu klastra v konzole klastra. PROC– udalosti súvisiace s celým procesom a ovplyvňujúce ďalší výkon procesu. Napríklad: začiatok, koniec, zlyhanie atď. ZAVOLAJTE– prichádzajúci vzdialený hovor (vzdialený hovor na strane príjemcu hovoru). Ak napríklad zavoláte funkciu na serveri z klienta, udalosť CALL sa zaznamená do TJ na serveri. SCALL– odchádzajúce vzdialené volanie (odchádzajúce volanie na strane zdroja hovoru). Napríklad, ak zavoláte funkciu na serveri z klienta, udalosť SCALL sa zaznamená do TJ na klientovi. SESN– úkony súvisiace s pracovným stretnutím. Napríklad: začiatok relácie, koniec relácie. TDEADLOCK– bolo zistené zablokovanie v režime riadeného blokovania. TTIMEOUT– chyba časového limitu na spravovaných zámkoch. TLOCK– nastavenie transakčného zámku v režime riadeného uzamykania.
Pomocou nastavení TJ môžete odfiltrovať takmer všetky udalosti, ktoré nás zaujímajú.
Povedzme, že chceme v TC vidieť iba chyby a informácie o dopytoch do tabuľky AccRg105, ktoré trvali viac ako 3 sekundy. Potom by logcfg malo vyzerať takto.
Logické OR funguje medzi týmito dvoma, t.j. Keď nastane niektorá z udalostí, bude to zaznamenané v TJ.
Logické AND funguje vo vnútri jedného, ​​t.j. daná udalosť sa zaznamená len vtedy, ak sú splnené všetky podmienky v rámci jednej.
Pri tomto nastavení sa udalosť EXCP bude zaznamenávať vždy a udalosť DBMSSQL sa zaznamená iba vtedy, ak sa reťazec „AccRg105“ nachádza kdekoľvek v texte požiadavky a požiadavka bola vykonaná dlhšie ako 3 sekundy. Filter na trvanie udalosti musí byť nastavený na desaťtisíciny sekundy bez ohľadu na verziu platformy. V tomto príklade používame niekoľko podmienok: eq, gt a like.
Môžu sa použiť tieto podmienky:

  • eq – rovná sa;
  • ne – nerovná sa;
  • gt – viac;
  • ge – väčšie alebo rovné;
  • lt – menej;
  • le – menšie alebo rovné;
  • ako – zodpovedá maske.
Na záver pridám ešte pár poznámok:
Platforma načítava údaje zo súboru s nastaveniami raz za minútu, takže sa nevzrušujte a hneď skontrolujte súbory, o minútu budete mať pokoj)
Ak sa nechystáte odosielať údaje výpisu do 1C, nie je potrebné ich ukladať, neuvádzajte riadok umiestnenia výpisu v súbore nastavení.
Ak sa chystáte uložiť súbory TJ do iného adresára, ako je predvolený adresár, je lepšie si ho najskôr vytvoriť sami.

V testovacej databáze som zámerne vytvoril časový limit na zámku,
Použite to ako príklad

Kolegovia, začíname sériu článkov venovaných technologickému magazínu.

V tejto sérii sa pozrieme na to, ako použiť užitočný nástroj na preskúmanie problémov s výkonom a stabilitou 1C: Podnik- technologický časopis.

Nie všetci špecialisti o ňom vedia a len málokto vie, ako ho správne používať. Skúsme situáciu napraviť :)

Popis a zahrnutie technologického denníka

Čo sa z tohto článku dozviete?

  • Popis a účel nástroja Technologický časopis
  • Ako to zapnúť Technologický časopis V 1C:Podnik 8
  • Princíp vytvárania a ukladania protokolov a skládok

Popis TJ

TJ určené na skúmanie chýb, analýzu a diagnostiku rôznych problémov pri prevádzke platformy 1C: Podnik.

Pomocou TZ môžete zistiť, ktoré dotazy sa spúšťajú pomaly a odkiaľ sú volané, pri vykonávaní akého kódu havarujú pracovné procesy servera, kde uniká pamäť a mnoho iného.

Všetky nástroje na analýzu výkonnosti platformy využívajú TJ na získavanie informácií. Ak si želáte a dôkladne si preštudujete problém pomocou TJ, môžete si napísať vlastný nástroj na analýzu výkonnosti.

TJ možno zbierať pre procesy servera 1C aj pre klientske aplikácie. V súlade s tým bude množina udalostí, ktoré je možné zaznamenať do TD, odlišná.

Klientske protokoly a výpisy sú veľmi zriedka zaujímavé, takže v tomto článku budeme brať do úvahy TZ výlučne z pohľadu servera. Všetko tu napísané však platí aj pre protokoly klientov.

Pomocou TZ môžete zbierať protokoly a konfigurovať vytváranie skládok v prípade núdzového ukončenia procesu.

Denníky– toto sú súbory s príponou .log, kde sú informácie uložené v textovej forme.

Skládky je súbor s príponou .mdmp, ktorá obsahuje obsah pamäte RAM procesu v čase zlyhania.
Výpis môže byť mimoriadne potrebný na preskúmanie problémov so stabilitou platformy. Nemôžeme sami analyzovať skládky, pretože... Nemáme zdrojový kód platformy, ale môžeme ho poslať na technickú podporu alebo partnerské fórum a získať riešenie nášho problému.

Zapnutie TJ

V predvolenom nastavení je protokol procesov povolený a funguje, ale zhromažďuje veľmi obmedzené množstvo údajov.

Minimálne množstvo dát znamená 2 veci:

1) Vytváranie skládok minimálnej veľkosti v prípade núdzového vypnutia procesov klastra 1C ( ragant, rmngr alebo rphost).

Predvolene sa výpis vytvorí v adresári:

%USERPROFILE%\Local Settings\Application Data\1C\1Cv82\dumps

Ak používate Windows Vista a vyšší, použije sa adresár:

%LOCALAPPDATA%\1C\1Cv82\dumps

Pre 8.3 namiesto adresára 1Cv82 použité 1Cv8.

2) Pre 8.3 je súčasťou minimálneho TZ tvorba logov s jednou udalosťou SYSTÉM s úrovňou Chyba.

Protokoly sa ukladajú do adresára:

%USERPROFILE%\Local Settings\Application Data\1C\1Cv8\logs

Pre Windows Vista a staršie sa používa adresár:

%LOCALAPPDATA%\1C\1Cv8\logs

Tieto protokoly sa predvolene uložia na 24 hodín, po ktorých platforma odstráni súbory denníkov, ktoré prekročia túto hranicu.

Informácie z predvoleného TZ najčastejšie nestačia a musíte ich nakonfigurovať manuálne.

Ak chcete doladiť TJ, musíte vytvoriť súbor logcfg.xml s určitou štruktúrou na určitom mieste.

Tento súbor musí byť umiestnený v adresári:

C:\Program Files\1Cv82\conf (pre adresár 8.3 1Cv8)

V tomto prípade nastavenia TJ bude platiť pre všetky verzie 1C, ktoré sú nainštalované na tomto počítači, a pre všetkých používateľov. Táto možnosť sa používa najčastejšie a odporúčame ju použiť.

Pri nastavovaní MKC, služby monitorovania výkonu cloudu a ďalšie nástroje, kde je potrebné zadať cestu k logcfg, je tiež lepšie použiť tento konkrétny adresár, inak pri aktualizácii platformy alebo zmene používateľského mena, pod ktorým služba servera beží 1C, popísané nástroje prestanú fungovať a budete musieť zmeniť nastavenia.

Existujú však aj iné možnosti, aj keď sa používajú oveľa menej často. Popíšem len to, čo budete s najväčšou pravdepodobnosťou potrebovať.

Nastaviť TJ len pre jednu verziu platformy, umiestňujeme logcfg.xml v katalógu:

C:\Program Files\1Cv82\8.2.19.106\bin\conf

Kde 8.2.19.106 – toto je číslo verzie, ktoré potrebujete.

Je to extrémne zriedkavé, ale stále môže byť potrebné nakonfigurovať TJ samostatne pre každého používateľa, pod ktorým beží služba servera 1C.

Potom položíme logcfg v katalógu:

%USERPROFILE%\Local Settings\Application Data\1C\1Cv82\Conf

Pre Windows Vista a staršie:

%LOCALAPPDATA%\1C\1Cv82\Conf

Toto môže byť potrebné, ak máte napríklad 1 serverovú službu 1C sa používa ako pracovný a druhý sa používa na ladenie. V prípade potreby môžete služby spúšťať pod rôznymi používateľmi a zhromažďovať TJ len pre jednu z nich, aby sa nezaťažoval druhý server a nezbierali sa zbytočné údaje do protokolov, prípadne si pre každú zo služieb spravte vlastné nastavenia TJ.

Nastavenia z logcfg sa neprečítajú okamžite, ale každých 60 sekúnd a každý z klastrových procesov číta súbor nastavení nezávisle od iných procesov. Napríklad protokoly procesu rmngr sa môžu objaviť ako prvé a až po 45 sekundách protokoly rphost.

Vypnúť TJ stačí odstrániť alebo premenovať súbor logcfg.xml.

Burmistrov Andrej

V nasledujúcich článkoch sa pozrieme na nuansy nastavenia TJ a prax používania.

Medzitým priložte prijatý materiál k svojej testovacej informačnej základni :)