Esportare i log NinjaOne relativi al supporto mediante uno script Bash, su Linux 

Negli ambienti IT, un troubleshooting e una manutenzione efficienti sono fondamentali per garantire l’affidabilità del sistema. I log svolgono un ruolo fondamentale nella diagnosi dei problemi, nell’identificazione di potenziali vulnerabilità e nel mantenimento della conformità. Per i professionisti IT e i Managed Service Provider (MSP) che utilizzano NinjaOne, esportare i log NinjaOne di supporto dai sistemi Linux può essere un’attività comune. In questo articolo analizziamo in modo approfondito uno script Bash progettato per automatizzare questo processo.

Comprendere lo scopo e l’importanza dello script

I file di log sono fondamentali per monitorare il comportamento del sistema, diagnosticare i problemi e mantenere le tracce di audit. La piattaforma NinjaOne è molto apprezzata dai professionisti IT per le sue capacità di monitoraggio e gestione remota, ma la gestione dei log in ambienti diversi come Linux richiede strumenti affidabili. Questo script semplifica il processo per esportare i log NinjaOne di supporto di NinjaOne in una directory specificata, offrendo comodità e coerenza.

Lo script per esportare i log NinjaOne:

#!/usr/bin/env bash

# Description: Exports the Ninja Support Logs to the specified directory for Linux.
# By using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https://www.ninjaone.com/terms-of-use.
# Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. 
# Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. 
# Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. 
# Warranty Disclaimer: The script is provided “as is” and “as available”, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. 
# Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. 
# Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. 
# EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).
#
# Preset Parameter: --destination "/tmp"
#   The directory to export the logs to.
#
# Preset Parameter: --help
#   Displays some help text.

# These are all our preset parameter defaults. You can set these = to something if you would prefer the script defaults to a certain parameter value.
_arg_destination="/tmp"

# Help text function for when invalid input is encountered
print_help() {
    printf '\n\n%s\n\n' 'Usage: [--destination|-d <arg>] [--help|-h]'
    printf '%s\n' 'Preset Parameter: --destination "/tmp"'
    printf '\t%s\n' "Replace the text encased in quotes with the directory to export the logs to."
    printf '\n%s\n' 'Preset Parameter: --help'
    printf '\t%s\n' "Displays this help menu."
}

# Determines whether or not help text is necessary and routes the output to stderr
die() {
    local _ret="${2:-1}"
    echo "$1" >&2
    test "${_PRINT_HELP:-no}" = yes && print_help >&2
    exit "${_ret}"
}

# Grabbing the parameters and parsing through them.
parse_commandline() {
    while test $# -gt 0; do
        _key="$1"
        case "$_key" in
        --destination | -d)
            test $# -lt 2 && die "Missing value for the optional argument '$_key'." 1
            _arg_destination=$2
            shift
            ;;
        --destination=*)
            _arg_destination="${_key##--destination=}"
            ;;
        --help | -h)
            _PRINT_HELP=yes die 0
            ;;
        *)
            _PRINT_HELP=yes die "FATAL ERROR: Got an unexpected argument '$1'" 1
            ;;
        esac
        shift
    done
}

parse_commandline "$@"

# If script form is used override commandline arguments
if [[ -n $destination ]] && [[ "${destination}" != "null" ]]; then
    _arg_destination="$destination"
fi

# Get the path to the NinjaRMMAgent from the environment variable NINJA_DATA_PATH
_data_path=$(printenv | grep -i NINJA_DATA_PATH | awk -F = '{print $2}')
if [[ -z "${_data_path}" ]]; then
    # If the environment variable NINJA_DATA_PATH is not set, try to find the NinjaRMMAgent in the Applications folder
    _data_path="/opt/NinjaRMMAgent/programdata"
    if [[ -z "${_data_path}" ]]; then
        echo "[Error] No NinjaRMMAgent found. Please make sure you have the NinjaRMMAgent installed and that it is running."
        exit 1
    fi
fi

# Get the current date
cur_date="$(date +%Y-%m-%d)"

# Trim the trailing slash from the destination path
dest_path=$(echo "$_arg_destination" | sed 's/\/$//')

# Collect the logs from the following directories
if [ "$(command -v zip)" ]; then
    echo "[Info] Exporting logs to $dest_path/NinjaSupportLogs.zip"
    if zip -r -q "$dest_path/$cur_date-NinjaLogs.zip" "$_data_path/logs" "$_data_path/policy" "$_data_path/jsonoutput" "$_data_path/jsoninput" "$_data_path/patch"; then
        echo "[Info] Logs exported to $dest_path/$cur_date-NinjaLogs.zip"
    else
        echo "[Error] Failed to export logs to $dest_path/$cur_date-NinjaLogs.zip"
        exit 1
    fi
