Checkmk
to checkmk.com
Important

This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved.

1. Synthetic monitoring con Robot Framework

CEE Il Checkmk Synthetic Monitoring è disponibile nelle edizioni commerciali di Checkmk, ma richiede un abbonamento aggiuntivo. Puoi comunque provare la funzione con un massimo di tre test gratuitamente e senza limiti di tempo.

Con Checkmk puoi effettuare un monitoraggio molto accurato della tua infrastruttura, fino a verificare se un particolare servizio, come un server web, funziona correttamente. Se il tuo sito web è gestito tramite un servizio cloud di terze parti, non avrai accesso al servizio stesso, ma puoi utilizzare un check HTTP per verificare se il sito web è accessibile. Ma questo dirà qualcosa sull'esperienza dell'utente? Il fatto che un negozio online sia accessibile non significa che la navigazione, i processi di ordinazione e simili funzionino senza intoppi.

È qui che entra in gioco il Checkmk Synthetic Monitoring. Con il plug-in Robotmk, Checkmk offre un vero end-to-end monitoring, ovvero il monitoraggio delle applicazioni in esecuzione dal punto di vista dell’utente. I test effettivi vengono eseguiti dal software open source Robot Framework — di cui anche Checkmk GmbH è membro.

Il software di automazione può essere utilizzato per replicare completamente il comportamento di un utente, ad esempio per simulare i processi di ordinazione nei negozi online, "clic per clic". La particolarità di Robot Framework è che i test non sono scritti in un vero e proprio linguaggio di programmazione, ma sono definiti utilizzando parole chiave facili da usare come Open Browser o Click Button. È sufficiente un Open Browser checkmk.com per richiamare il sito web di Checkmk. Diversi casi di test vengono poi combinati in cosiddette test suite (sotto forma di un file .robot).

Robotmk può ora distribuire queste test suite di Robot Framework sull'host e monitorarne l'esecuzione e i risultati come servizi in Checkmk. Nell'interfaccia web di Checkmk troverai quindi lo stato, i grafici delle prestazioni associati e le valutazioni originali di Robot Framework stesso.

1.1. Componenti

Diversi componenti lavorano insieme per creare questo end-to-end monitoring, quindi ecco una breve panoramica.

server Checkmk

Il monitoraggio sintetico di Checkmk viene realizzato tramite Robotmk, che utilizza un plug-in dell'agente come raccoglitore di dati e il Robotmk scheduler (sull'host monitorato) per l'avvio dei progetti di Robot Framework. Il monitoraggio sintetico viene attivato e configurato tramite la regolaRobotmk Scheduler . Qui specifichi quali test suite devono essere eseguite e come esattamente Robot Framework deve avviarle — il tutto riassunto in un piano. Una volta distribuito, il Robotmk scheduler sull'host di destinazione garantisce l'esecuzione programmata delle tue suite di Robot Framework.

Nel monitoraggio verranno generati diversi nuovi servizi: RMK Scheduler Status mostra lo stato dello scheduler stesso, ovvero se le test suite sono state avviate con successo. Ci sono anche servizi per tutti i piani di test configurati (come RMK MyApp1 Plan) e per i singoli test delle test suite (come RMK MyApp1 Test). I servizi dei singoli test includono anche i rapporti originali di Robot Framework.

Ci sono poi due regole di servizio opzionali: Robotmk plan e Robotmk test consentono di regolare i servizi relativi ai piani e ai test, ad esempio per apportare modifiche allo stato in determinati tempi di esecuzione.

Infine, ma non meno importante, ci sono due regole per il monitoraggio dei KPI: KPI sta per Key Performance Indicator e in questo contesto indica singole parole chiave. Utilizzando la regola Robotmk KPI discovery, le parole chiave possono essere inserite nel monitoraggio come servizi separati e valutate di conseguenza tramite Robotmk KPI monitoring. Ti mostreremo esattamente come funziona il monitoraggio delle parole chiave in un capitolo a parte più avanti.

Un po’ a parte dalle regole normali, c’è anche la funzione “Managed robots” nell’area “Setup”. In breve: i robot gestiti sul server Checkmk e distribuiti tramite l’agente Checkmk — anche in questo caso, è disponibile un capitolo a parte per maggiori dettagli.

Robotmk rules in the Setup menu.
Le regole Robotmk in Checkmk

Macchina di test

