pmlogger(1)
NAMN
pmlogger — skapa ett arkiv för prestandamätvärden
SYNOPSIS
pmlogger [-CLNoPruy?] [-c konffil] [-D debug] [-d katalog] [-h värd]
[-H värdnamn] [-I version] [-K spec] [-l loggfil] [-m anteckning]
[-n pmnsfil] [-p pid] [-s slutsstorlek] [-t intervall]
[-T sluttid] [-U användarnamn] [-v volymstorlek]
[-V version] [-x fd] [arkiv]
BESKRIVNING
pmlogger skapar arkiv med prestandamätvärden som kan spelas upp av andra verktyg i Performance Co-Pilot, se PCPIntro(1). Dessa loggar utgör grunden för PCP-verktygens ”VCR”-modell och för tjänster för retrospektiv prestandaanalys.
Det obligatoriska argumentet arkiv är antingen basnamnet för de fysiska filer som utgör ett arkiv i det lokala filsystemet, eller den fjärranslutna HTTP-server som ska ta emot den loggade datan.
Det lokala argumentet arkiv kan innehålla metatecken enligt strftime(3), vilka ersätts innan arkivfilerna skapas. När pmlogger körs som en tjänst, se pmlogger_daily(1), är standardmallen för arkivets basnamn:
%Y%m%d.%H.%M
Fjärrformen av arkiv anger platsen för den pmproxy(1)-server som tar emot arkivkomponenterna medan de genereras av pmlogger. Det angivna värdet måste innehålla protokoll, värdnamn och valfri port, exempelvis:
http://example.com:44322
Denna pmproxy-server väljer ett arkivnamn baserat på starttiden, på liknande sätt som standardmodellen i pmlogger_check(1).
Flaggan -V anger versionen för det arkiv som skapas. Som standard används arkivversionen $PCP_ARCHIVE_VERSION — satt till 3 i aktuella PCP-versioner — och de enda värden som för närvarande stöds för version är 2 eller 3.
Om inte en annan värd anges med flaggan -h, eller när PMDA:er används direkt via flaggan -o, kontaktar pmlogger Performance Metrics Collector Daemon, pmcd(1), på den lokala värden och använder den som källa för de mätvärden som ska loggas.
För att ge nödvändig flexibilitet och kontroll över vad som loggas och när, hanterar pmlogger ett oberoende loggningstillstånd i två nivåer för varje instans av varje prestandamätvärde. På den första, obligatoriska nivån kan loggning vara on med ett tillhörande intervall mellan provtagningar, off eller maybe. I det senare fallet kan den andra, rådgivande nivån vara on med tillhörande intervall mellan provtagningar, eller off.
Den obligatoriska nivån gör det möjligt att universellt ange att vissa mätvärden måste loggas, eller inte får loggas. Standardtillståndet för alla instanser av alla mätvärden när pmlogger startar är obligatorisk maybe och rådgivande off.
Använd pmlc(1) för att fråga efter och ändra loggningstillståndet när pmlogger körs.
Om ett mätvärdes tillstånd är obligatoriskt, alltså on eller off, och en begäran görs om att ändra det till obligatorisk maybe, blir det nya tillståndet obligatorisk maybe och rådgivande off. Om ett mätvärdes tillstånd redan är rådgivande, alltså on eller off, och en begäran görs om att ändra det till obligatorisk maybe, behålls det nuvarande tillståndet.
Det är inte möjligt för pmlogger att samtidigt logga specifika instanser av ett mätvärde och alla instanser av samma mätvärde. Om specifika instanser loggas och en begäran görs om att logga alla instanser, kommer alla instanser av mätvärdet att loggas enligt den nya begäran, vilket ersätter tidigare loggningsbegäran för mätvärdet. En begäran om att logga alla instanser av ett mätvärde ersätter alla tidigare begäranden om att logga alla instanser. En begäran om att logga specifika instanser av ett mätvärde när alla instanser redan loggas avslås. För att göra detta måste loggning för alla instanser av mätvärdet först stängas av.
I varje fall kontrolleras begärans giltighet först. Exempelvis är en begäran om att ändra ett mätvärdes loggningstillstånd till rådgivande on aldrig tillåten när det för närvarande är obligatorisk off. Tillståndet måste först ändras till obligatorisk maybe.
Valfritt kan varje system som kör pmcd(1) också konfigureras att köra en ”primär” pmlogger-instans. Denna pmlogger-instans startas av:
$PCP_RC_DIR/pmlogger
och påverkas av följande filer:
$PCP_SYSCONF_DIR/pmlogger/control $PCP_SYSCONF_DIR/pmlogger/control.d/* $PCP_SYSCONFIG_DIR/pmlogger $PCP_SYSCONF_DIR/pmlogger/pmlogger.options $PCP_VAR_DIR/config/pmlogger/config.default
Använd chkconfig(8), systemctl(1) eller motsvarande plattformsspecifika kommandon för att aktivera eller inaktivera den primära pmlogger-instansen.
Den primära pmlogger-instansen identifieras med flaggan -P. Det får högst finnas en ”primär” pmlogger-instans på varje system. Den primära pmlogger-instansen, om någon finns, måste köras på samma värd som den pmcd(1) den ansluter till, om någon sådan anslutning används. Därför är flaggorna -h och -P ömsesidigt uteslutande.
Loggning av vissa mätvärden är möjlig även utan en lokal pmcd(1), genom driftläget ”lokal kontext”. Detta aktiveras med flaggan -o, och gör att pmlogger använder lokala DSO-PMDA:er i stället för att kommunicera med pmcd(1). När lokal kontext används kan flaggan -K användas för att styra vilka DSO-PMDA:er som ska göras tillgängliga. Argumentet spec följer syntaxen som beskrivs i pmSpecLocalPMDA(3). Mer än en -K-flagga kan användas.
När pmlogger startas som en icke-primär instans avslutas den omedelbart om konfigurationsfilen inte leder till någon schemalagd loggning av mätvärden. Flaggan -L åsidosätter detta beteende och gör att en icke-primär pmlogger-instans ligger kvar, förmodligen i väntan på framtida dynamisk omkonfiguration och tillståndsändring via pmlc(1).
pmlogger ligger också kvar utan att flaggan -L används om alla mätvärden som ska loggas är mätvärden som loggas en enda gång. När dessa engångsmätvärden har loggats genereras ett varningsmeddelande om att händelsekön är tom och att inga fler händelser kommer att schemaläggas.
Som standard skrivs alla diagnostik- och felmeddelanden från pmlogger till filen:
pmlogger.log
i den katalog där pmlogger startas. Flaggan -l kan användas för att ändra standardbeteendet. Om loggfilen inte kan skapas eller inte är skrivbar skrivs utdata i stället till standardfel. Om loggfil för flaggan -l är -, alltså -l-, skrivs loggmeddelanden till standardutdata. Detta kan vara särskilt användbart när pmlogger körs manuellt i stället för som tjänstedemon.
Flaggan -N instruerar pmlogger att meddela en tjänstehanterare, normalt systemd(1), när den har startat och är på väg att börja skriva PCP-arkiv. Denna flagga används normalt bara när pmlogger körs som demontjänst under kontroll av en tjänstehanterare. För mer information, se __pmServerNotifyServiceManagerReady(3) och systemd(1). På plattformar som inte använder en tjänstehanterare med stöd för notifieringar är flaggan -N i praktiken en no-op.
Om flaggan -s anges instrueras pmlogger att avsluta efter att en viss storlek i poster, byte eller tidsenheter har ackumulerats. Om slutstorlek är ett heltal skrivs slutstorlek poster till arkivet. Om slutstorlek är ett heltal följt av b eller bytes skrivs slutstorlek byte arkivdata ut. Observera dock att arkivpostgränser inte bryts, vilket innebär att gränsen kan överskridas något.
Andra möjliga filstorleksenheter är:
K, Kb, KiB, Kbyte, Kilobyte M, Mb, MiB, Mbyte, Megabyte G, Gb, GiB, Gbyte, Gigabyte
Dessa enheter kan valfritt följas av ett s och kan skrivas med blandad skiftläge.
Alternativt kan slutstorlek vara ett heltal eller flyttal följt av en tidsenhet enligt beskrivningen i PCPIntro(1) för argumentet intervall till den vanliga PCP-flaggan -t.
Exempel på olika format:
-s 100 -s 100bytes -s 100K -s 100Mb -s 10Gbyte -s 10mins -s 1.5hours
Standardbeteendet är att pmlogger körs för alltid.
Flaggan -r gör att storleken på de fysiska posterna för varje grupp av mätvärden, samt gruppens förväntade bidrag till PCP-arkivets storlek för ett helt dygns insamling, rapporteras i loggfilen. Denna information rapporteras första gången varje grupp skrivs till arkivet.
Flaggan -U anger det användarkonto som pmlogger ska köras under. Standard är det nuvarande användarkontot vid interaktiv användning. När programmet körs som demon används i aktuella PCP-versioner det privilegiebegränsade kontot ”pcp”, men i äldre versioner användes superanvändarkontot ”root” som standard.
Arkivet är potentiellt en flervolymdatamängd, och flaggan -v gör att pmlogger startar en ny volym efter att en viss storlek i poster, byte eller tidsenheter har ackumulerats för den aktuella volymen. Formatet för denna storleksspecifikation är identiskt med flaggan -s. Standardbeteendet är att pmlogger skapar ett arkiv med en enda volym.
Ytterligare volymbyten kan tvingas asynkront antingen genom pmlc(1) eller genom att skicka signalen SIGHUP till pmlogger. Om ett schemalagt volymbyte används på grund av flaggan -v, återställs dess räknare efter ett asynkront byte.
Oberoende av flaggan -v är varje volym i ett arkiv begränsad till högst 2^31 byte. Därför skapar pmlogger automatiskt en ny volym för arkivet innan denna gräns nås.
Normalt arbetar pmlogger mot det distribuerade Performance Metrics Name Space, PMNS. Om flaggan -n anges läses dock ett alternativt lokalt PMNS in från filen pmnsfil.
Under normala omständigheter körs pmlogger för alltid, med undantag för flaggan -s eller en termineringssignal. Flaggan -T kan användas för att begränsa körtiden med det tidsformat som anges i PCPIntro(1). Tiden tolkas i PMCD-serverns tidszon, om inte flaggan -y anges. I så fall används tidszonen på den värd där loggern körs.
Exempel på olika format:
-T 10mins -T '@ 11:30'
Av detta framgår att:
-T 10mins -s 10mins
utför identiska åtgärder.
Alternativt kan pmlogger begränsas till livstiden för en annan process genom flaggan -p eller --PID, där PID för den aktuella processen anges. I detta fall avslutas pmlogger när den andra processen inte längre finns.
När pmlogger tar emot signalen SIGHUP stängs den aktuella arkivvolymen och en ny volym öppnas. Denna mekanism, eller motsvarande mekanism via pmlc(1), kan användas för att hantera arkivfilernas tillväxt. När en loggvolym har stängts kan den arkiveras utan negativ effekt på den fortsatta körningen av pmlogger. Se även flaggan -v ovan.
När pmlogger tar emot signalen SIGUSR2 stängs det aktuella arkivet och ett nytt arkiv öppnas. För att detta ska lyckas måste det ursprungliga argumentet arkiv innehålla metatecken enligt strftime(3), exempelvis:
%Y%m%d.%H.%M
Annars avslutas pmlogger eftersom arkivfilerna redan finns och pmlogger inte skriver över befintliga arkivfiler.
Observera att SIGUSR2 gör att pmlogger kör om sig själv och tolkar om alla ursprungliga argument. Det innebär att relativa tidsgränser för avslutning eller provtagningsgränser återställs och börjar om. Detta påverkar endast relativa sluttider, inte absoluta tider. Exempelvis påverkas:
-T 5s
men inte:
-T 5pm
Historiskt kunde buffertarna för det aktuella arkivet tömmas till disk med kommandot flush i pmlc(1), eller genom flaggan -u. Den aktuella versionen av pmlogger och de libpcp-rutiner som ligger bakom pmlogger använder ovillkorligen obuffrade skrivningar och en enda fwrite(3) för varje logisk post som skrivs. Därför tvingar ”flush” inte fram att ytterligare data skrivs till filsystemet. Flaggan -u och kommandot flush i pmlc(1) finns kvar för bakåtkompatibilitet.
När pmlogger startas med flaggan -x accepterar den asynkrona kontrollbegäranden på filbeskrivaren fd. Denna flagga förväntas endast användas internt av PCP-program som stöder ”live record mode”.
Flaggan -m gör det möjligt att lägga till strängen anteckning i portmap-filen för denna pmlogger-instans i katalogen:
$PCP_TMP_DIR/pmlogger
Detta används för närvarande internt för att dokumentera filbeskrivaren fd när flaggan -x används, eller för att ange att denna pmlogger-instans startades under kontroll av pmlogger_check(1), alltså:
-m pmlogger_check
eller att den startades om via execvp(3) på grund av en mottagen SIGUSR2-signal, enligt beskrivningen ovan:
-m reexec
Flaggan -H gör det möjligt att åsidosätta värdnamnet som skrivs i arkivets etikett. Detta motsvarar flaggan -H i pmcd(1), men kan anges på pmlogger-processen. Utan denna flagga används värdet som returneras från den loggade pmcd(1)-instansen.
Flaggan -C gör att konfigurationsfilen tolkas och att pmlogger därefter avslutas utan att skapa något utdataarkiv. När -C anges krävs därför inte argumentet arkiv på kommandoraden. Eventuella fel i konfigurationsfilen rapporteras.
Flaggan -d eller --directory kan användas för att ange katalogen där arkiv ska skapas. katalog kan innehålla metatecken för sh(1), exempelvis:
$(...) `...` $var
pmlogger expanderar dessa för att skapa den slutliga katalogsökvägen. Den resulterande sökvägen måste vara absolut, inte relativ. Flaggan -d är främst avsedd för användning av pmlogger_check(1). Vanliga användare behöver normalt inte använda den, eftersom katalogen för arkiv antingen framgår av arkiv om det innehåller katalogkomponenter, eller annars är den aktuella katalogen som standard.
KONFIGURATIONSFILENS SYNTAX
Konfigurationsfilen kan anges med flaggan -c. Om den inte anges läses konfigurationsspecifikationer från standard in.
Om konffil inte finns görs en sökning i katalogen:
$PCP_VAR_DIR/config/pmlogger
efter en fil med samma namn. Om filen hittas används den. Exempelvis är följande likvärdiga om config.mumble inte finns i aktuell katalog men filen finns i PCP-konfigurationskatalogen:
-c config.mumble -c $PCP_VAR_DIR/config/pmlogger/config.mumble
Syntaxen för konfigurationsfilen är följande.
1. Ord separeras med blanktecken, alltså mellanslag, tabb eller radbrytning.
2. Tecknet # inleder en kommentar, och all text fram till nästa radbrytning ignoreras.
3. Nyckelord som visas nedan måste förekomma bokstavligen, alltså med gemener.
4. Varje specifikation börjar med det valfria nyckelordet log, följt av ett av tillstånden:
mandatory on mandatory off mandatory maybe advisory on advisory off
5. För on-tillstånd måste ett loggningsintervall följa. Syntaxen kan vara:
once default every N timeunits N timeunits
Här är N ett positivt heltal, och timeunits är ett av följande nyckelord, eller pluralformen av dem:
msec millisecond sec second min minute hour
Interna begränsningar kräver att intervallet är mindre än ungefär 74 timmar. Ett intervallvärde på noll är synonymt med once. Ett intervall på default betyder att standardintervallet för loggning, 60 sekunder, används. Detta standardvärde kan ändras till intervall med kommandoradsflaggan -t.
Argumentet intervall följer syntaxen som beskrivs i PCPIntro(1), och kan i enklaste form vara ett positivt heltal. Den underförstådda enheten är då sekunder.
6. Efter tillståndet och eventuella intervallspecifikationer kommer ett {, följt av en lista med en eller flera mätvärdesspecifikationer och ett avslutande }. Listan separeras med blanktecken eller kommatecken. Om listan endast innehåller en mätvärdesspecifikation är klamrarna valfria.
7. En mätvärdesspecifikation består av ett mätvärdesnamn, eventuellt följt av en uppsättning instansnamn. Mätvärdesnamnet följer PCP:s standardkonventioner för namngivning, se PMNS(5). Om mätvärdesnamnet är en icke-lövnod i PMNS, se PMNS(5), går pmlogger rekursivt ned i PMNS och tillämpar loggningsspecifikationen på alla efterföljande mätvärdesnamn som är lövnoder i PMNS.
Uppsättningen instansnamn är en [, följd av en lista med ett eller flera namn, nummer eller strängar separerade med mellanslag eller kommatecken, och ett avslutande ].
Element i listan som är nummer antas vara interna instansidentifierare. Övriga element antas vara externa instansidentifierare. Se pmGetInDom(3) för mer information.
Om inga instanser anges tillämpas loggningsspecifikationen på alla instanser av det associerade mätvärdet.
8. Det kan finnas ett godtyckligt antal loggningsspecifikationer.
9. Från och med PCP version 4.0 och senare läggs varje mätvärdesnamnsspecifikation som inte löses upp till en lövnod i PMNS till i en intern lista över möjliga dynamiska delträdsrötter.
PMDA:er kan dynamiskt skapa nya mätvärden under en dynamisk rotnod i sitt PMNS och skicka en notifiering till klienter om att PMNS har ändrats. Se pmdaExtSetFlags(3), särskilt avsnittet METRIC CHANGES, för API-detaljer.
Denna mekanism stöds för närvarande av pmdaopenmetrics(1) och pmdammv(1). När en hämtning från pmlogger returnerar med flaggan PMDA_EXT_NAMES_CHANGE satt, går pmlogger igenom den interna listan över möjliga dynamiska delträdsnoder och upptäcker dynamiskt nya mätvärden.
I praktiken innebär detta att pmlogger från och med PCP version 4.0 kan konfigureras för att dynamiskt logga nya mätvärden som dyker upp i framtiden, efter att konfigurationsfilen först har tolkats.
10. Efter alla loggningsspecifikationer kan det finnas ett valfritt avsnitt för åtkomstkontroll, inlett med den bokstavliga token:
[access]
Därefter följer åtkomstkontrollregler som tillåter eller nekar åtgärder från vissa värdar eller värdgrupper.
Åtgärderna kan användas för att fråga eller styra en körande pmlogger via pmlc(1), och delas in i följande klasser:
enquire
Fråga efter status för pmlogger och de mätvärden den loggar.
advisory
Ändra rådgivande loggning.
mandatory
Ändra obligatorisk loggning.
all
Alla ovanstående.
Åtkomstkontrollregler har formen:
allow hostlista : operationslista; disallow hostlista : operationslista;
hostlista följer syntaxen och semantiken för åtkomstkontrollmekanismerna som används av PMCD och dokumenteras fullständigt i pmcd(1). En operationslista är en kommaseparerad lista med åtgärderna:
advisory mandatory enquire all
Ett saknat [access]-avsnitt tillåter all åtkomst och motsvarar:
allow * : all;
Konfigurationen, antingen från standard in eller från konffil, skannas först av pmcpp(1) med flaggorna:
-rs -I $PCP_VAR_DIR/config/pmlogger
Detta utökar konfigurationsfilens syntax med include-filhantering:
%include
en gemensam plats att söka efter include-filer:
$PCP_VAR_DIR/config/pmlogger
makrodefinitioner:
%define
makroexpansion:
%namn
%{namn}
samt villkorlig inkludering av rader:
%ifdef namn ... %else ... %endif %ifndef namn ... %else ... %endif
FLAGGOR
Tillgängliga kommandoradsflaggor är:
-c konffil, --config= konffil
Ange filen konffil som ska användas.
-C, --check
Tolka konfigurationen och avsluta.
-h värd, --host= värd
Hämta prestandamätvärden från pmcd(1) på värd, i stället för från standardvärden localhost.
-H värdnamn, --labelhost= värdnamn
Ange värdnamn som ska användas i stället för det som returneras av pmcd(1).
-I version, --pmlc-ipc-version= version
Normalt autonegocierar pmlogger och pmlc(1) en ömsesidigt acceptabel version för sin privata IPC-kanal. Använd -I för att tvinga pmlogger att erbjuda högst version som den version som ska användas.
Denna flagga kan behövas om pmlogger måste styras av en äldre version av pmlc(1) som inte kan autonegociera korrekt.
-K spec, --spec-local= spec
När mätvärden hämtas från en lokal kontext, se -o, kan flaggan -K användas för att styra vilka DSO-PMDA:er som ska göras tillgängliga. Argumentet spec följer syntaxen som beskrivs i pmSpecLocalPMDA(3). Mer än en -K-flagga kan användas.
-l loggfil, --log= loggfil
Skriv all diagnostik till loggfil i stället för standardfilen:
pmlogger.log
-L, --linger
Kör även om instansen inte är den primära loggerinstansen och det inte finns något att logga.
-m anteckning, --note= anteckning
Lägg till anteckning i portmap-filen för denna instans.
-n pmnsfil, --namespace= pmnsfil
Läs in ett alternativt Performance Metrics Name Space, PMNS(5), från filen pmnsfil.
-N, --notify
Meddela tjänstehanterare såsom systemd(1) vid behov.
-o, --local-PMDA
Använd lokal kontext för att samla in mätvärden från DSO-PMDA:er på den lokala värden utan PMCD. Se även -K.
-p PID, --PID= PID
Logga angivna mätvärden under livstiden för processen som identifieras av PID.
-P, --primary
Kör som primär loggerinstans. Se den mer detaljerade beskrivningen ovan.
-r, --report
Rapportera poststorlekar och arkivets tillväxthastighet.
-s slutstorlek, --size= slutstorlek
Avsluta efter att arkivstorleken överstiger slutstorlek.
-t intervall, --interval= intervall
Ange loggningsintervallet. Standardvärdet är 60 sekunder. Se avsnitten MILJÖ och FILER nedan om miljövariabeln PMLOGGER_INTERVAL och dess påverkan på standardintervallet för loggning.
-T sluttid, --finish= sluttid
Ange sluttid då loggningen ska avslutas.
-u
Använd obuffrad utdata. Detta är standard, så flaggan gör inget.
-U användarnamn, --username= användarnamn
När programmet körs i demonläge, kör som användaren användarnamn.
-v volymstorlek, --volsize= volymstorlek
Byt volym efter att arkivvolymen når volymstorlek.
-V version, --version= version
Ange arkivets version. Standardvärdet och det enda accepterade värdet är 2.
-x fd
Tillåt asynkrona kontrollbegäranden på filbeskrivaren fd.
-y
Använd lokal tidszon i stället för tidszonen från pmcd(1)-värden.
-?, --help
Visa användningsmeddelande och avsluta.
EXEMPEL
För varje PCP-verktyg finns en exempelkonfigurationsfil för pmlogger som kan användas för att skapa ett arkiv som lämpar sig för uppspelning med det verktyget, det vill säga som innehåller alla prestandamätvärden som verktyget använder.
För ett verktyg med namnet foo finns denna konfigurationsfil på:
$PCP_VAR_DIR/config/pmlogger/config.foo
Följande är en enkel standardkonfigurationsfil för en primär pmlogger-instans och visar de flesta möjligheterna i konfigurationsspråket:
log mandatory on once { hinv.ncpu hinv.ndisk }
log mandatory on every 10 minutes {
disk.all.write
disk.all.read
network.interface.in.packets [ "et0" ]
network.interface.out.packets [ "et0" ]
nfs.server.reqs [ "lookup" "getattr" "read" "write" ]
}
log advisory on every 30 minutes {
environ.temp
pmcd.pdu_in.total
pmcd.pdu_out.total
}
%include "macros.default"
%ifdef %disk_detail
log mandatory on %disk_detail_freq {
disk.dev
}
%endif
[access]
disallow * : all except enquire;
allow localhost : mandatory, advisory;
VÄRDNAMNSÄNDRINGAR
Värdnamnet för den PMCD som tillhandahåller mätvärden till pmlogger används på flera sätt.
PMCD:s värdnamn, eller argumentet från flaggan -H, inkluderas i arkivets etikett och kan användas för att säkerställa att efterföljande åtgärder på flera arkiv, exempelvis pmlogextract(1), endast tillämpas på arkiv från samma värd.
För pmlogger-instanser som använder en lokal PMCD och som startas och hanteras av pmlogger_check(1) och pmlogger_daily(1), eller av de systemd(1)- eller cron(8)-tjänster som använder dessa skript, kan det lokala värdnamnet också användas för att skapa namnet på den katalog där alla arkiv för en värd lagras, exempelvis:
$PCP_ARCHIVE_DIR/<värdnamn>
PMCD:s värdnamn lagras också i arkivet via mätvärdet:
pmcd.pmlogger.hostname
Detta används som en del av kontrollerna för att säkerställa kontinuitet i prestandadata efter den nattliga arkivrotationen av pmlogger_daily(1).
PMCD-värdens värdnamn kan ändras under uppstart när systemet går från ett tillfälligt värdnamn till ett permanent värdnamn, eller genom en uttrycklig administrativ åtgärd när som helst efter att systemet har startats.
När detta sker kan pmlogger behöva vidta särskilda åtgärder. Om pmlogger-instansen startades från pmlogger_check(1) eller pmlogger_daily(1), måste pmlogger avslutas. Under normala omständigheter startar systemd(1) eller cron(8) en ny pmlogger kort därefter, och den nya pmlogger-instansen arbetar då i kontexten för det nya värdnamnet för den värd där PMCD körs.
HÄRLEDDA MÄTVÄRDEN
Som beskrivs i pmRegisterDerived(3) erbjuder härledda mätvärden en mekanism för att utöka PMNS med nya mätvärden som definieras på PCP-klientsidan med uttryck över befintliga prestandamätvärden.
Härledda mätvärden kan inkluderas i en pmlogger-konfigurationsfil, men de har vissa särskilda hanteringsregler.
För det första lagras värdena för ett härlett mätvärde i arkivet, inte operandmätvärdena i det härledda mätvärdets uttryck. Detta beror på att definitionen av ett härlett mätvärde existerar oberoende av pmlogger och arkiv, och kan vara annorlunda eller helt saknas när arkiv spelas upp.
För att undvika tvetydighet vid arkivuppspelning skrivs varje härlett mätvärdes Performance Metric Identifier, PMID, om — eller ”remappas” — för att visa att detta tidigare var ett härlett mätvärde men nu inte är det. Se pmRegisterDerived(3) för en detaljerad beskrivning av PMID-remappningen.
DIAGNOSTIK
Arkiven är tillräckligt värdefulla för att pmlogger inte ska trunkera en befintlig fysisk fil. Ett meddelande av formen:
...: "foo.index" already exists, not over-written ...: File exists
anger att denna situation har uppstått. Du måste uttryckligen ta bort filerna och starta pmlogger igen.
Det får högst finnas en primär pmlogger-instans per övervakad värd. Ett försök att kringgå denna regel ger felet:
pmlogger: there is already a primary pmlogger running
Diverse andra meddelanden som rör skapande och/eller borttagning av filer i:
$PCP_TMP_DIR/pmlogger
tyder på ett behörighetsproblem i denna katalog, eller att oönskade filer har dykt upp där.
FILER
arkiv.meta
Metadata för arkivet, såsom mätvärdesbeskrivningar, instansdomäner med mera.
arkiv.0
Initial volym med mätvärden. Efterföljande volymer har suffixen:
1 2 ...
arkiv.index
Tidsindex som stöder snabb slumpmässig åtkomst till de andra filerna i arkivet.
$PCP_TMP_DIR/pmlogger
pmlogger underhåller filerna i denna katalog som en portkarta mellan process-id för pmlogger-instansen, IPC-porten som kan användas för att styra varje pmlogger-instans, enligt användning av pmlc(1), namnet på värden där pmcd(1) tillhandahåller mätvärden till pmlogger, fjärranslutningssträngen för den fjärranslutna HTTP-servern som tar emot loggad data, eller den fullständiga sökvägen till arkivets basnamn för en lokal logger samt eventuell anteckning från flaggorna -m eller -x.
All denna information är också tillgänglig via mätvärdena:
pmcd.pmlogger.*
Exempel:
pminfo -f pmcd.pmlogger
$PCP_VAR_DIR/config/pmlogger/config.default
Standardkonfigurationsfil för den primära loggerinstansen som startas från:
$PCP_RC_DIR/pmlogger
$PCP_VAR_DIR/config/pmlogger/config.*
Diverse konfigurationsfiler som lämpar sig för att skapa loggar som senare kan spelas upp med PCP:s visualiserings- och övervakningsverktyg.
$PCP_ARCHIVE_DIR/<värdnamn>
Standardkatalog för PCP-arkivfiler med prestandamätvärden insamlade från värden <värdnamn>.
$PCP_SYSCONFIG_DIR/pmlogger
Ytterligare miljövariabler som sätts när den primära pmlogger-instansen körs. Endast inställningar av formen:
PMLOGGER_VARIABEL=värde
beaktas.
./pmlogger.log
Eller:
$PCP_ARCHIVE_DIR/<värdnamn>/pmlogger.log
när programmet startas automatiskt av antingen:
$PCP_RC_DIR/pmlogger
eller av ett av övervakningsskripten för pmlogger(1), såsom pmlogger_check(1). Alla meddelanden och all diagnostik skickas hit.
MILJÖ
Normalt skapar pmlogger en socket för att ta emot kontrollmeddelanden från pmlc(1) på den första tillgängliga TCP/IP-porten från 4330 och uppåt. Miljövariabeln PMLOGGER_PORT kan användas för att ange ett alternativt startportnummer.
Om miljövariabeln PMLOGGER_LOCAL sätts till värdet 1 körs pmlogger i ett localhost-only-läge, där den endast binder till loopback-gränssnittet.
Variabeln PMLOGGER_REQUEST_TIMEOUT kan sättas av program som pmlc(1) för att ange en timeout i sekunder för anslutningsbegäranden till pmlogger-kontrollporten. Om den inte sätts kan anslutningar blockera på obestämd tid. Denna variabel sätts normalt inte av pmlogger själv.
Variabeln PMLOGGER_MAXPENDING kan sättas för att ange den maximala längd som kön av väntande pmlc-anslutningar får växa till.
Standardintervallet för provtagning som används av pmlogger kan sättas med variabeln PMLOGGER_INTERVAL. Om den inte sätts används 60 sekunder. Både kommandoraden och direktiv i konfigurationsfilen åsidosätter detta värde. Variabeln är ett heltal i sekunder.
På plattformar som använder systemd(1), och när flaggan -N anges, sätts normalt miljövariabeln NOTIFY_SOCKET av tjänstehanteraren innan pmlogger startas.
Två ytterligare miljövariabler används som del av överlämningen från en pmlogger-instans till nästa under en re-exec-operation:
__PMLOGGER_REEXEC __PMLOGGER_TZ
Detaljerna kring hur dessa används är en intern implementationsdetalj, men slutanvändare bör undvika att använda variabler med dessa namn i sitt skals miljö.
PCP-MILJÖ
Miljövariabler med prefixet PCP_ används för att parametrera fil- och katalognamn som används av PCP.
På varje installation innehåller filen:
/etc/pcp.conf
de lokala värdena för dessa variabler.
Variabeln $PCP_CONF kan användas för att ange en alternativ konfigurationsfil, enligt beskrivningen i pcp.conf(5).
FELSÖKNINGSFLAGGOR
Flaggan -D eller --debug aktiverar ytterligare diagnostik på stderr för att hjälpa till att analysera problem. Informationen kan dock ibland vara kryptisk och är främst avsedd att ge vägledning för utvecklare snarare än slutanvändare.
debug är en kommaseparerad lista med felsökningsflaggor. Använd pmdbg(1) med flaggan -l för att få en lista över tillgängliga felsökningsflaggor och deras betydelse.
Felsökningsflaggor specifika för pmlogger är följande:
Flagga Beskrivning
appl0 kontrollbegärande-PDU:er till och från pmlc(1)
appl1 utbyte av autentiseringsuppgifter
appl2 diagnostik för alarm-/tidsloop, callback-arbete och meddelanden
för record control mode
appl3 signal-callbacks och avslutningsloggning
appl4 posttidsstämplar i loggfilen när milstolpar nås
appl5 PDU-statistik efter att konffil har behandlats
appl6 bygger metadatacache från konffil för att snabba upp start,
pass0()-arbete
appl7 undertrycker byggandet av metadatacache; pass0() blir en no-op
appl8 hist_hash-uppdateringar och frågor som stöd för query-kommandot
från pmlc(1)
SE ÄVEN
PCPIntro(1), pmcd(1), pmlc(1), pmlogdump(1), pmlogger_check(1), pmlogger_daily(1), pmproxy(1), systemctl(1), systemd(1), PMAPI(3), __pmServerNotifyServiceManagerReady(3), execvp(3), pmRegisterDerived(3), pmSpecLocalPMDA(3), strftime(3), PMNS(5), pcp.conf(5), pcp.env(5), LOGARCHIVE(5), chkconfig(8) och cron(8).
COLOPHON
Denna sida är en del av projektet PCP — Performance Co-Pilot.
Information om projektet finns på:
Om du har en felrapport för denna manualsida, skicka den till:
pcp@groups.io
Denna sida hämtades från projektets uppströms Git-arkiv:
https://github.com/performancecopilot/pcp.git
den 16 januari 2026.
Vid den tidpunkten var datumet för den senaste commit som hittades i arkivet den 16 januari 2026.
Om du upptäcker renderingsproblem i denna HTML-version av sidan, eller om du anser att det finns en bättre eller mer uppdaterad källa för sidan, eller om du har rättelser eller förbättringar av informationen i detta COLOPHON-avsnitt, som inte är en del av den ursprungliga manualsidan, skicka e-post till:
man-pages@man7.org
Performance Co-Pilot PCP PMLOGGER(1)
Sidslut
Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/pmlogger.1.html
Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
Tack till Datorservice som har sponsrat Linux.se med webbhotell.