elif [ "$(command -v tar)" ]; then
    echo "[Warn] zip command not found. Using tar instead."
    echo "[Info] Exporting logs to $dest_path/NinjaSupportLogs.tar.gz"
    if tar -czf "$dest_path/$cur_date-NinjaLogs.tar.gz" "$_data_path/logs" "$_data_path/policy" "$_data_path/jsonoutput" "$_data_path/jsoninput" "$_data_path/patch"; then
        echo "[Info] Logs exported to $dest_path/$cur_date-NinjaLogs.tar.gz"
    else
        echo "[Error] Failed to export logs to $dest_path/$cur_date-NinjaLogs.tar.gz"
        exit 1
    fi
else
    echo "[Error] zip or tar not found. Please install zip or tar."
    exit 1
fi

 

Risparmia tempo con gli oltre 300 script del Dojo NinjaOne.

Accedi oggi stesso.

Descrizione dettagliata dello script per esportare i log NinjaOne

Parametri preimpostati e impostazione iniziale

Lo script per esportare i log NinjaOne inizia con due parametri principali preimpostati:

  • –destination (-d): Specifica la directory in cui verranno esportati i registri, per impostazione predefinita è /tmp.
  • –help (-h): Fornisce un menu di aiuto dettagliato per l’uso dello script.

Questi parametri assicurano che gli utenti possano facilmente configurare lo script per le loro esigenze specifiche o risolvere i problemi quando necessario.

Parsing della riga di comando

La funzione parse_commandline elabora gli input dell’utente, convalidandoli per assicurarne l’uso corretto. Se si incontrano argomenti non validi o inattesi, lo script per esportare i log NinjaOne termina, mostrando il relativo testo di aiuto.

Rilevamento delle variabili ambientali

Per individuare il percorso dei dati dell’agente NinjaOne, lo script controlla innanzitutto la variabile d’ambiente NINJA_DATA_PATH. Se non è impostato, il percorso predefinito è quello comune di installazione (/opt/NinjaRMMAgent/programdata). Questo meccanismo di fallback garantisce la compatibilità tra ambienti diversi.

Raccogliere ed esportare i log NinjaOne

Lo script per esportare i log NinjaOne:

  • Determina la data corrente per il timestamp dei log esportati.
  • Taglia gli slash finali dal percorso di destinazione per coerenza.
  • Raccoglie i log da directory come logs, policy, jsonoutput, jsoninput e patch.

In base agli strumenti disponibili nel sistema, i log vengono archiviati utilizzando zip o tar. Questo doppio approccio garantisce la compatibilità con le varie distribuzioni Linux, dando la priorità a zip ma tornando a tar se necessario.

Gestione degli errori

Sono integrati solidi meccanismi di gestione degli errori:

  • Lo script per esportare i log NinjaOne avvisa gli utenti se l’agente NinjaOne non viene trovato o non è in esecuzione.
  • Avverte della mancanza di utility necessarie (zip o tar).
  • Notifica agli utenti eventuali errori durante il processo di esportazione dei log.

Caso d’uso ipotetico

Scenario: Un MSP che gestisce più server Linux nota un comportamento incoerente delle applicazioni su un server monitorato tramite NinjaOne. Il tecnico utilizza lo script per esportare i log NinjaOne di supporto per l’analisi:

  1. Esegue lo script per esportare i log NinjaOne con il parametro –destination /path/to/logs per salvare i log in una directory personalizzata.
  2. Lo script per esportare i log NinjaOne salva i log in un unico file, con data e ora per la tracciabilità.
  3. Il tecnico esamina i log esportati per individuare un problema di configurazione che causa il comportamento dell’applicazione.

Questo efficiente flusso di lavoro riduce al minimo i tempi di inattività e garantisce una rapida risoluzione.

Confronto con altri metodi

Senza questo script per esportare i log NinjaOne, i professionisti IT dovrebbero individuare e copiare manualmente i file di log, con conseguenti inefficienze e potenziali errori. Sebbene alcuni strumenti basati su GUI offrano funzionalità simili, spesso mancano della flessibilità e dell’automazione fornite da uno script. Per gli ambienti Linux, questo script Bash si distingue per la sua semplicità, affidabilità e adattabilità.

