A systemd egy új jelentéskészítő alrendszert kap, amelynek célja, hogy egy helyen gyűjtse össze a statikus rendszerinformációkat és a dinamikus futásidejű mérőszámokat.
A systemd-report névre keresztelt új eszköz több különböző metrikaszolgáltatótól gyűjti az adatokat egy általános Varlink interfészen keresztül, majd ezeket egyetlen, időbélyeggel ellátott JSON jelentésben egyesíti. A fejlesztés elsősorban rendszerszintű és géppark-menedzsmentre irányul, ahol a rendszergazdáknak sok gépről kell egységes képet kapniuk.
A begyűjtött információkat két csoportra osztják. Az első a viszonylag statikus rendszer-“tényezőket” tartalmazza, például a CPU architektúrát, a gép nevét, a kernel verzióját, az operációs rendszer azonosítóját, a beépített RAM mennyiségét, a CPU-k számát, a virtualizációs technológiát, a TPM-információkat és más hardveres vagy platformrészleteket.
A második csoport a változó futásidejű metrikákat fedi le, például a CPU- és memóriahasználatot, a terhelési átlagokat, a lemez I/O-t, a swap használatot, a rendszerterhelési mutatókat, a cgroup statisztikákat, a hálózati interfészek állapotát, a systemd egységek állapotát, az újraindítási számlálókat, a sorban álló feladatokat és a magas prioritású naplóüzeneteket.
Lennart Poettering szerint az alapul szolgáló metrikaszolgáltatót eredetileg a Meta adta hozzá, kifejezetten a dinamikus futásidejű információkra koncentrálva. Később ugyanazt az interfészt kiterjesztették a statikusabb rendszeradatokra is, amit például az Amutable az operációs rendszer telepítésének menedzseléséhez használ.
Miután az adatok összegyűltek, a systemd-report egységes pillanatfelvételt állít össze, amely egy adott időpontban rögzíti a gép állapotát.
Az alrendszert távoli géppark-menedzsmentre tervezték. A jelentéseket közvetlenül egy HTTPS szerverre is fel lehet tölteni PUT kérésekkel, így a szervezetek egy központi vezérlőfelületre küldhetik a rendszerinformációkat. A megoldás része az időzített, rendszeres feltöltés egy systemd időzítővel, valamint az olyan eseményekhez kötött jelentéskészítés, mint a rendszerindítás, az újraindítás vagy a leállítás.
A biztonság érdekében a jelentéseket titkosan alá lehet írni elküldés előtt, és a systemd jelenleg három aláírási módot kínál.
A legegyszerűbb megoldás egy szoftveresen generált, helyben tárolt aszimmetrikus kulcsot használ. A TPM hardverrel rendelkező rendszerek TPM quote-ot tudnak készíteni, amely lefedi a platformméréseket és a jelentés adatait. A harmadik lehetőség a confidential computing környezeteket támogatja: ilyenkor CPU TSM quote készül, amely a jelentést a biztonságos virtuális gép mérési adataihoz köti.
Mindez jól megkülönbözteti a systemd-reportot a hagyományos monitorozó eszközöktől, például a Prometheustól és a node_exportertől. Bár hasonló információkat szolgáltatnak, a systemd közvetlenül az operációs rendszer alacsonyabb szintű komponenseitől szerzi az adatokat, nem pedig egy külön “lekérdező” modellre támaszkodik.
Még fontosabb, hogy a systemd-report teljes, aláírt, időbélyeggel ellátott pillanatfelvételekre koncentrál, nem pedig egymástól független metrikafolyamokra. Poettering szerint a két megközelítés nem zárja ki egymást, és az új infrastruktúra idővel alapot adhat a kettő integrációjához is.
A rendszer felépítése szándékosan bővíthető. Külső projektek is szolgáltathatnak további metrikákat vagy aláírási mechanizmusokat, ha elérhetővé teszik a megfelelő Varlink socketet. Ezeket a szolgáltatókat bármilyen programozási nyelven meg lehet írni, csak egy kis interfészt kell megvalósítaniuk.
Másképp fogalmazva, a systemd-report nem egyszerűen egy újabb parancs a rendszerinformációk megjelenítésére. Sokkal inkább egy átfogó jelentéskészítő keretrendszerré válik, amely közvetlenül a systemd-be épül. Ötvözi a rendszeradatokat, a futásidejű metrikákat, a biztonságos aláírást és a távoli jelentéskészítést, olyan formátumban, amely egyaránt alkalmas önálló Linux gépek és nagy szerverflották kezelésére.
További részletekért olvasd el Poettering bejelentését.

