pmlogger(1)

Från Wiki.linux.se -Linux wikipedia på Svenska.
Hoppa till navigering Hoppa till sök

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)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å:

http://www.pcp.io/

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.