Journalctl visualizza e manipola i log di Systemd | Linuxiano.it
Privacy Policy

Journalctl visualizza e manipola i log di Systemd

Come utilizzare Journalctl per visualizzare e manipolare journalctl-visualizza-e-manipola-i-log-di-systemd i log di Systemd

systemd è una suite di demoni, librerie e utilità di amministrazione progettate con lo scopo di centralizzare la gestione e la configurazione dei sistemi operativi Unix-like

Storia

systemd viene generalmente utilizzato come sistema di init, ossia il processo chiamato dal kernel Linux per inizializzare l’user space durante lo startup, nonché il padre di tutti i processi nati dopo di lui. Va a rimpiazzare l’init “classico”, ossia quello discendente dallo Unix System V (SysVinit).

Nacque originariamente per Red Hat Linux e Debian. È un software libero distribuito sotto licenza GNU LGPL 2.1 o successive.

Uno degli obiettivi principali di systemd è unificare la configurazione base dei servizi delle principali distribuzioni.

Comunità

systemd ha generato numerose controversie tra le comunità del software libero. Le principali critiche riguardano la sua architettura, che violerebbe la filosofia Unix (do one thing and do it well) andando a creare una rete di dipendenze strette tra le sue componenti, ossia un insieme di file binari che hanno largamente superato le funzionalità di base di un init system. Secondo queste critiche, un init system non dovrebbe infatti essere responsabile del power management, dei mount point, delle schedulazioni, della crittografia, di syslog, della rete, e molto altro – funzionalità implementate in systemd.

introduzione

Alcuni dei vantaggi più convincenti di systemd sono quelli relativi alla registrazione di processo e di sistema. Quando si utilizzano altri strumenti, i registri sono solitamente dispersi nel sistema, gestiti da diversi demoni e processi e possono essere abbastanza difficili da interpretare quando si estendono su più applicazioni. Systemd tenta di risolvere questi problemi fornendo una soluzione di gestione centralizzata per la registrazione di tutti i processi kernel e userland. Il sistema che raccoglie e gestisce questi registri è noto come journal.

Il journal è implementato con il demone journald, che gestisce tutti i messaggi prodotti dal kernel, initrd, servizi, ecc. In questa guida, discuteremo come utilizzare l’utilità journalctl, che può essere utilizzata per accedere e manipolare i dati tenuto nel diario.

Idea generale

Uno degli stimoli alla base di journal systemd è quello di centralizzare la gestione dei log indipendentemente da dove i messaggi si stanno originando. Poiché gran parte del processo d’ avvio e della gestione del servizio sono gestiti dal processo systemd, è opportuno standardizzare il modo in cui i registri vengono raccolti e consultati. Il daemon journald raccoglie i dati da tutte le fonti disponibili e li memorizza in un formato binario per una manipolazione facile e dinamica.

Questo ci dà una serie di vantaggi significativi. Interagendo con i dati utilizzando un’unica utilità, gli amministratori sono in grado di visualizzare dinamicamente i dati di registro in base alle loro esigenze. Questo può essere semplice come visualizzare i dati di avvio o combinare le voci del registro in sequenza tra due servizi correlati per eseguire il debug di un problema di comunicazione.

Memorizzare i dati del registro in un formato binario significa anche che possono essere visualizzati in formati d’ output arbitrari a seconda di cosa è necessario al momento. Ad esempio, per la gestione quotidiana dei registri si può utilizzare per visualizzare i registri nel formato syslog standard, ma se decidiamo di rappresentare graficamente le interruzioni di servizio in un secondo momento,  possiamo emettere ciascuna voce come oggetto JSON per renderla consumabile per il servizio di creazione di grafici. Poiché i dati non vengono scritti sul disco in testo normale, non è necessaria alcuna conversione quando è richiesto un formato diverso.

Il journal systemd può essere utilizzato con un’implementazione syslog esistente oppure può sostituire la funzionalità syslog, a seconda delle esigenze. Mentre il diario di sistema coprirà la maggior parte delle esigenze di registrazione dell’amministratore, può anche integrare i meccanismi di registrazione esistenti. Ad esempio,  possiamo disporre di un server syslog centralizzato che si utilizza per compilare i dati da più server, ma potremmo anche voler interlacciare i registri da più servizi su un singolo sistema con il giornale systemd . Puoi fare entrambe queste cose combinando queste tecnologie.