Domande frequenti

  1. Questo script per esportare i log NinjaOne può essere eseguito su qualsiasi distribuzione Linux?
    Sì, a condizione che nel sistema siano installati bash e uno tra zip o tar.
  2. Cosa succede se la directory specificata non esiste?
    Lo script per esportare i log NinjaOne non riuscirà a scrivere i log e lo comunicherà all’utente. Assicurati che la directory di destinazione esista prima di eseguire lo script.
  3. Come posso verificare che l’agente NinjaOne sia in esecuzione?
    Controlla lo stato dell’agente usando comandi di sistema come ps o verificare la directory di installazione per i log attivi.
  4. Cosa succede se ho bisogno di log da altre directory?
    Modifica i comandi zip o tar dello script per includere percorsi aggiuntivi.

Implicazioni dell’uso dello script per esportare i log NinjaOne

I log esportati possono contenere informazioni sensibili. Una gestione errata di questi file potrebbe comportare l’esposizione dei dati o problemi di conformità. I team IT devono proteggere i file di log esportati utilizzando le autorizzazioni appropriate e la crittografia, se necessario.

In una prospettiva più ampia, questo script per esportare i log NinjaOne contribuisce a una gestione proattiva dell’IT, consentendo una diagnostica più rapida e rafforzando l’affidabilità complessiva del sistema.

Best practice per l’utilizzo dello script

  • Esegui lo script per esportare i log NinjaOne come utente con permessi sufficienti per accedere alla directory dei dati di NinjaOne.
  • Aggiorna regolarmente lo script per esportare i log NinjaOne per tenere conto delle modifiche alle strutture delle directory o ai requisiti degli strumenti.
  • Conserva i log esportati in un luogo sicuro e limita l’accesso al personale autorizzato.
  • Convalida la presenza delle utility necessarie (zip o tar) prima di distribuire lo script per esportare i log NinjaOne.

Considerazioni finali

L’automazione dell’esportazione dei log di supporto NinjaOne su Linux migliora l’efficienza e la coerenza per i professionisti IT e gli MSP. Questo script per esportare i log NinjaOne offre una soluzione semplice e potente a una sfida di routine. Sfruttando strumenti come questo, i team IT possono concentrarsi maggiormente sulla gestione proattiva piuttosto che sulle attività manuali.

NinjaOne continua a fornire ai professionisti IT strumenti che semplificano le operazioni e migliorano la visibilità del sistema. Sia attraverso questo script che attraverso la sua più ampia suite di soluzioni, NinjaOne rimane un alleato prezioso per mantenere solidi gli ambienti IT.

Passi successivi

La creazione di un team IT efficiente ed efficace richiede una soluzione centralizzata che funga da principale strumento per la fornitura di servizi. NinjaOne consente ai team IT di monitorare, gestire, proteggere e supportare tutti i dispositivi, ovunque essi si trovino, senza la necessità di una complessa infrastruttura locale.

Per saperne di più sulla distribuzione remota di script con NinjaOne, fai un tour dal vivo, o inizia la tua prova gratuita della piattaforma NinjaOne.

Categorie:

Ti potrebbe interessare anche

×

Guarda NinjaOne in azione!

Inviando questo modulo, accetto La politica sulla privacy di NinjaOne.

Termini e condizioni NinjaOne

Cliccando sul pulsante “Accetto” qui sotto, dichiari di accettare i seguenti termini legali e le nostre condizioni d’uso:

  • Diritti di proprietà: NinjaOne possiede e continuerà a possedere tutti i diritti, i titoli e gli interessi relativi allo script (compreso il copyright). NinjaOne ti concede una licenza limitata per l’utilizzo dello script in conformità con i presenti termini legali.
  • Limitazione d’uso: Puoi utilizzare lo script solo per legittimi scopi personali o aziendali interni e non puoi condividere lo script con altri soggetti.
  • Divieto di ripubblicazione: In nessun caso ti è consentito ripubblicare lo script in una libreria di script appartenente o sotto il controllo di un altro fornitore di software.
  • Esclusione di garanzia: Lo script viene fornito “così com’è” e “come disponibile”, senza garanzie di alcun tipo. NinjaOne non promette né garantisce che lo script sia privo di difetti o che soddisfi le tue esigenze o aspettative specifiche.
  • Assunzione del rischio: L’uso che farai dello script è da intendersi a tuo rischio. Riconosci che l’utilizzo dello script comporta alcuni rischi intrinseci, che comprendi e sei pronto ad assumerti.
  • Rinuncia e liberatoria: Non riterrai NinjaOne responsabile di eventuali conseguenze negative o indesiderate derivanti dall’uso dello script e rinuncerai a qualsiasi diritto legale o di equità e a qualsiasi rivalsa nei confronti di NinjaOne in relazione all’uso dello script.
  • EULA: Se sei un cliente NinjaOne, l’uso dello script è soggetto al Contratto di licenza con l’utente finale (EULA) applicabile.