Gli amministratori delle istanze di Looker ospitate dal cliente potrebbero prendere in considerazione la migrazione a un ambiente con hosting di Looker principalmente per scambiare il sovraccarico dell'amministrazione dell'infrastruttura con una maggiore praticità, una maggiore disponibilità delle funzionalità e un'affidabilità gestita. L'utilizzo di un'istanza con hosting di Looker riduce notevolmente l'impegno necessario per installare, configurare e gestire l'applicazione Looker, perché tutte le funzioni IT necessarie correlate all'applicazione Looker vengono gestite per te.
La migrazione di un'istanza ospitata dal cliente a un ambiente con hosting di Looker prevede i seguenti passaggi principali:
- Acquisizione e configurazione: apri un ticket con il team di Looker e compila il questionario di migrazione on-prem di Looker. Il team di Looker crea una nuova istanza ospitata in base alle tue risposte al questionario.
- Crittografia: i tecnici SRE di Looker generano una coppia di chiavi GnuPG (GPG) e condividono la chiave pubblica con te.
- Esportazione: arresta l'istanza di Looker ed esporta i relativi dati (database, file system e chiave gestita dal cliente (CMK)).
- Trasferimento e importazione dei dati: il team di Looker importa il backup nell'istanza con hosting di Looker e lo verifica.
Questa pagina descrive come eseguire le attività richieste per il passaggio 3: esportazione:
- Valuta il rendimento e le dimensioni del file system e del database dell'istanza
- Esegui il backup, cripta e genera un checksum dei dati che verranno inviati dal file system di Looker
- Esegui il backup, cripta e genera un checksum dei dati che verranno inviati dallo schema del database di Looker
- Crea, cripta e genera un checksum del file della chiave CMK
- Convalida gli artefatti di backup
- Consegna i file di backup per la migrazione
Prima di iniziare
Prima di poter utilizzare gli script in questa pagina per eseguire il backup dei dati dell'istanza, devi assicurarti che l'istanza di Looker, il database e la configurazione della crittografia soddisfino i requisiti di migrazione.
Configurazioni richieste
Per eseguire gli script descritti in questa pagina, sono necessarie le seguenti versioni di Looker e del database:
- L'istanza di Looker deve eseguire una versione di release di Looker supportata.
- L'istanza deve utilizzare un database compatibile con la versione 8.0.0 o successive di MySQL, in modo che il file dello schema del database esportato possa essere utilizzato da Looker.
Se utilizzi AWS KMS, esegui la migrazione alla crittografia AES-256 GCM di Looker seguendo i passaggi descritti nella pagina della documentazione Modifica delle chiavi di crittografia di Looker.
Per garantire l'archiviazione corretta dei dati e la visualizzazione dei caratteri, le regole di confronto del database devono essere impostate su utf8mb4 (consigliato) o utf8. L'utilizzo di altre regole di confronto potrebbe causare il danneggiamento dei dati o errori durante il salvataggio di caratteri speciali.
Valuta l'istanza per la migrazione
Per determinare se è possibile eseguire la migrazione dell'istanza di Looker con hosting presso il cliente a un'istanza di Looker (originale) con hosting di Looker, devi valutare le dimensioni e il rendimento del database e del file system dell'istanza. Questa valutazione determina anche se l'ambiente di origine è in grado di gestire l'estrazione dei dati che avviene durante il processo di generazione del backup. Queste informazioni aiutano il team di Looker ad allocare risorse sufficienti per l'istanza di Looker con hosting di Looker di destinazione.
Per eseguire la valutazione, devi clonare il repository GitHub che contiene lo script di Looker per valutare l'utilizzo di Compute e il rendimento del file system di un'istanza di Looker. Questo script si basa sull'SDK Go Looker ed è disponibile nel repository di valutazione della migrazione O2C di Looker su GitHub.
Le sezioni seguenti descrivono i passaggi da completare per eseguire lo script che valuta l'istanza, tra cui le seguenti attività:
- Clona il repository che contiene lo script.
- Genera le credenziali API.
- Esegui il comando per controllare l'utilizzo di Compute.
- Esegui il comando per controllare il rendimento del file system.
Installa gli strumenti di valutazione
Installa i seguenti strumenti, linguaggi e SDK sulla macchina su cui eseguirai il backup dei dati dell'istanza di Looker:
Clona il repository di valutazione della migrazione O2C di Looker
Per clonare il repository che contiene lo script di valutazione, esegui il seguente comando dalla home directory dell'utente che eseguirà l'analisi e il backup:
git clone https://github.com/looker-open-source/looker-o2c-migration-tool.git
Genera le credenziali API
Lo script di valutazione utilizza l'SDK Looker per recuperare i dati, fungendo da client API che invia richieste tramite la rete al server Looker. L'utente amministratore che esegue lo script deve avere un ID client API Looker e un client secret. Per generare le credenziali API per l'account amministratore di Looker:
- Vai alla pagina Utenti nel pannello Amministrazione.
- Seleziona Modifica per il tuo account.
- Nella pagina dei dettagli dell'account, individua la sezione Chiavi API3 e seleziona Modifica chiavi.
- Seleziona Nuova chiave API.
- Looker visualizzerà un ID client e un client secret. Copia questi valori e salvali in una posizione sicura.
Genera informazioni sull'utilizzo di Compute
Per utilizzare lo script di valutazione della migrazione per restituire informazioni sull'utilizzo di Compute dell'istanza, esegui il seguente comando su una macchina che ha una connessione di rete diretta all'endpoint API dell'applicazione Looker:
cd looker-o2c-migration-tool
go run main.go --client-id API_CLIENT_ID --client-secret API_CLIENT_SECRET --looker-instance-address LOOKER_INSTANCE_ADDRESS --output-csv-path OUTPUT_CSV_PATH --ssl=SSL
Sostituisci quanto segue:
API_CLIENT_ID: il tuo ID client del passaggio precedente.API_CLIENT_SECRET: il tuo client secret del passaggio precedente.LOOKER_INSTANCE_ADDRESS: l'indirizzo dell'istanza di Looker, incluso il protocollo.OUTPUT_CSV_PATH: il percorso per l'output CSV, ad esempio/content/compute_usage_info.csv.SSL: indica se la connessione tra la macchina e l'istanza di Looker deve utilizzare un certificato SSL. Il valore predefinito ètrue.
Questo comando genera un file CSV con i dettagli di utilizzo dell'istanza di Looker.
Genera informazioni sul rendimento del file system
Questo script mostra le dimensioni e il numero di file delle singole directory correlate al modello, insieme a un test della velocità di scrittura su disco. Suppone che Looker sia installato nella home directory di un utente con il nome utente looker, come descritto nella pagina della documentazione Installazione dell'applicazione Looker.
Per utilizzare lo script di valutazione della migrazione per restituire informazioni sul rendimento del file system dell'istanza, esegui il seguente comando sulla macchina su cui è ospitata l'istanza di Looker:
cd looker-o2c-migration-tool
go run main.go --file-system-evaluation --output-csv-path OUTPUT_CSV_PATH
Sostituisci quanto segue:
OUTPUT_CSV_PATH: il percorso per l'output CSV, ad esempio /content/fs_perf_info.csv
Questo comando genera un file CSV con il rendimento del file system dell'istanza di Looker.
Prepara l'istanza per il backup
Prepara il backup dei dati dell'istanza installando i pacchetti e le dipendenze necessari per eseguire gli script descritti in questa pagina. Puoi anche impostare alcune variabili di ambiente per semplificare la scrittura dei comandi.
Installa e verifica le dipendenze
Quando installi le dipendenze necessarie per eseguire il backup dei dati dell'istanza di Looker, utilizza il gestore di pacchetti standard per la tua distribuzione Linux. Le seguenti versioni corrispondono ai pacchetti forniti in Debian 12 (Bookworm) e rappresentano la versione minima di ogni pacchetto richiesto.
Installa i seguenti pacchetti sulla macchina su cui eseguirai il backup dei dati dell'istanza di Looker:
bash 5.2.15gpg2.2.40(GnuPG) – Il processo di generazione del backup utilizzagpgper criptare i backup del database e del file system prima che vengano condivisi con il team di Looker.libgcrypt 1.10.2Gpg-agent 2.2.40(GnuPG)GNU tar 1.34gzip 1.12md5sum 9.1(GNU coreutils)GNU grep 3.11(con supporto per PCRE2 10.42 2022-12-11 o versioni successive)GNU sed 4.9mariadb-client-core(deve connettersi a MySQL 8.X)
Ad esempio, esegui i seguenti comandi per installare i pacchetti necessari su un sistema Linux basato su Debian:
sudo apt-get update
sudo apt-get install -y \
bash \
gnupg \
libgcrypt20 \
gnupg-agent \
tar \
gzip \
coreutils \
grep \
sed \
mariadb-client-core
Definisci le variabili
I seguenti comandi definiscono alcune variabili che verranno utilizzate durante il processo di generazione del backup. Configurale in qualsiasi terminale in cui prevedi di eseguire altri comandi.
Variabile di ambiente: imposta il percorso della directory di backup
Il seguente comando imposta il percorso della directory di backup in cui verranno creati i file. Esegui questi comandi in qualsiasi terminale in cui prevedi di eseguire le attività di generazione del backup specifiche della directory:
BACKUP_DIRECTORY="DIRECTORY_PATH"
BACKUP_DIRECTORY="${BACKUP_DIRECTORY%/}"
Sostituisci quanto segue:
DIRECTORY_PATH: il percorso in cui verranno creati i file di backup. Assicurati che questa directory sia abbastanza grande da contenere il backup. Non includere il carattere/iniziale del percorso.
Variabile di ambiente: imposta il percorso di origine per il backup del file system
La definizione della variabile per il percorso di origine del backup del file system presuppone che looker sia il nome utente dell'utente che ha installato l'applicazione Looker e che l'installazione sia avvenuta nella home directory dell'utente, come descritto nella pagina della documentazione Installazione dell'applicazione Looker. Devi modificare la variabile se hai installato Looker in una directory diversa. Imposta questa variabile nel terminale in cui eseguirai il backup del file system di Looker:
LOOKER_USER="looker"
ROOT_LOOKER_FS_DIRECTORY="$(getent passwd "$LOOKER_USER" | cut -d: -f 6)"
Variabile di ambiente: definisci la nuova istanza di Looker
Definisci le variabili per rappresentare il nome e l'ID univoco dell'istanza in cui eseguirai l'importazione. Il team di Looker ti fornisce i valori di queste variabili.
export luid='LOOKER_HOSTED_INSTANCE_ID'
export customer='LOOKER_HOSTED_INSTANCE_NAME'
Sostituisci quanto segue:
LOOKER_HOSTED_INSTANCE_ID: l'identificatore univoco dell'istanza di Looker di cui eseguirai la migrazioneLOOKER_HOSTED_INSTANCE_NAME: il nome della nuova istanza di Looker di cui eseguirai la migrazione
Variabile di ambiente: chiave di crittografia
Il seguente comando installerà una chiave GPG pubblica sull'istanza. Configurala in qualsiasi terminale in cui eseguirai i comandi di backup dell'istanza (Looker ti fornirà il valore di questa variabile):
base64_encryption_key="BASE64_ENCRYPTION_KEY"
Sostituisci quanto segue:
BASE64_ENCRYPTION_KEY: la chiave di crittografia utilizzata dallo script di backup per criptare i backup. Il team di Looker ti fornisce il valore di questa variabile.
Genera una chiave di crittografia pubblica
Il seguente comando installerà una chiave pgp pubblica sull'istanza. Gli script di backup utilizzano questa chiave per criptare il backup. Configurala in qualsiasi terminale in cui eseguirai i comandi per eseguire il backup dell'istanza.
echo -n "${base64_encryption_key}" | base64 -d | gpg --import
Esegui il backup dei dati dell'istanza
Esegui i seguenti comandi per creare un pacchetto sicuro dei componenti critici del file system e dello schema del database dell'istanza in modo che possano essere trasferiti e ripristinati in una nuova istanza di Looker (originale) con hosting di Looker. Lo script eseguirà il backup utilizzando md5sum per verificare e convalidare l'integrità del backup. Infine, cripta il backup utilizzando GnuPG prima di esportare i risultati in formato di file MD5.
Esegui il backup dei dati del file system dell'istanza
Esegui questi comandi dalla directory in cui vuoi esportare i dati di backup e nello stesso terminale in cui hai impostato le variabili di ambiente. Seleziona la scheda relativa al tipo di istanza con hosting di Looker di cui prevedi di eseguire la migrazione.
Looker (originale)
Esegui questo comando per assicurarti che tutti gli hook lato server Git personalizzati utilizzati per la convalida dei dati o l'automazione del flusso di lavoro siano inclusi nel backup:
cd "${BACKUP_DIRECTORY}"
function findHookPath() {
rootPath=$1
find \
${rootPath}/models{-user-*,}/*/.git/config \
-maxdepth 0 \
-type f \
-xtype f \
| xargs -I {} grep hooksPath {} \
| sort \
| uniq \
| sed -r -e 's/^.+hooksPath = //g' \
| xargs -I {} dirname {} \
| sort \
| uniq \
| sed -r -e "s#\.\.\/\.\.\/#${rootPath}/#g"
}
hooksPath=$(findHookPath "${ROOT_LOOKER_FS_DIRECTORY}" | sort | uniq | head -1)
Esegui questo comando per elencare tutte le directory necessarie ed eseguirne il backup:
time find "${ROOT_LOOKER_FS_DIRECTORY}" \
-maxdepth 1 \
-type d \
\( \
-name marketplace \
-o -name bare_models \
-o -name deploy_keys \
-o -name models \
-o -name remote_dependencies \
-o -name models-self-service \
-o -name "models-user-*" \
-o -wholename "${hooksPath}" \
\) | tar \
--gzip \
--create \
--file="${customer}_looker_fs_backup.tar.gz" \
--files-from=-
Esegui questo comando per acquisire un'"impronta" del backup prima della crittografia:
time md5sum "${customer}_looker_fs_backup.tar.gz" > "${customer}_fs_backup.md5"
Esegui questo comando per criptare il backup:
time gpg --encrypt --yes \
--output "${customer}_looker_fs_backup.tar.gz.enc" \
--recipient "looker-devops+migration-${luid}@google.com" \
"${customer}_looker_fs_backup.tar.gz"
Esegui questo comando per acquisire un'altra "impronta" dopo la crittografia:
time md5sum "${customer}_looker_fs_backup.tar.gz.enc" >> "${customer}_fs_backup.md5"
Il checksum aiuta Looker a verificare l'integrità del backup dei dati.
Looker (Google Cloud core)
Esegui questo comando per assicurarti che tutti gli hook lato server Git personalizzati utilizzati per la convalida dei dati o l'automazione del flusso di lavoro siano inclusi nel backup:
cd "${BACKUP_DIRECTORY}"
function findHookPath() {
rootPath=$1
find \
${rootPath}/models{-user-*,}/*/.git/config \
-maxdepth 0 \
-type f \
-xtype f \
| xargs -I {} grep hooksPath {} \
| sort \
| uniq \
| sed -r -e 's/^.+hooksPath = //g' \
| xargs -I {} dirname {} \
| sort \
| uniq \
| sed -r -e "s#\.\.\/\.\.\/#${rootPath}/#g"
}
hooksPath=$(findHookPath "${ROOT_LOOKER_FS_DIRECTORY}" | sort | uniq | head -1)
Esegui questo comando per elencare tutte le directory necessarie ed eseguirne il backup:
time find "${ROOT_LOOKER_FS_DIRECTORY}" \
-maxdepth 1 \
-type d \
\( \
-name marketplace \
-o -name bare_models \
-o -name deploy_keys \
-o -name models \
-o -name remote_dependencies \
-o -name models-self-service \
-o -name "models-user-looker" \
-o -wholename "${hooksPath}" \
\) | tar \
--gzip \
--create \
--file="${customer}_looker_fs_backup.tar.gz" \
--files-from=-
Esegui questo comando per acquisire un'"impronta" del backup prima della crittografia:
time md5sum "${customer}_looker_fs_backup.tar.gz" > "${customer}_fs_backup.md5"
Esegui questo comando per criptare il backup:
time gpg --encrypt --yes \
--output "${customer}_looker_fs_backup.tar.gz.enc" \
--recipient "looker-devops+migration-${luid}@google.com" \
"${customer}_looker_fs_backup.tar.gz"
Esegui questo comando per acquisire un'altra "impronta" dopo la crittografia:
time md5sum "${customer}_looker_fs_backup.tar.gz.enc" >> "${customer}_fs_backup.md5"
Il checksum aiuta Looker a verificare l'integrità del backup dei dati.
Questo script genera i seguenti file per la parte di migrazione del file system:
${customer}_looker_fs_backup.tar.gz.enc: il backup del file system criptato e compresso.${customer}_fs_backup.md5: il file che contiene i checksum per la verifica.
Esegui il backup dello schema del database dell'istanza
Questi comandi preparano l'ambiente per il backup dello schema del database dell'istanza di Looker creando un file di configurazione temporaneo che consente agli strumenti di migrazione di connettersi al database interno dell'istanza di Looker. Anziché passare direttamente i dati sensibili come nomi utente e nomi host ai comandi, questo script li scrive nel file di configurazione, che può essere letto da strumenti come mysqldump e mysql.
Esegui il seguente comando per creare il file di configurazione temporaneo e impostare varie impostazioni:
export database_name="DATABASE_SCHEMA_NAME"
temporary_cnf_file="$(mktemp --tmpdir=. --suffix .cnf)"
echo "[client]
host=DATABASE_HOST
port=DATABASE_PORT
user=DATABASE_USER
password=PASSWORD
[mariadb-dump]
no-sandbox
[mysql]
no-auto-rehash
[mysqldump]
no-tablespaces
loose_set-gtid-purged=OFF
single-transaction
quick
max_allowed_packet=1G
ignore-table=${database_name}.LookerQ_LookerBQ_ACTIVEMQ_ACKS
ignore-table=${database_name}.LookerQ_LookerBQ_ACTIVEMQ_LOCK
ignore-table=${database_name}.LookerQ_LookerBQ_ACTIVEMQ_MSGS
[Server-specific settings - mostly for mysqld/mariadbd processes]
max_allowed_packet = 1024M
" > ${temporary_cnf_file}
Sostituisci quanto segue:
DATABASE_HOST: il DNS o l'IP del database di Looker.DATABASE_PORT: la porta del database.DATABASE_USER: il nome utente del database per eseguire l'esportazione.PASSWORD: il valore in testo non crittografato della password dell'utente che eseguirà l'esportazione. Looker non controllerà questa password. Tuttavia, se preferisci omettere il requisito della password in testo non crittografato, puoi lasciare vuota questa variabile e il sistema ti chiederà di inserire la password quando esegui i comandi di backup.DATABASE_SCHEMA_NAME: il nome del database o dello schema.
Se il database richiede un certificato SSL per la connessione, aggiungi i seguenti percorsi al file di configurazione temporaneo:
Imposta il percorso del file dell'autorità di certificazione (CA):
ssl-ca=/etc/mysql/certs/ca.pem
Imposta il percorso del certificato SSL client:
ssl-cert=/etc/mysql/certs/client-cert.pem
Imposta il percorso della chiave privata SSL client:
ssl-key=/etc/mysql/certs/client-key.pem
Per i database MySQL, richiedi un SSL e verifica il certificato del server:
loose-ssl-mode=VERIFY_CA
Per i database MariaDB, richiedi un SSL e verifica il certificato del server:
loose-ssl-verify-server-cert=ON
Esegui i seguenti comandi per eseguire, criptare e verificare il backup dello schema del database.
Vai alla directory in cui vuoi archiviare il backup:
cd "${BACKUP_DIRECTORY}"
Esegui questo comando per eseguire il backup del database:
time mysqldump \
--defaults-file="${temporary_cnf_file}" \
"${database_name}" \
| gzip > "${customer}_looker_db_backup.sql.gz"
Esegui questo comando per acquisire un'"impronta" del backup prima della crittografia:
time md5sum "${customer}_looker_db_backup.sql.gz" >> "${customer}_db_backup.md5"
Esegui questo comando per criptare il backup:
time gpg --encrypt --yes \
--output "${customer}_looker_db_backup.sql.gz.enc" \
--recipient "looker-devops+migration-${luid}@google.com" \
"${customer}_looker_db_backup.sql.gz"
Esegui questo comando per acquisire un'altra "impronta" dopo la crittografia:
time md5sum "${customer}_looker_db_backup.sql.gz.enc" >> "${customer}_db_backup.md5"
Questo script genera i seguenti file per la parte di migrazione dello schema del database:
${customer}_looker_db_backup.sql.gz.enc: il backup dello schema del database criptato e compresso.${customer}_db_backup.md5: il file che contiene i checksum per la verifica.
Cripta la chiave di crittografia gestita dal cliente (CMK)
I seguenti comandi convalideranno, formatteranno e criptano la CMK. Senza questa crittografia, un database migrato non può essere decriptato nel nuovo ambiente Looker.
Attenzione:il comando CMK successivo deve essere eseguito una sola volta sulla macchina che ospita il database interno o sulla macchina che ospita l'istanza di Looker, ma non su entrambe.
Innanzitutto, imposta una variabile con la CMK attuale, che deve essere in formato base64:
CMK="CUSTOMER_CMK_KEY"
Sostituisci quanto segue:
CUSTOMER_CMK_KEY: il valore della CMK
Quindi, esegui i seguenti comandi per generare un file della chiave CMK, generare il checksum della CMK decriptata, criptare il file CMK e generare il checksum della CMK criptata:
echo -n "${CMK}" > "${customer}_looker_cmk_key"
time md5sum "${customer}_looker_cmk_key" >> "${customer}_cmk_key.md5"
time gpg --encrypt --yes \
--output "${customer}_looker_cmk_key.enc" \
--recipient "looker-devops+migration-${luid}@google.com" \
"${customer}_looker_cmk_key"
time md5sum "${customer}_looker_cmk_key.enc" >> "${customer}_cmk_key.md5"
Questo script genera i seguenti file per la parte di migrazione della CMK:
${customer}_looker_cmk_key.enc: il file CMK criptato${BACKUP_DIRECTORY}/${customer}_cmk_key.md5: il file che contiene i checksum per la verifica
Prepara i file di migrazione
Gli script che hai eseguito finora hanno generato i seguenti file:
compute_usage_info.csv: il file CSV che contiene informazioni sull'utilizzo di Compute dell'istanzafs_perf_info.csv: il file CSV che contiene informazioni sul rendimento del file system dell'istanza${customer}_looker_fs_backup.tar.gz.enc: il backup del file system criptato e compresso${customer}_fs_backup.md5: il file che contiene i checksum per la verifica${customer}_looker_db_backup.sql.gz.enc: il backup dello schema del database criptato e compresso${customer}_db_backup.md5: il file che contiene i checksum per la verifica${customer}_cmk_key.md5: il file che contiene i checksum per la verifica${customer}_looker_cmk_key.enc: il file CMK criptato
Per combinare i file MD5 in un unico file denominato ${customer}_backup.md5, esegui il seguente comando nella directory di backup:
cat \
"${customer}_db_backup.md5" \
"${customer}_fs_backup.md5" \
"${customer}_cmk_key.md5" \
| sort | uniq \
> "${customer}_backup.md5"
Convalida gli artefatti di backup
Per assicurarti che i file di backup siano completi, sicuri e pronti per la migrazione, utilizza lo strumento di verifica dei dati on-prem di Looker. Questo strumento esegue una convalida completa, inclusi il controllo dei checksum MD5, delle chiavi di crittografia GPG, della struttura del database e della validità della CMK.
Installa lo strumento di convalida
Per eseguire lo strumento di convalida, devi aver installato Go e GnuPG sulla tua macchina.
Per clonare il repository e creare lo strumento, esegui i seguenti comandi:
git clone https://github.com/looker-open-source/customer-scripts.git
cd customer-scripts/onprem-data-verifier
go build -o onprem-verifier main.go
Esegui lo strumento di convalida
Lo strumento opera sulla directory contenente i file di backup. Prima di eseguire lo strumento, assicurati che tutti i file richiesti (quattro artefatti criptati e tre decriptati) si trovino in ${BACKUP_DIRECTORY}.
Esegui il seguente comando per convalidare gli artefatti:
./onprem-verifier \
--backupDir "${BACKUP_DIRECTORY}" \
--customerName "${customer}" \
--luid "${luid}"
Se l'operazione va a buon fine, lo strumento genera un file metadata.json. Devi includere questo file quando consegni gli artefatti di backup al team di Looker.
Consegna i file
Al termine del processo di backup e crittografia, dovresti avere i seguenti file:
${customer}_looker_db_backup.sql.gz.enc${customer}_looker_fs_backup.tar.gz.enc${customer}_looker_cmk_key.enc${customer}_backup.md5metadata.jsoncompute_usage_info.csvfs_perf_info.csv
Consegna questi file al team di Looker per l'importazione in un'istanza con hosting di Looker.