Impostazione del tempo di sistema

Uno dei vantaggi dell’utilizzo di un giornale binario per la registrazione è la possibilità di visualizzare i record dei registri in UTC o ora locale a volontà. Per impostazione predefinita, systemd visualizzerà i risultati in ora locale.

Per questo motivo, prima di iniziare con il diario, ci assicureremo che il fuso orario sia impostato correttamente. La suite systemd viene fornita con uno strumento chiamato timedatectl che può aiutare in questo.

Innanzitutto, vedi quali fusi orari sono disponibili con l’opzione list-timezones:

Terminale
  • timedatectl list-timezones

Questo elencherà i fusi orari disponibili sul tuo sistema. Quando trovi quello che corrisponde alla posizione del tuo server, puoi impostarlo usando l’opzione set-timezone:

Terminale
  • sudo timedatectl set-timezone zone

Per garantire che la macchina utilizza l’ora corretta, usate il comando timedatectl da solo o con l’opzione di status . Il display sarà lo stesso:

Terminale
  • timedatectl status

Risultato:

Local time: sab 2018-08-04 10:45:41 CEST
Universal time: sab 2018-08-04 08:45:41 UTC
RTC time: sab 2018-08-04 08:45:41
Time zone: Europe/Rome (CEST, +0200)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no

La prima riga dovrebbe visualizzare l’ora corretta.

Visualizzazione del registro di base

Per vedere i log che il demone journald ha raccolto, usa il comando journalctl.

Se utilizzato da solo, tutte le voci di giornale presenti nel sistema verranno visualizzate all’interno di un cercapersone (solitamente less ) per la ricerca. Le voci più vecchie saranno in cima:

Terminale
  • journalctl

Probabilmente avrete pagine e pagine di dati da scorrere, che possono essere lunghe decine o centinaia di migliaia se systemd è rimasto sul vostro sistema per un lungo periodo. Questo dimostra quanti dati sono disponibili nel database di journalctl.

Il formato sarà familiare a coloro che sono abituati alla registrazione standard di syslog . Tuttavia, questo in realtà raccoglie dati da più fonti rispetto alle tradizionali implementazioni dello stesso . Include i log dal processo di avvio iniziale, il kernel, l’initrd e l’errore standard dell’applicazione e fuori. Questi sono tutti disponibili sul journalctl.

Possiamo notare che tutti i timestamp visualizzati sono ora locale. Questo è disponibile per ogni voce di registro ora che il nostro orario locale è impostato correttamente sul nostro sistema. Tutti i registri vengono visualizzati utilizzando queste nuove informazioni.

Se vuoi visualizzare i timestamp in UTC, puoi usare il flag –utc:

Terminale
  • journalctl –utc

Filtraggio delle registrazioni in base al tempo

Pur avendo accesso a una così ampia raccolta di dati, una tale quantità di informazioni può essere difficile o impossibile da ispezionare e elaborare mentalmente. Per questo una delle funzionalità più importanti di journalctl sono le sue opzioni di filtro.

Visualizzazione dei registri dall’avvio corrente.

Il più basilare di questi che potresti usare quotidianamente è il flag -b. Questo mostrerà tutte le voci del diario che sono state raccolte dal riavvio più recente.

Terminale
  • journalctl -b

Questo ti aiuterà a identificare e gestire le informazioni che sono pertinenti al tuo ambiente attuale.

Nei casi in cui non utilizzi questa funzione e si visualizzano più di un giorno,  noteremo che journalctl ha inserito una riga simile a questa in caso di journalctl del sistema:

. . . — Reboot — . . .

Questo può essere usato per aiutarti a separare logicamente le informazioni nelle sessioni di avvio.

Boots passati

Mentre di solito vuoi visualizzare le informazioni dall’avvio corrente, ci sono certamente occasioni in cui anche gli boots precedenti potrebbero essere utili. Il diario può salvare informazioni da molti boots precedenti, quindi possiamo usare journalctl per visualizzare facilmente le informazioni.

Per impostazione predefinita alcune distribuzioni consentono di salvare le informazioni di avvio precedenti, mentre altre disabilitano questa funzionalità. Per abilitare le informazioni di avvio persistenti, è possibile creare la directory in cui archiviare il giornale digitando:

Terminale
  • sudo mkdir -p / var / log / journal

Oppure puoi modificare il file di configurazione del journal:

Terminale
  • sudo gedit /etc/systemd/journald.conf

Sotto la sezione [Journal] , imposta l’opzione Storage= su “persistent” per abilitare la registrazione persistente:

Sotto la sezione [Journal], imposta l’opzione Storage = su “persistente” per abilitare la registrazione persistente:

. . . [Journal] Storage= persistent

Quando il salvataggio dei boots precedenti è abilitato sul tuo server, journalctl fornirà alcuni comandi per aiutarti a lavorare con i boots come unità di divisione. Per vedere gli stivali journald da journald , usa l’opzione –list-boots con journalctl:

Terminale
  • journalctl –list-boots

Questo mostrerà una linea per ogni avvio. La prima colonna è l’offset per l’avvio che può essere utilizzato per fare facilmente riferimento all’avvio con journalctl. Se necessario un riferimento assoluto, l’ID di avvio si trova nella seconda colonna. Possiamo indicare l’ora a cui si riferisce la sessione di avvio con le due specifiche temporali elencate verso la fine.

Per visualizzare le informazioni di questi boots, possiamo utilizzare le informazioni dalla prima o dalla seconda colonna.

Ad esempio, per vedere il diario dal boot precedente, usa il puntatore relativo -1 con il flag -b:

Terminale
  • journalctl -b -1

Inoltre possiamo utilizzare l’ID di avvio per richiamare i dati da un avvio:

Terminale
  • journalctl -b 68096e2715604878b79d724aa594ab31

Tempo Windows

Vedere le voci di registro per avvio è utile, spesso potremmo desiderare di richiedere finestre di tempo che non si allineano bene con gli stivali del sistema. Questo può essere particolarmente vero quando si ha a che fare con server di lunga durata con tempi di attività significativi.

Possiamo filtrare in base a limiti di tempo arbitrari utilizzando le opzioni –since e –until , che limitano le voci visualizzate a quelle successive o precedenti al tempo specificato, rispettivamente.

I valori temporali possono venire in una varietà di formati. Per i valori di tempo assoluto, utilizziamo il seguente formato:

YYYY-MM-DD HH:MM:SS

Ad esempio, possiamo vedere tutte le voci dal 10 gennaio 2015 alle 17:15 digitando:

Terminale
  • journalctl –since “2018-01-10 17:15:00”

Se i componenti del formato precedente sono stati disattivati, verranno applicati alcuni valori predefiniti. Ad esempio, se la data viene omessa, verrà considerata la data corrente. Se manca il componente orario, “00:00:00” (mezzanotte) verrà sostituito. Il campo dei secondi può essere lasciato anche per default su “00”:

Terminale
  • journalctl –since “2015-01-10” –until “2018-01-11 03:00”

La rivista comprende anche alcuni valori relativi e le scorciatoie nominate. Ad esempio, puoi usare le parole “ieri”, “oggi”, “domani” o “adesso”. Si fanno tempi relativi anteponendo “-” o “+” a un valore numerato o usando parole come “fa” in una costruzione di frase.

Per ottenere i dati da ieri, possiamo digitare:

Terminale
  • journalctl –since yesterday

Se hai ricevuto segnalazioni di un’interruzione del servizio a partire dalle 9:00 e continua fino a un’ora fa, puoi digitare:

Terminale
  • journalctl –since 09:00 –until “1 hour ago”

Come puoi vedere, è relativamente facile definire finestre temporali flessibili per filtrare le voci che desideri vedere.

Filtro per interesse del messaggio

Abbiamo imparato sopra alcuni modi in cui è possibile filtrare i dati del journal usando vincoli di tempo. In questa sezione discuteremo come filtrare in base al servizio o componente a cui sei interessato. Il diario di sistema offre una varietà di modi per farlo.

Per unità

Forse il modo più utile per filtrare è l’unità che ti interessa. Possiamo usare l’opzione -u per filtrare in questo modo.

Ad esempio, per vedere tutti i log da un’unità Nginx sul nostro sistema, possiamo digitare:

Terminale
  • journalctl -u nginx.service

In genere, è probabile che si desideri filtrare anche in base al tempo per visualizzare le linee a cui si è interessati. Ad esempio, per verificare come è attualmente in esecuzione il servizio, possiamo digitare:

Terminale
  • journalctl -u nginx.service –since today

Questo tipo di focus diventa estremamente utile quando si sfrutta la capacità del journal di intercalare i record di varie unità. Ad esempio, se il tuo processo Nginx è connesso a un’unità PHP-FPM per elaborare il contenuto dinamico, puoi unire le voci da entrambi in ordine cronologico specificando entrambe le unità:

Terminale
  • journalctl -u nginx.service -u php-fpm.service –since today

Puo semplificare la individuazione le interazioni tra diversi programmi e sistemi di debug invece dei singoli processi.

Per processo, utente o ID gruppo

Alcuni servizi generano una varietà di processi figlio per fare lavoro. Se hai esplorato il PID esatto del processo che ti interessa, puoi anche filtrarlo.

Per fare ciò possiamo filtrare specificando il campo _PID . Ad esempio se il PID a cui siamo interessati è 8088, potremmo digitare:

Terminale
  • journalctl _PID=8088

Altre volte, potresti avere tutte le voci registrate da un utente o gruppo specifico. Questo può essere fatto con i filtri _UID o _GID . Ad esempio, se il tuo server web viene eseguito con l’utente www-data , puoi trovare l’ID utente digitando:

Terminale
  • id -u www-data

33

Successivamente, possiamo utilizzare l’ID restituito per filtrare i risultati del journal:

Terminale
  • journalctl _UID=33 –since today

Il journal systemd ha molti campi che possono essere utilizzati per il filtraggio. Alcuni di questi vengono passati dal processo che viene registrato e altri vengono applicati da journald utilizzando le informazioni che raccoglie dal sistema al momento del log.

L’underscore principale indica che il campo _PID è di quest’ultimo tipo. Il journal registra e indicizza automaticamente il PID del processo che sta registrando per il filtro successivo. Puoi scoprire tutti i campi del journal disponibili digitando:

Terminale
  • man systemd.journal-fields

Ne discuteremo alcuni in questa guida. Per ora però, andremo oltre un’altra opzione utile che ha a che fare con il filtraggio di questi campi. L’opzione -F può essere utilizzata per mostrare tutti i valori disponibili per un determinato campo del journal.

Ad esempio, per vedere a quali ID di gruppo è assegnato il diario di sistema, è possibile digitare:

Terminale
  • journalctl -F _GID

32 99 102 133 81 84 100 0 124 87

Questo mostrerà tutti i valori che il journal ha memorizzato per il campo ID del gruppo. Questo può aiutarti a costruire i tuoi filtri.

Per percorso componente

Possiamo anche filtrare fornendo un percorso percorso.

Se il percorso porta a un eseguibile, journalctl mostrerà tutte le voci che coinvolgono l’eseguibile in questione. Ad esempio, per trovare le voci che riguardano l’eseguibile di bash , puoi digitare:

Terminale
  • journalctl /usr/bin/bash

Di solito, se un’unità è disponibile per l’eseguibile, tale metodo è più pulito e fornisce informazioni migliori (voci da processi figli associati, ecc.). A volte, tuttavia, questo non è possibile.

Visualizzazione dei messaggi del kernel

I messaggi del kernel, quelli normalmente trovati nell’output di dmesg, possono essere recuperati anche dal journal.

Per visualizzare solo questi messaggi, possiamo aggiungere i flag -k o –dmesg al nostro comando:

Terminale
  • journalctl -k

Per impostazione predefinita, questo mostrerà i messaggi del kernel dal boot corrente. È possibile specificare un avvio alternativo utilizzando i normali flag di selezione di avvio discussi in precedenza. Ad esempio, per ottenere i messaggi da cinque stivali fa, è possibile digitare:

Terminale
  • journalctl -k -b -5

Per priorità

Un filtro a cui gli amministratori di sistema spesso sono interessati è la priorità del messaggio. Mentre è spesso utile registrare le informazioni a un livello molto dettagliato, quando si digeriscono effettivamente le informazioni disponibili, i registri a bassa priorità possono essere fonte di distrazione e confusione.

È possibile utilizzare journalctl per visualizzare solo i messaggi con una priorità specificata o superiore utilizzando l’opzione -p . Ciò consente di filtrare i messaggi con priorità più bassa.