Puoi fornire le test suite di Robot Framework su un host Windows (da Windows 10 o Server 2019) o Linux. Per l'esecuzione, Robot Framework richiede l'accesso alle proprie dipendenze (Python, librerie, driver per l'automazione del browser e così via). Questa configurazione è indipendente da Checkmk e può essere memorizzata in modo dichiarativo in un pacchetto portatile. Ciò viene eseguito con lo strumento a riga di comando open source RCC. Questo strumento utilizza i tuoi file di configurazione in formato YAML per creare ambienti Python virtuali che includono le dipendenze e lo stesso Robot Framework. Il Robotmk scheduler, in esecuzione come processo in background, avvia questa compilazione e poi esegue i test.

Un pacchetto di automazione RCC di questo tipo, contenente la configurazione del pacchetto (robot.yaml), la definizione dell'ambiente di esecuzione (conda.yaml) e le test suite (tests.robot), viene chiamato anch'esso robot. RCC e lo scheduler vengono distribuiti con l'agente Checkmk; il pacchetto di automazione deve essere disponibile sull'host.

Il grande vantaggio di RCC è che l'host di esecuzione dei test non richiede un ambiente Python configurato.

L'agente stesso è necessario solo per il trasferimento di risultati, log e screenshot. Questo permette anche il monitoraggio di test suite molto lunghe o che richiedono molte risorse a livello locale — a condizione che il tuo host di test abbia le capacità corrispondenti.

Due parole sui sistemi operativi utilizzati dagli host di test: i sistemi Windows e Linux si comportano in modo leggermente diverso. Nota in particolare che i percorsi dei file definiti differiscono; negli esempi seguenti utilizziamo solo percorsi di file Windows (a meno che non siano realmente richiesti percorsi espliciti). Nel caso in cui RCC debba funzionare offline, ci sono anche differenze per quanto riguarda il contesto utente del Robotmk scheduler e i comandi necessari: qui, ovviamente, ci rivolgiamo esplicitamente a entrambi i sistemi.

E anche se non è direttamente correlato a Checkmk: La libreria del browser di Robot Framework utilizza Playwright — e Playwright non funziona su tutti i sistemi Linux supportati da Checkmk. Presta attenzione ai requisiti di sistema corrispondenti (mentre Node.js è fornito da RCC nel nostro caso).

Requisiti di sistema per la macchina di test:

  • CPU: almeno 4 core, consigliati 8 core

  • RAM: 8 gigabyte, consigliati 16 gigabyte

  • Accesso a internet (se devi effettuare lo scaricamento di pacchetti)

  • Per i test basati sul web (libreria browser di Robot Framework, basata su Playwright) Debian 12/13, Ubuntu 22.04/24.04

2. Monitoraggio delle test suite con Robotmk

Di seguito ti mostreremo come includere una test suite nel monitoraggio. Come esempio useremo una semplice test suite Hello World che genera solo due stringhe e che attende brevemente tra una e l'altra. Un'introduzione a Robot Framework non è ovviamente l'argomento di questo articolo, ma è necessaria una breve panoramica del pacchetto di automazione e della test suite demo affinché tu possa vedere quali dati finiscono dove nel monitoraggio.

L'esempio funziona sulla base di RCC, quindi l'host Windows non deve essere configurato separatamente. L'rcc.exee viene distribuito con l'agente e si trova all'indirizzo C:\ProgramData\checkmk\agent\bin\. Puoi effettuare lo scaricamento della suite di esempio come file ZIP tramite GitHub. La directory della suite:

C:\robots\mybot\
conda.yaml
robot.yaml
tests.robot
Tip

RCC può anche elaborare test suite basate su una serie di altri linguaggi di programmazione, ma per l'uso in Checkmk deve trattarsi della dichiarazione Robot Framework.

La directory della suite ora contiene due file importanti: La dichiarazione dell'ambiente richiesto per l'esecuzione nel file conda.yaml e i test effettivi nel file tests.robot (la suite). Il file robot.yaml non è rilevante per l'uso in Checkmk, ma è richiesto da RCC.

Per completezza, ecco una breve panoramica del file robot.yaml:

C:\robots\mybot\robot.yaml
tasks:
  task1:
    # (task definitions are not required by Robotmk, but expected by RCC to be compatible with other Robocorp features)
    shell: echo "nothing to do"

environmentConfigs:
  - conda.yaml

artifactsDir: output
Copia il contenuto del file negli appunti
Contenuto del file copiato con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

All'inizio, tasks definisce quali attività, in questo caso i test, devono essere eseguite. Tuttavia, sebbene questa parte sia formalmente richiesta da RCC, non viene utilizzata da Robotmk.

Tip

Robot Framework distingue tra test e attività, che stanno per automazioni. Tuttavia, entrambi vengono utilizzati esattamente allo stesso modo.

Nell'area "environmentConfigs" viene fatto riferimento solo all'conda.yaml, che si occupa dell'ambiente effettivo.

In questo caso, per l'ambiente vengono eseguite solo le operazioni di installazione per le dipendenze Python, Pip e Robot Framework. L'ambiente creato in seguito appare nel monitoraggio come RCC environment build status. I test possono essere elaborati e quindi monitorati solo se l'ambiente è stato creato con successo.

C:\robots\mybot\conda.yaml
channels:
  - conda-forge

dependencies:
  - python=3.10.12
  - pip=23.2.1
  - pip:
     - robotframework==7.1
Copia il contenuto del file negli appunti
Contenuto del file copiato con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

La test suite attuale ora si presenta così:

C:\robots\mybot\tests.robot
*** Settings ***
Documentation Template robot main suite.

*** Variables ***
${MYVAR}    Hello Checkmk!

*** Test Cases ***
My Test
    Log ${MYVAR}
    Sleep 3
    Log Done.

Qui viene visualizzato solo il valore della variabile MYVAR, poi, dopo un'attesa di 3 secondi, verrà visualizzato Done. Puoi impostare il valore della variabile in un secondo momento nell'interfaccia web di Checkmk; in caso contrario, verrà utilizzato il valore predefinito Hello Checkmk! specificato qui.

Tip

Puoi eseguire questa test suite manualmente. Per farlo, l'agente e l'RCC devono essere già installati (oppure puoi effettuare tu stesso l'scaricamento del RCC binary). Per prima cosa vai nella directory della tua test suite, dove si trova anche il file tests.robot. Quindi avvia la shell RCC con C:\ProgramData\checkmk\agent\bin\rcc.exe task shell. Verrà quindi creato l'ambiente virtuale definito in conda.yaml. Quindi avvia la suite con robot tests.robot.

Ed è esattamente ciò che fa il Robotmk scheduler non appena viene attivato il plug-in dell'agente.

2.1. Configurare una regola per il plug-in dell'agente

Puoi trovare il Robotmk scheduler all'indirizzo Setup > Agent rules > Robotmk scheduler (Windows). Dato che la regola è piuttosto estesa, ecco una panoramica della configurazione vuota:

Empty Robotmk scheduler rule.
Configurazione del plug-in dell'agente

Innanzitutto, lo scheduler richiede la directory di base in cui si trovano tutte le tue test suite. Inserisci questo percorso file arbitrario ed esplicito in Base directory of suites, ad esempio C:\robots.

Path for test suites.
Directory base dei progetti Robot Framework

Le Parallel plan groups che vengono mostrate ora sono un concetto specifico di Checkmk.

Per spiegarlo, dobbiamo prima scendere di un livello nella gerarchia: qui puoi vedere l'elemento Sequential plans. Un piano sequenziale di questo tipo definisce quali suite devono essere eseguite con quali parametri. Robot Framework elaborerà queste test suite una dopo l’altra. Il motivo è semplice: in pratica, i test vengono talvolta eseguiti sul desktop e diverse test suite potrebbero interferire tra loro contemporaneamente (pensa al fatto che potrebbero rubarsi a vicenda il controllo del cursore del mouse).

I gruppi di piani sono ora un'incapsulazione per piani eseguiti in sequenza — e vengono essi stessi eseguiti in parallelo. Anche in questo caso, il ragionamento è semplice: ciò consente alle test suite che non si basano sul desktop di essere eseguite nei propri piani senza ritardi — la test suite utilizzata in questo articolo è un buon esempio di tale elaborazione.

Torniamo al dialogo: l'unica impostazione esplicita è l'intervallo di esecuzione, che si imposta in "Group execution interval".

Execution interval for execution groups.
Intervallo per l'esecuzione (parallela) dei gruppi di piani
Important

I piani nel gruppo di piani hanno naturalmente i propri tempi di esecuzione, determinati dal timeout di una singola esecuzione e dal numero massimo di esecuzioni ripetute in caso di eventi falliti. L'intervallo di esecuzione del gruppo di piani deve quindi essere maggiore della somma dei tempi di esecuzione massimi di tutti i piani nel gruppo. Il tempo di esecuzione massimo di un piano viene calcolato come segue: Limit per attempt × (1 + Maximum number of re-executions).

Ora è il momento di configurare il primo piano. Puoi inserire qualsiasi nome in Application name. Questo nome non deve essere unico! Qui ha senso inserire il nome dell'applicazione per il monitoraggio, ad esempio OnlineShop, oppure, in questo esempio, semplicemente MyApplication. Naturalmente, può capitare che questo negozio online venga testato più volte, sia da altre test suite che dalla stessa test suite con parametri diversi. In questi casi, il campo "Variant" viene utilizzato per ottenere risultati univoci nonostante i nomi identici. Ad esempio, se l'applicazione OnlineShop viene testata una volta in tedesco e una volta in inglese (tramite i parametri corrispondenti), potresti utilizzare qui le abbreviazioni corrispondenti. Il monitoraggio restituirà quindi risultati per My OnlineShop_en e My OnlineShop_de.

Tuttavia, è necessaria la specifica in Relative path to test suite file or folder. Il percorso è relativo alla directory di base specificata sopra, ad esempio mybot\test.robot per C:\robots\. In alternativa, qui è possibile specificare anche una directory (con diversi file robot), nel qual caso sarebbe semplicemente mybot.

Name and path of the suite.
Pianifica l'esecuzione delle suite

Continua con l'Execution configuration. In Limit per attempt definisci il tempo massimo trascorso — per tentativo — che una test suite può durare. Con Robot Framework re-executions puoi ora indicare a Robot Framework di ripetere le test suites completamente o in modo incrementale se i test falliscono. Se i singoli test in una test suite sono indipendenti l'uno dall'altro, la strategia incrementale è il modo migliore per risparmiare tempo. Se, d'altra parte, la test suite verifica una sequenza logica, come "Login > Apri pagina del prodotto > Prodotto nel carrello > Checkout", la test suite deve ovviamente essere rielaborata completamente. Alla fine, c'è sempre un solo risultato.

Nel caso di ripetizioni complete, per il risultato finale vengono presi in considerazione solo i risultati delle suite autonome: se un test fallisce al suo ultimo tentativo, la test suite viene considerata un fallimento. Nel caso di ripetizioni incrementali, il risultato finale è costituito dai migliori risultati parziali: se alcuni test vengono eseguiti con successo solo al terzo tentativo, anche il risultato finale viene considerato un successo. Promemoria: la combinazione dei tentativi e dei tempi massimi di esecuzione di tutti i piani in un gruppo di piani determina il loro intervallo minimo di esecuzione.

Configuration of execution runtimes and repetitions.
I test/suite falliti possono essere ripetuti

Per impostazione predefinita, l'esecuzione tramite RCC è attivata in Automated environment setup (via RCC), per cui devi inserire due valori. In primo luogo, RCC richiede la specificazione della posizione del file robot.yaml. Il suo scopo principale è fare riferimento al file conda.yaml, che si occupa di configurare l'ambiente Python, ovvero effettuare l'installazione di Python e delle dipendenze. Questa specificazione è relativa alla directory di base che hai impostato sopra in Relative path to test suite file or folder. I file YAML possono essere salvati in sottodirectory, ma la pratica migliore è la directory principale della suite. Per la directory di base sopra indicata C:\robot\ e la directory della suite C:\robot\mybot, il percorso è quindi mybot\robot.yaml.

Con il seguente limite di tempo per la creazione dell'ambiente Python, tieni presente che a volte è necessario effettuare lo scaricamento e la configurazione di grandi volumi di dati. Soprattutto per i browser richiesti, si accumulano rapidamente diverse centinaia di megabyte, ma solo al primo avvio. RCC ricostruisce gli ambienti solo se il contenuto di conda.yaml è cambiato.

RCC configuration of the suite.
Limite di tempo per la creazione di ambienti virtuali

In Robot Framework parameters hai la possibilità di utilizzare alcuni dei parametri della riga di comando di Robot Framework (che vengono visualizzati anche dal comando robot --help). Se desideri utilizzare parametri aggiuntivi, l'opzione Argument files ti sarà d'aiuto. Un file specificato qui può contenere qualsiasi parametro del robot. Ulteriori informazioni sui singoli parametri sono disponibili nell'aiuto in linea.

Per il nostro progetto di esempio, è attivata solo l'opzione Variables ed è impostata una variabile MYVAR con il valore My Value. Ricordi il comando Log ${MYVAR} all'inizio del file tests.robot? Questo è il riferimento corrispondente.

Command line parameters of Robot Framework.
Alcune opzioni del comando robot

L'opzione Secret environment variables merita un'attenzione particolare poiché non è una funzione originale di Robot Framework. Qui puoi impostare variabili d'ambiente segrete, destinate alle password in combinazione con la libreria CryptoLibrary di Robot Framework. Le variabili impostate qui non compaiono nei log, ma vengono scritte in chiaro nei file di configurazione di Checkmk sui rispettivi host di test.

Option for secret environment variables in the Robotmk scheduler.
Password segrete per la CryptoLibrary

Alla fine della configurazione della suite ci sono tre opzioni che si spiegano da sole.

Execute plan as a specific user Consente l'esecuzione di Robotmk nel contesto di un account utente specifico. Contesto: per impostazione predefinita, Robotmk viene eseguito nel contesto dell'agente Checkmk (account LocalSystem), che non dispone dell'autorizzazione per accedere al desktop. Qui è possibile specificare un utente che deve essere permanentemente connesso a una sessione desktop e che ha quindi accesso alle applicazioni grafiche del desktop.

Tuttavia, non essere troppo frettoloso: i browser web sono un'eccezione in questo caso! Possono eseguire e visualizzare pagine web in modalità headless. Dovresti checkare la box per un utente specifico solo se un'applicazione desktop dedicata viene avviata al di fuori dei browser web, non da ultimo per motivi di sicurezza.

Con Assign plan/test result to piggyback host i risultati del piano/test possono essere assegnati a un altro host. Ad esempio, se Robot Framework sta testando il processo di ordinazione di un negozio online, i risultati possono essere assegnati al server web corrispondente.

Ogni esecuzione del test produce dati che vengono memorizzati in C:\ProgramData\checkmk\agent\robotmk_output\working\suites\. Per impostazione predefinita, vengono conservati i risultati degli ultimi 14 giorni, ma tieni presente che qui possono accumularsi rapidamente grandi volumi di dati. Per ogni esecuzione vengono generati almeno 500 kilobyte di dati; con test suite più complesse e screenshot incorporati, ad esempio, questo può arrivare rapidamente a diversi megabyte di dati. A seconda dell'intervallo di esecuzione, delle dimensioni del rapporto e delle tue esigenze di documentazione, dovresti intervenire in una situazione del genere.

Options for user context, host assignment and automatic cleanup
Pulizia automatica del grande volume di dati generati

Una volta qui, puoi ora creare ulteriori piani in questo gruppo di piani o ulteriori gruppi di piani.

Alla fine ci sono altre due opzioni, che a loro volta riguardano la configurazione completa del Robotmk scheduler.

RCC profile configuration ti permette di specificare i server proxy e gli host da escludere.

Grace period before scheduler starts può essere molto utile: lo scheduler si avvia insieme all’agente Checkmk prima dell’accesso al desktop — il che, ovviamente, significa che qualsiasi test sul desktop è destinato a fallire. L’avvio può essere ritardato manualmente utilizzando un periodo di tolleranza.

Options for proxy server and a grace period for the scheduler start.
Un "periodo di grazia" previene gli errori

Questo completa la configurazione e puoi creare un nuovo agente con il plug-in dell'agente, per poi distribuirlo, manualmente o tramite gli aggiornamenti automatici degli agenti.

Dati nell'output dell'agente

L'output nell'agente è piuttosto esteso: messaggi di errore, stato, configurazione e dati di test vengono trasmessi in diverse sezioni. Questi ultimi si trovano nella sezione robotmk_suite_execution_report, ecco un estratto abbreviato:

mysite-robot-host-agent.txt
<<<robotmk_suite_execution_report:sep(0)>>>
{
    "attempts": [
        {
            "index": 1,
            "outcome": "AllTestsPassed",
            "runtime": 20
        }
    ],
    "rebot": {
        "Ok": {
            "xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n
			<robot generator=\"Rebot 6.1.1 (Python 3.10.12 on win32)\"
			generated=\"20240319 16:23:19.944\"
			rpa=\"true\"
			schemaversion=\"4\">\r\n<suite id=\"s1\"
			name=\"Mybot\"
			source=\"C:\\robots\\mybot\">\r\n<suite id=\"s1-s1\"
			name=\"Tests\"
			source=\"C:\\robots\\mybot\\tests.robot\">\r\n<test id=\"s1-s1-t1\"
			name=\"Mytest\"
			line=\"6\">\r\n<kw
			name=\"Sleep\"
			library=\"BuiltIn\">\r\n<arg>3 Seconds</arg>\r\n<doc>Pauses the test executed for the given time.</doc>\r\n<msg
			timestamp=\"20240319 16:23:02.936\"
			level=\"INFO\">Slept 3 seconds</msg>\r\n<status
			status=\"PASS\"
			starttime=\"20240319 16:23:00.934\"
			endtime=\"20240319 16:23:02.936\"/>"
        }
    },
    "suite_id": "mybot",
    "timestamp": 1710861778
}
...
"html_base64":"PCFET0NUWVBFIGh0bWw+DQo8aHRtbCBsYW ...

Due aree sono di particolare interesse in questo caso. In primo luogo, rebot: lo strumento rebot ha generato il rapporto di stato effettivo per Robot Framework da diversi risultati parziali (da qui il nome re-bot). In secondo luogo, l'ultima riga html_base64: i rapporti HTML di Robot Framework vengono quindi codificati in base64. Anche gli screenshot acquisiti tramite i test vengono trasferiti in questo modo — il volume di output/dati nell'agente può essere di conseguenza molto ampio.

Dati nel monitoraggio del monitoraggio

Non appena lo Robotmk scheduler e la test suite sono stati eseguiti, l'operazione di scoperta del servizio genererà tre nuovi servizi:

Robotmk-Services im Monitoring
I servizi Robotmk appena individuati

Il servizio RMK Scheduler Status esiste una volta sola e subito dopo il deployment. I servizi per i piani e i test, in questo caso RMK MyApplication_mybot Plan e RMK MyApplication_mybot Test: /Test: My Test, vengono aggiunti al monitoraggio non appena le suite associate sono state eseguite per la prima volta.

2.2. Configurazione delle regole di servizio

Creazione di una regola per lo stato del piano

Promemoria: i tempi di esecuzione massimi per i piani sono stati definiti nella regola dell'agente sopra riportata. Questi tempi di esecuzione possono essere valutati con la regola "Robotmk plan". Ad esempio, puoi impostare il servizio su CRIT quando è stato raggiunto il 90% di tutti i timeout calcolati.

Configuration dialog for threshold values for runtimes of test suites.
Valori di threshold per i cambiamenti di stato basati sul tempo di esecuzione

Nella box "Conditions" è possibile limitare la regola a piani specifici.

Dialog with restriction to the test suite 'mybot'.
Restrizione opzionale a determinati piani

Creazione di una regola per lo stato del test

È possibile recuperare dati aggiuntivi anche per i singoli test nelle test suite tramite la regola "Robotmk test". Qui troverai nuovamente l'opzione per monitorare i tempi di esecuzione, sia per i test che per le parole chiave. Il monitoraggio delle parole chiave è una funzione specifica di Checkmk. Pertanto, lo stato interno alla suite nel rapporto di Robot Framework potrebbe essere "OK" perché la test suite è stata elaborata entro il tempo di esecuzione massimo consentito; in Checkmk, invece, "WARN" o "CRIT", poiché un cambiamento di stato avviene, ad esempio, all'80% di questo tempo di esecuzione massimo consentito.

Inoltre, l'opzione Enable metrics for high-level keywords può essere utilizzata per generare metriche per le parole chiave di livello superiore. Ciò è particolarmente utile se i tuoi test sono organizzati in modo tale che le parole chiave di livello superiore descrivono il "cosa" e quelle di livello inferiore descrivono il "come" — questo ti fornisce valutazioni più astratte.

In questo esempio, i valori di threshold per il tempo di esecuzione massimo di un test sono 2 e 4 secondi. Vedrai gli effetti qui sotto nel capitolo Robotmk nel monitoraggio.

Rule for monitoring keywords with example values.
Il monitoraggio può essere ampliato utilizzando le metriche delle keyword

Ancora una volta, c'è un'opzione di filtro esplicita nella box "Conditions", qui per i singoli test.

Dialog with option to restrict to tests.
Restrizione opzionale a determinati test

2.3. Robotmk nel monitoraggio

Nel monitoraggio troverai servizi relativi allo stato del Robotmk scheduler, nonché ai singoli piani e test, anche se non hai creato regole di servizio separate.

Stato dello scheduler

Il servizio RMK Scheduler Status è OK se lo scheduler è in esecuzione e ha creato con successo gli ambienti di esecuzione.

Status of the scheduler in monitoring.
RCC è riuscito a creare gli ambienti in un solo secondo

Qui nell'immagine puoi vedere la nota Environment build took 1 second. Un secondo per creare un ambiente Python virtuale con Pip e Robot Framework? Questo è possibile perché RCC è intelligente: i file già sottoposti a scaricamento vengono riutilizzati e una nuova creazione viene eseguita solo dopo che sono state apportate modifiche in conda.yaml. La prima creazione avrebbe richiesto 30 secondi o più.

Stato del piano

Lo stato di un piano si riflette in un servizio denominato in base al nome dell'applicazione e alla suite, ad esempio RMK MyApplication_mybot Plan.

Status of the test suite in monitoring.
L'esecuzione di un piano — particolarmente rilevante per gli amministratori

Stato dei test

La valutazione dei test è dove la cosa si fa davvero interessante. Nell'immagine puoi ora vedere l'effetto dei valori di threshold impostati sopra per il tempo di esecuzione dei test — qui i 2 secondi per lo stato WARN. Poiché l'istruzione Sleep 3 Seconds nel test stesso garantisce già un tempo di esecuzione più lungo, questo servizio deve passare a WARN qui, anche se il test ha avuto esito positivo. Il fatto che il test abbia avuto esito positivo è mostrato dal rapporto di Robot Framework, a cui puoi accedere tramite il simbolo del log icon log.

Status of the test in monitoring.
Risultati di una suite specifica — particolarmente rilevanti per gli sviluppatori

Il rapporto ora mostra chiaramente che il test e la test suite sono stati eseguiti con successo.

Robot Framework report for 'Mybot' test suite.
Il log di Robot Framework, qui in modalità scura opzionale

In fondo ai dati puoi anche vedere le singole keyword, qui ad esempio Log ${MYVAR} insieme al valore My value impostato in Checkmk per MYVAR.

Robot Framework report at keyword level.
Il file di log può essere espanso fino ai minimi dettagli

Dashboard

Naturalmente, puoi creare le tue dashboard come al solito, ma puoi anche trovare due dashboard integrate in Monitor > Synthetic Monitoring.

Robotmk dashboard in the web interface.
Il Checkmk Synthetic Monitoring completo in sintesi (versione abbreviata)

Prerequisito: affinché i dashboard funzionino, l'inventario HW/SW deve essere attivato sugli host interessati.

3. Robot gestiti

Finora abbiamo ipotizzato uno scenario in cui le test suite sono già disponibili sugli host di test. Tuttavia, con la funzione "managed robots", i robot possono anche essere gestiti centralmente sul server Checkmk e distribuiti tramite gli agenti Checkmk.

Dalla procedura sopra descritta conosci già l'intera configurazione per i robot esistenti che utilizzano la regola "Robotmk scheduler (Windows|Linux)".

Inoltre, basta inserire il file di archivio (vedi sotto) con il robot compresso. Qui nello screenshot, sotto "Plan Settings ", puoi vedere il campo di caricamento per il robot — le stesse opzioni presenti nello scheduler. Presta attenzione al nome in alto sotto "Properties. ". Questo è obbligatorio, poiché il robot verrà successivamente configurato nello scheduler utilizzando questo nome.

Configuration of a managed robot.
Il robot stesso viene semplicemente trasferito come archivio

Per utilizzare un robot gestito (Managed robot), viene nuovamente utilizzata la regola "Robotmk scheduler (Windows|Linux)". Ma invece di pianificare l'esecuzione del robot qui, basta specificare il robot desiderato e preconfigurato sotto "Sequence of plans". Se necessario, puoi comunque adattare qui la configurazione del piano per il robot preconfigurato per questa applicazione. In pratica, la funzione si limita quindi solitamente all'esternalizzazione della configurazione nota e alla distribuzione dei file di archivio del robot da parte dell'agente.

Configuration of the scheduler with a managed robot.
Il robot gestito in mybot_managed viene pianificato utilizzando la configurazione predefinita del piano

L'agente trasferisce quindi gli archivi specificati agli host desiderati e li memorizza nella directory dell'agente in robomk_output/managed, dove vengono poi decompressi ed eseguiti.

3.1. Creazione di un archivio del robot

In linea di principio, potresti semplicemente archiviare l'intera directory del robot con i file standard (robot.yaml, conda.yaml, test.robot).

Tuttavia, tali test sono spesso gestiti tramite Git e di conseguenza ci sono regolarmente file che non dovrebbero essere distribuiti — questi sono tipicamente gestiti tramite un file gitignore. Per aiutarti a garantire archivi puliti, ecco due piccoli script per Windows e Linux che creano archivi senza i file da ignorare. Usa questi script solo come aiuto e verifica sempre in anticipo la funzionalità per il tuo sistema.

Windows
Linux
Windows
PS C:\robots\myrobot> $FolderName = (Get-Item .).Name
PS C:\robots\myrobot> git archive --format=zip -o "../$FolderName.zip" HEAD
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!
Linux

4. Monitoraggio degli indicatori chiave di performance (KPI)

Come hai già visto sopra, i tempi di esecuzione delle parole chiave di alto livello possono essere monitorati nell’ambito di un test. Tuttavia, puoi anche includere qualsiasi parola chiave come servizio individuale nel monitoraggio. Ciò è particolarmente utile per le parole chiave utente altamente astratte, che a loro volta richiamano diverse parole chiave semplici (standard) come Click o Log — in altre parole, queste vengono fondamentalmente utilizzate come funzioni. Per l'oscopera del servizio sono disponibili due varianti: i pattern in Checkmk e i marcatori nelle test suite.

Per la ricerca basata su pattern, le parole chiave desiderate vengono memorizzate come espressioni regolari utilizzando le regole di Checkmk.

Per la ricerca basata su marcatori, i marcatori vengono codificati direttamente davanti alle keyword nei test stessi. Questi marcatori vengono elaborati utilizzando la libreria propria di Robotmk.

Indipendentemente da come i dati delle keyword entrano nel monitoraggio, devono essere configurati lì utilizzando la regola del servizio Robotmk KPI monitoring.

4.1. Variante 1: Ricerca tramite pattern

Per questa variante, non è necessario apportare alcuna modifica ai test stessi. Basta aprire la regola "Robotmk KPI discovery" e inserire le keyword da utilizzare per il monitoraggio come espressioni regolari o nomi molto specifici.

Configuration of keywords as separate services for Robotmk.
Configurazione delle keyword come servizi separati

Attenzione: se l'espressione regolare corrisponde a più di una keyword nello stesso test, verrà riconosciuta solo una keyword e il suo stato di servizio sarà SCONOSCIUTO (perché Checkmk non sa quale corrispondenza sia effettivamente prevista).

4.2. Variante 2: Ricerca tramite marker

Per una ricerca tramite marker, devi eseguire i seguenti passaggi:

  1. Esecuzione dell'installazione della libreria Robotmk.

  2. Importa la libreria Robotmk nella suite.

  3. Inserisci la keyword marker davanti alle keyword rilevanti.

Per l'installazione, il file conda.yaml di cui sopra deve essere esteso con robotframework-robotmklibrary. Le modifiche rispetto alla suite di cui sopra sono evidenziate in giallo:

C:\robots\mybot\conda.yaml
channels:
  - conda-forge

dependencies:
  - python=3.10.12
  - pip=23.2.1
  - pip:
     - robotframework==7.0
     - robotframework-robotmklibrary
Copia il contenuto del file negli appunti
Contenuto del file copiato con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

La test suite tests.robot deve essere estesa dalla libreria (nell'area Settings) e da un marcatore. I KPI spesso fanno riferimento a parole chiave specifiche dell'utente, quindi qui viene aggiunta la parola chiave Foobar (che chiama solo la parola chiave standard Log ed è a sua volta chiamata dal caso di test My Test).

C:\robots\mybot\tests.robot
*** Settings ***
Documentation       Template robot main suite.
Library             RobotmkLibrary

*** Variables ***
${MYVAR}    Hello Checkmk!

*** Test Cases ***
My Test
    Log      ${MYVAR}
    Sleep    3
    Log      Done.
    Monitor Subsequent Keyword Runtime  discover_as=My user keyword
    Foobar

*** Keywords ***
Foobar
    Log    The foo barred!

La parola chiave Robotmk Monitor Subsequent Keyword Runtime è il marcatore per (far attivare a Checkmk il monitoraggio della) seguente parola chiave (Foobar); più precisamente, il suo tempo di esecuzione. L'argomento opzionale discover_as può essere usato per specificare un nome individuale per il servizio nel monitoraggio — la parola chiave Foobar appare quindi nel monitoraggio come un servizio chiamato My user keyword.

Il grande vantaggio qui rispetto alla ricerca basata su pattern è che la stessa keyword può anche essere sottoposta a monitoraggio esplicito più volte all’interno di un singolo test.

Ecco l'esempio di cui sopra, esteso con due chiamate a Foobar:

C:\robots\mybot\tests.robot
*** Settings ***
Documentation       Template robot main suite.
Library             RobotmkLibrary

*** Variables ***
${MYVAR}    Hello Checkmk!

*** Test Cases ***
My Test
    Log      ${MYVAR}
    Sleep    3
    Log      Done.
    Monitor Subsequent Keyword Runtime  discover_as=My user keyword
    Foobar
    Monitor Subsequent Keyword Runtime  discover_as=Foobar_2
    Foobar
    Monitor Subsequent Keyword Runtime  discover_as=Foobar_3
    Foobar

*** Keywords ***
Foobar
    Sleep    3
    Log    The foo barred!

Le tre chiamate alla keyword Foobar apparirebbero quindi nel monitoraggio come My user keyword, Foobar_2 e Foobar_3.

4.3. Configurazione della regola del servizio

Indipendentemente da quale delle due varianti delle parole chiave venga utilizzata per il monitoraggio, il passo successivo è sempre quello di configurare la valutazione: In quale tempo di esecuzione i servizi devono essere indirizzati a WARN o CRIT? Per farlo, definisci i livelli corrispondenti nella regola Robotmk KPI monitoring.

Service rule for the evaluation of keywords.
Regola di servizio per la valutazione delle keyword

4.4. Keyword nel monitoraggio

Le parole chiave dei servizi compaiono nel monitoraggio secondo uno di questi due modelli:

  1. Basato su pattern: RMK MyApplication_mybot Test: /Test: My Test KPI (cmk): Foobar

  2. Basato su marcatori: RMK MyApplication_mybot Test: /Test: My Test KPI (rf): Foobar

La differenza sta quindi solo nell'indicazione dell'origine tra parentesi subito prima della keyword.

Pattern- and marker-based keywords in monitoring.
Keyword basate su pattern e su marcatori nel monitoraggio

Come mostrato nella schermata sopra con due servizi di keyword Foobar, la suite doveva essere leggermente estesa:

C:\robots\mybot\tests.robot
*** Settings ***
Documentation       Template robot main suite.
Library             RobotmkLibrary

*** Variables ***
${MYVAR}    Hello Checkmk!

*** Test Cases ***
My Test
    Log      ${MYVAR}
    Sleep    3
    Log      Done.
    Foobar
    Monitor Subsequent Keyword Runtime  discover_as=Foobar
    Barfoo

*** Keywords ***
Foobar
    Sleep    3
    Log    The foo barred!

Barfoo
    Sleep    11
    Log    The End of Barfoo

Le due keyword Foobar e Barfoo compaiono entrambe con il nome Foobar nel monitoraggio, ma si distinguono grazie all'indicazione dell'origine tra parentesi.

L'esempio con due keyword diverse presenti nell'elenco sotto lo stesso nome serve principalmente a chiarire le informazioni sull'origine.

Come già menzionato sopra, lo scopo effettivo di discover_as è quello di poter richiamare una keyword più volte in un test, ma di denominare ogni occorrenza individualmente.

5. Modalità offline per gli ambienti di test/RCC

Di default, RCC si occupa di configurare gli ambienti leggendo la configurazione YAML e effettuando lo scaricamento dei pacchetti e delle dipendenze corrispondenti dalla rete.

Ma cosa succede se gli host su cui devono essere eseguiti i test non hanno accesso a internet o ne hanno uno molto limitato?

Checkmk, o più precisamente il Robotmk scheduler, può aiutarti in questo caso, poiché è in grado di creare ambienti RCC senza richiedere una connessione internet diretta. In breve: gli ambienti vengono creati in anticipo su un qualsiasi computer e poi distribuiti tramite un archivio ZIP o da un server remoto.

Continua a leggere per scoprire esattamente come funzionano i due metodi. Per capirlo, però, serve un po' di conoscenza di RCC — e dobbiamo approfondire un po' — da un lato per spiegare i meccanismi tecnici interni di RCC, e dall'altro per spiegare perché in questo contesto particolare non seguiamo la nostra solita pratica di fare riferimento al produttore.

5.1. RCC — una breve digressione

Cronologia di RCC

Da dove viene questo strumento? RCC è stato originariamente sviluppato dalla società Robocorp (oggi Sema4.ai). Il modello di business di Sema4.ai è una piattaforma basata sul cloud in cui i clienti possono eseguire i propri script per automatizzare i processi aziendali. RCC costituisce la base per creare ambienti virtuali identici sia localmente presso la sede del cliente che nel cloud.

Noi di Checkmk utilizziamo RCC per un caso d’uso diverso: in questo caso, i tuoi script Robot Framework dovrebbero poter essere eseguiti sia sul tuo computer locale (di sviluppo) che sugli host di test di Robotmk (Windows o Linux).

Nel corso dell’acquisizione di Robocorp da parte di Sema4.ai nel 2024, RCC è stato sottoposto a una nuova licenza ed è ora software proprietario. Questo processo purtroppo non è stato molto trasparente — ecco perché questa breve spiegazione.

La variante fornita con Checkmk si basa sull'ultima versione open source di RCC ed è gestita da noi. Il fork di RCC è quindi ora parte integrante di Checkmk ed è documentato anche qui — per quanto riguarda il suo utilizzo in Checkmk.

La situazione è un po’ più complessa per quanto riguarda RCC Remote Server, lo strumento responsabile della distribuzione degli ambienti RCC. Si tratta semplicemente di un componente di RCC che viene creato solo durante la compilazione, non è un prodotto a sé stante. Ecco perché non è mai esistita una vera e propria documentazione da parte di Robocorp, a parte un’applicazione molto specifica per la piattaforma Robocorp.

Funzionamento interno di RCC

Per capirli, dovresti avere familiarità con alcuni termini e concetti:

Termine Spiegazione Nota

Catalogo

Modello per gli ambienti

Modelli per la creazione di ambienti virtuali

Hololib

Raccolta dei cataloghi disponibili

Hololib è un archivio di modelli in cui ogni singolo file viene salvato una sola volta e può essere utilizzato per creare più Spaces.

Spazio

Istanza di un ambiente

Da un unico catalogo è possibile creare più Spazi

Holotree (condiviso)

Raccolta di spazi disponibili

Holotree (condiviso) è un archivio per gli spazi, in cui ogni singolo file viene memorizzato una sola volta ed è disponibile per più spazi.

ROBOCORP_HOME

Variabile d'ambiente

Percorso in cui RCC memorizza Hololib e Holotree; per impostazione predefinita %HOME%/Appdata/Local/robocorp/ su Windows e ~/.robocorp su Linux.

ROBOCORP_HOME - in Checkmk

Variante protetta con accesso in scrittura limitato

Percorso in cui Checkmk-RCC memorizza Hololib e Holotree; sotto C:\robotmk\rcc_home o /opt/robotmk/rcc_home/

Percorso di Holotree

Percorso assoluto, sotto ROBOCORP_HOME

In questo percorso i blueprint Hololib vengono compilati negli spazi Holotree; deve essere identico sul computer di origine e su quello di destinazione in un ambiente.

RCCRemote

Server per la fornitura di cataloghi.

Di solito viene gestito tramite il Docker container RCCRemote.

ROBOCORP_HOME

ROBOCORP_HOME richiede un'analisi più approfondita. Questa variabile d'ambiente definisce il percorso in cui RCC salva Hololib e Holotree. Tutti i file binari all'interno di Hololib, ovvero la raccolta di modelli, vengono compilati in un percorso assoluto — il cosiddetto holotree path, una sottocartella di ROBOCORP_HOME. Ciò significa anche che gli stessi percorsi dei file devono essere disponibili sugli host di prova su cui i robot verranno successivamente eseguiti, così come sul computer su cui crei i robot.

Altrettanto rilevante in questo processo: il contesto utente. Su Windows, il Robotmk scheduler viene eseguito per impostazione predefinita come sottoprocesso dell’agente Checkmk con l’account LocalSystem (nel contesto SYSTEM). Su Linux, il Robotmk scheduler viene eseguito con lo stesso utente dell’agente Checkmk, ovvero root. Se ora si desidera modificare i contesti utente, Windows e Linux si comporteranno in modo diverso.

Windows: l'utente dello scheduler SYSTEM non può essere modificato, ma è possibile utilizzare l'opzione Execute plan as a specific user per configurare un utente per l'esecuzione di singoli robot/piani.

Linux: la regola Customize agent package (Unix) e la sua opzione Customize user possono essere utilizzate per cambiare l'utente dell'agente; tuttavia, non è possibile eseguire singoli robot/piani in altri contesti.

In Checkmk, il Robotmk scheduler si concede una misura di sicurezza aggiuntiva per RCC: Per garantire che solo gli scheduler e gli utenti configurati manualmente abbiano effettivamente accesso in scrittura a ROBOCORP_HOME, qui deve essere definito un percorso di file molto specifico — secondo la tabella sopra riportata più un livello gerarchico aggiuntivo per il contesto utente desiderato (vedi sotto per capire come funziona in pratica). Questo impedisce che file dannosi entrino in Hololib/Holotree, cioè l'iniezione di codice (in poche parole: se ROBOCORP_HOME sulla macchina di sviluppo fosse impostato su qualcosa come C:\foobar e se questa directory esistesse già sugli host di test e contenesse malware, questo potrebbe essere eseguito).

5.2. Variante 1: archivi ZIP

La pratica è molto più semplice del contesto tecnico, specialmente quando si lavora con un catalogo come archivio ZIP (o archivio tar.gz su Linux). In sostanza, basta creare il catalogo specificando la variabile ROBOCORP_HOME, esportarlo come archivio e poi distribuirlo manualmente. Di seguito trovi il percorso in dettaglio. I percorsi negli esempi seguenti sono limitati a Windows: solo se Linux richiede comandi diversi, questi saranno specificati esplicitamente.

Imposta ROBOCORP_HOME

Il catalogo, ovvero il modello per gli ambienti (spazi) implementati esplicitamente, può essere creato su qualsiasi computer.

Per prima cosa imposta ROBOCORP_HOME nel terminale.

Su Windows:

Per l'esecuzione headless con l'account LocalSystem:

C:\robots> set ROBOCORP_HOME=C:\robotmk\rcc_home\current_user
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Per i robot che richiedono l'accesso al desktop e un utente corrispondente:

C:\robots> set ROBOCORP_HOME=C:\robotmk\rcc_home\HarryHirsch
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Su Linux:

Per l'esecuzione headless come utente standard:

user@host:~$ export ROBOCORP_HOME=/opt/robotmk/rcc_home/current_user
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Per i robot che richiedono l'accesso al desktop e un utente corrispondente:

user@host:~$ export ROBOCORP_HOME=/opt/robotmk/rcc_home/HarryHirsch
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Puoi quindi accedere alla directory del tuo bot e creare l'ambiente/catalogo:

C:\robots> cd myrobot
C:\robots\myrobot> rcc holotree vars
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Creazione del catalogo ZIP

Ora il catalogo deve essere esportato come ZIP. Per prima cosa check se esiste già un catalogo Hololib con il percorso corretto del file Holotree. Per farlo, ti serve l'hash dell'conda.yaml:

C:\robots\myrobot> rcc holotree hash conda.yaml

Blueprint hash for [conda.yaml] is 296bd91e514e7d1d
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Quindi visualizza tutti i cataloghi Hololib disponibili (qui viene mostrata una versione abbreviata):

C:\robots\myrobot> rcc holotree catalogs

Blueprint         Platform       Dirs    Files    Size     Relocate  Holotree path
---------         --------       ------  -------  -------  --------  -------------
.296bd91e514e7d1d windows_amd64     358     4895     123M        28  c:\ProgramData\robocorp\ht
...
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Quando l'hash viene trovato nell'elenco, puoi esportare:

C:\robots\myrobot> rcc holotree export -r robot.yaml --zipfile myrobot-env.zip
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Distribuire il catalogo ZIP

Il catalogo compresso è semplice da distribuire: Copia manualmente l'archivio sull'host di prova, ad esempio in C:\robotmk\holotrees\myrobot-env.zip.

Nella regola Robotmk Scheduler (Windows|Linux) (o in Managed robots), imposta l'opzione Environment dependency handling su Load from ZIP file e inserisci il percorso del file desiderato per il catalogo zippato, in questo caso C:\robotmk\holotrees\myrobot-env.zip. Non confondere questo percorso con l'holotree path! Questo serve solo come repository per i file ZIP del catalogo Hololib da importare.

Information on handling a zipped catalog.
La posizione di archiviazione dei cataloghi Hololib compressi (modelli per la creazione degli ambienti)

Quando lo scheduler verrà avviato in seguito, importerà tutti i file ZIP dei cataloghi Hololib e creerà gli spazi da questi modelli, ovvero gli ambienti che verranno effettivamente utilizzati. Quindi, invece di effettuare lo scaricamento di tutte le dipendenze tramite pip e Conda da internet, viene decompresso solo un archivio — il che non solo è offline, ma è anche molto più veloce.

E giusto per evitare qualsiasi malinteso — i robot stessi devono ovviamente essere ancora disponibili sull'host di test o distribuiti come robot gestiti — qui si tratta esclusivamente degli ambienti!

5.3. Variante 2: server RCCRemote

Prima di tutto: RCCRemote non è uno strumento autonomo, non troverai alcuna documentazione né tantomeno una pagina del prodotto su Robocorp/Sema4. Il server remoto è semplicemente una parte di RCC e viene creato quando RCC viene compilato. Il server viene solitamente gestito tramite un container. Per il funzionamento in container, ora c'è un progetto sulle pagine GitHub di Elabit, lo sviluppatore del plug-in Robotmk originale, chiamato RCCRemote-Docker. Tuttavia, RCCRemote e RCCRemote-Docker non fanno parte di Checkmk Synthetic Monitoring e non sono coperti dal supporto Checkmk!

I cataloghi per questo percorso di distribuzione possono essere creati in due modi: I cataloghi esportati come file ZIP (vedi sopra) possono essere utilizzati sia per Windows che per Linux. Solo per Linux, è anche possibile creare i cataloghi direttamente nel Docker container RCCRemote, il che elimina completamente la necessità di un intervento manuale.

Puoi scoprire come configurare RCCRemote-Docker, handle i certificati e importare i cataloghi nelle pagine del progetto.

La configurazione sul lato Checkmk è ora di nuovo — in genere — piuttosto semplice: l'opzione "Environment dependency handling" questa volta è impostata su "Fetch from RCC remote server" e deve essere fornita con l'indirizzo del server.

Specification for handling RCCRemote.
RCCRemote Docker può fornire i cataloghi tramite la rete

Manca ancora un'ultima impostazione, a seconda che il tuo server RCCRemote utilizzi un certificato self-signed o firmato da una CA. In entrambi i casi, di solito devi impostare l'opzione Robotmk scheduler (Windows|Linux) da RCC profile configuration a Custom profile.

Per un certificato self-signed, è sufficiente lasciare deselezionata la box "Validate TLS certificates":

Inactive TLS validation for self-signed certificates.
I certificati TLS non devono necessariamente essere convalidati.

Se invece si tratta di un certificato firmato da una CA, questa opzione deve essere attivata e il certificato dell'autorità di firma deve essere salvato in Root CA (in formato PEM):

”Stored certificate from the CA.
I certificati TLS firmati da una CA vengono convalidati come di consueto specificando la CA radice

6. Risoluzione dei problemi

6.1. Lo scheduler effettua la segnalazione "No Data "

Se lo scheduler non riceve alcun dato, probabilmente la creazione dell'ambiente non è andata a buon fine. Una causa comune di questo problema sono i problemi di rete, ad esempio, a causa dei quali alcune dipendenze non possono essere caricate. In questo caso, dai un'occhiata al file di log corrispondente in C:\ProgramData\checkmk\agent\robotmk_output\working\environment_building.

6.2. Errore nella creazione dell'ambiente:post-install script execution

Si tratta di un errore particolarmente interessante che potresti riscontrare su sistemi Windows appena installati. Il file conda.yaml può contenere anche istruzioni da eseguire dopo l'installazione delle dipendenze, ad esempio l'inizializzazione del browser di Robot Framework. Qui dovrebbero quindi essere eseguiti comandi Python. Per impostazione predefinita, Windows 11 dispone di alias per python.exe e python3.exe che rimandano al Microsoft Store. Devi disattivare questi alias in "Impostazioni/Alias per l'esecuzione delle app".

7. File e directory

7.1. Windows

Percorso del file Descrizione

C:\ProgramData\checkmk\agent\robotmk_output\working\suites\

File di log e risultati delle suite

C:\ProgramData\checkmk\agent\robotmk_output\working\environment_building

File di log per la creazione di ambienti virtuali

C:\ProgramData\checkmk\agent\robotmk_output\working\rcc_setup

Messaggi dall'esecuzione di RCC

C:\ProgramData\checkmk\agent\logs\robotmk_scheduler_rCURRENT.log

File di log del plug-in dell'agente

C:\ProgramData\checkmk\agent\bin\

rcc.exe e robotmk_scheduler.exe

C:\ProgramData\checkmk\agent\plugins\

Plug-in dell'agente robotmk_agent_plugin.exe

7.2. Linux

Percorso del file Descrizione

/var/lib/check_mk_agent/robotmk/scheduler/plans

File di log e risultati delle suite

/var/lib/check_mk_agent/robotmk/scheduler/environment_building

File di log per la creazione di ambienti virtuali

/var/lib/check_mk_agent/robotmk/scheduler/rcc_setup

Messaggi dall'esecuzione di RCC

/usr/lib/check_mk_agent/robotmk/

rcc e robotmk_scheduler

/usr/lib/check_mk_agent/plugins/

Plug-in dell'agente robotmk_agent_plugin

/var/lib/check_mk_agent/robotmk/scheduler/managed/

Percorso di esecuzione per i robot gestiti

/usr/lib/check_mk_agent/managed_robots/

Percorso di archiviazione per gli archivi dei robot gestiti

Attenzione: su Linux, il Robotmk scheduler non crea un proprio file di log (su Windows è l'robotmk_scheduler_rCURRENT.log), ma registra i log tramite l'agente e syslog. Il comando corrispondente:

user@host:~$ journalctl -xu robotmk-scheduler-daemon.service
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Last modified: Mon, 08 Dec 2025 07:00:53 GMT via commit 2ce589efc
In questa pagina