Ad esempio, per mostrare solo le voci registrate al livello di errore o superiore, puoi digitare:

Terminale
  • journalctl -p err -b

Questo mostrerà tutti i messaggi contrassegnati come errore, critico, avviso o emergenza. La rivista implementa i livelli standard di messaggi syslog . È possibile utilizzare il nome di priorità o il valore numerico corrispondente. In ordine di priorità dal più alto al più basso, questi sono:

0: emerg
1: avviso
2: crit
3: err
4: avviso
5: avviso
6: informazioni
7: debug

I numeri oi nomi sopra possono essere usati in modo intercambiabile con l’opzione -p . Selezionando una priorità verranno visualizzati i messaggi contrassegnati al livello specificato e quelli sopra di esso.
Modifica della visualizzazione del diario

Sopra, abbiamo dimostrato la selezione delle voci attraverso il filtraggio. Ci sono altri modi in cui possiamo modificare l’output. Possiamo regolare il display di journalctl per adattarlo alle varie esigenze.

Tronca o espandi l’output

Possiamo regolare il modo in cui journalctl visualizza i dati dicendogli di ridurre o espandere l’output.

Per impostazione predefinita, journalctl mostrerà l’intera voce nel cercapersone, consentendo alle voci di journalctl alla destra dello schermo. È possibile accedere a queste informazioni premendo il tasto freccia destra.

Se preferisci che l’output venga troncato, inserendo un puntino di sospensione nel punto in cui le informazioni sono state rimosse, puoi utilizzare l’opzione –no-full:

Terminale
  • journalctl –no-full

. . . Feb 04 20:54:13 journalme sshd[937]: Failed password for root from 83.234.207.60…h2 Feb 04 20:54:13 journalme sshd[937]: Connection closed by 83.234.207.60 [preauth] Feb 04 20:54:13 journalme sshd[937]: PAM 2 more authentication failures; logname…ot

Puoi anche andare nella direzione opposta con questo e dire a journalctl di mostrare tutte le sue informazioni, indipendentemente dal fatto che includa caratteri non stampabili. Possiamo farlo con la flag -a:

Terminale
  • journalctl -a

Uscita su Uscita standard

Per impostazione predefinita, journalctl visualizza l’output in un cercapersone per un consumo più semplice. Se si sta pianificando l’elaborazione dei dati con strumenti di manipolazione del testo, tuttavia, è probabile che si desideri essere in grado di generare output standard.

Puoi farlo con l’opzione –no-pager:

Terminale
  • journalclt –no-pager

Questo può essere convogliato immediatamente in un’utilità di elaborazione o reindirizzato in un file su disco, a seconda delle esigenze.

Formati di output

Se stai elaborando le voci del diario, come menzionato sopra, molto probabilmente avrai un tempo più semplice per analizzare i dati se sono in un formato più consumabile. Fortunatamente, il diario può essere visualizzato in una varietà di formati, se necessario. Puoi farlo usando l’opzione -o con un -o di formato.

Ad esempio, puoi pubblicare le voci del diario in JSON digitando:

Terminale
  • journalctl -b -u nginx -o json

Questo è utile per l’analisi con le utilità. È possibile utilizzare il formato json-pretty per ottenere un miglior controllo sulla struttura dati prima di inviarlo al consumatore JSON:

Terminale
  • journalctl -b -u nginx -o json-pretty

I seguenti formati possono essere utilizzati per la visualizzazione:

  • cat: visualizza solo il campo del messaggio stesso
  • export: un formato binario adatto per il trasferimento o il backup
  • json: JSON standard con una voce per riga
  • json-pretty: JSON formattato per una migliore leggibilità umana.
  • json-sse: l’output formattato JSON è stato spostato per rendere compatibile la compatibilità con gli eventi inviati dal server
  • short: l’output di stile syslog predefinito
  • short-iso: il formato predefinito è aumentato per mostrare la data e l’ora di wallclock ISO 8601
  • short-monotonic: il formato predefinito con timestamp monotona
  • short-precise: il formato predefinito con precisione al microsecondo
  • verbose: mostra tutti i campi del journal disponibili per la voce, inclusi quelli normalmente nascosti internamente

Queste opzioni ti consentono di visualizzare le voci del diario nel formato che meglio si adatta alle tue attuali esigenze.

Monitoraggio del processo attivo

Il comando journalctl imita il numero di amministratori che utilizzano la tail per monitorare attività attive o recenti. Questa funzionalità è incorporata in journalctl , che consente di accedere a queste funzionalità senza dover reindirizzare a un altro strumento.
Visualizzazione dei registri recenti

Per visualizzare una quantità di record, puoi usare l’opzione -n , che funziona esattamente come tail -n .

Per impostazione predefinita, verranno visualizzate le 10 voci più recenti:

Terminale
  • journalctl -n

Puoi specificare il numero di voci che vorresti vedere con un numero dopo -n:

Terminale
  • journalctl -n 20

Seguendo i log

Per seguire attivamente i log mentre vengono scritti, è possibile utilizzare l’ -f . Di nuovo, questo funziona come ci si potrebbe aspettare se si ha esperienza con tail -f:

Terminale
  • journalctl -f

Manutenzione della rivista

Forse ti starai chiedendo il costo di memorizzare tutti i dati che abbiamo visto finora. Inoltre, potresti essere interessante nel pulire alcuni registri più vecchi e liberare spazio.
Trovare l’utilizzo corrente del disco

Puoi scoprire la quantità di spazio che il journal sta attualmente occupando sul disco usando il –disk-usage:

Terminale
  • journalctl –disk-usage

Risultato:

Archived and active journals take up 40.0M in the file system.

Eliminazione di vecchi registri

Se desideri ridurre il tuo diario, puoi farlo in due modi diversi (disponibile con systemd versione 218 e successive).

Se si utilizza l’opzione –vacuum-size , è possibile ridurre il diario indicando una dimensione. Ciò rimuoverà le voci precedenti fino a quando lo spazio totale del journal occupato sul disco non avrà raggiunto la dimensione richiesta:

Terminale
  • sudo journalctl –vacuum-size=1G

Un altro modo per ridurre il diario è fornire un tempo limite con l’opzione –vacuum-time . Qualsiasi voce oltre tale orario viene cancellata. Ciò consente di mantenere le voci che sono state create dopo un determinato periodo.

Ad esempio, per conservare le voci dell’ultimo anno, puoi digitare:

Terminale
  • sudo journalctl –vacuum-time=1years

Limitazione dell’espansione del journal

Possiamo configurare il server in modo che limiti il ​​volume di spazio occupato dal journal. Questo può essere fatto modificando il file /etc/systemd/journald.conf.

Terminale
  • sudo gedit /etc/systemd/journald.conf

I seguenti elementi possono essere utilizzati per limitare la crescita del journal:

  • SystemMaxUse= : specifica lo spazio su disco massimo che può essere utilizzato dal giornale nella memoria permanente.
  • SystemKeepFree= : specifica la quantità di spazio che il journal dovrebbe lasciare libero quando si aggiungono voci del diario all’archivio permanente.
  • SystemMaxFileSize= : Controlla in che modo i singoli file journal possono crescere in memoria persistente prima di essere ruotati.
    RuntimeMaxUse= : specifica lo spazio su disco massimo che può essere utilizzato nella memoria volatile (all’interno del file system /run ).
  • RuntimeKeepFree= : specifica la quantità di spazio da RuntimeKeepFree= per altri usi durante la scrittura di dati su una memoria volatile (all’interno del /run file system di /run ).
  • RuntimeMaxFileSize= : specifica la quantità di spazio che un singolo file journal può occupare nella memoria volatile (all’interno del file system /run ) prima di essere ruotato.

Impostando questi valori,  possiamo controllare il consumo dello spazio journald e preservare lo spazio sul server. Tieni presente che SystemMaxFileSize e RuntimeMaxFileSize avranno come destinazione i file archiviati per raggiungere i limiti indicati. Questo è importante da ricordare quando si interpretano i conteggi dei file dopo un’operazione di aspirazione.

Conclusione

Come puoi vedere, il diario di sistema è incredibilmente utile per la raccolta e la gestione dei dati di sistema e delle applicazioni. La maggior parte della flessibilità deriva dagli estesi metadati registrati automaticamente e dalla natura centralizzata del log. Il comando journalctl l’ journalctl delle funzionalità avanzate del journal e consente un’analisi approfondita e il debug relazionale di diversi componenti dell’applicazione.