• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar
El Blog de Jorge de la Cruz

El Blog de Jorge de la Cruz

El Blog de Jorge de la Cruz - Todas las novedades sobre VMware, Veeam, InfluxData, Grafana, Zimbra, etc.

  • Home
  • VMware
    • VMworld
    • VMware vSphere 6.7
    • VMware vSphere 6.5
  • Veeam
    • Resumen Contenido 2021
    • Veeam v11
      • Continuous Data Protection (CDP
      • Ransomware Protection
      • Archive Tier
      • Mejoras en Instant Recovery
      • Veeam Agent for Mac
      • Veeam Backup for AHV v2.1
    • Veeam Backup for Microsoft Office 365
      • 1 – Razones para proteger nuestra información en Microsoft Office 365
      • 2 – Componentes lógicos de Veeam Backup for Microsoft Office 365 2.0
      • 3 – Instalación paso a paso de Veeam Backup for Microsoft Office 365 v2.0
      • 4 – Configuración inicial de Veeam Backup for Microsoft Office 365 v2.0
      • 5 – Creando trabajos de copia en Veeam Backup for Microsoft Office 365 v2.0
      • 6 – Restaurando elementos en Veeam Backup for Microsoft Office 365 v2.0
    • Veeam Backup for AWS
      • Veeam: Veeam anuncia Veeam Backup for AWS Free Edition
      • Veeam: Cómo Desplegar Veeam Backup for AWS – paso a paso
      • Veeam: Vistazo en profundidad al nuevo Veeam Backup for AWS – Creación de Políticas de Backup y Restauración
      • Veeam: Cómo conectar nuestro Veeam Backup & Replication a Veeam Backup for AWS
    • Veaam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte I – Introducción a Veeam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte II – Descarga e Instalación de Veeam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte III – Añadir una Infraestructura de VMware vSphere a Veeam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte IV – Añadir una Infraestructura de Veeam Backup and Replication a Veeam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte V – Realizando troubleshooting de vSphere usando Veeam ONE Monitor
      • En busca del Dashboard perfecto: Veeam ONE – Parte VI – Realizando troubleshooting de Veeam Backup and Replication usando Veeam ONE Monitor
      • En busca del Dashboard perfecto: Veeam ONE – Parte VII – Vistazo profundo a los Dashboards en Veeam ONE Reporter
      • En busca del Dashboard perfecto: Veeam ONE – Parte VIII – Vistazo profundo a Reportes en Veeam ONE Reporter
      • En busca del Dashboard perfecto: Veeam ONE – Parte IX – Chargeback para crear reportes de coste de nuestra Infraestructura
    • Veeam Availability Console
      • 1 – Teoría e información útil sobre el producto
      • 2 – Instalación de Veeam Availability Console
      • 3 – Configuración y conexión con VBR Server
      • 4 – Administración centralizada de Veeam Backup Agents
      • 5 – Backup de Agentes a diferentes destinos, SMB, Repositorio Veeam o Cloud Connect
      • 6 – Reportes de Backup de Veeam Agent y Veeam Backup and Replication
      • 7 – Manejando la Facturación de Veeam Agents, Backup and Replication y Cloud Connect
    • Backup y restore de cargas de trabajo a Microsoft Azure
      • 1 – Introducción
      • 2 – Conectividad entre nuestro Datacenter y Microsoft Azure
      • 3 – Desplegar Veeam Backup and Replication en Microsoft Azure
      • 4 – Configuración en nuestro Datacenter para backup a Microsoft Azure
      • 5 – Restaurando a Microsoft Azure, desde Microsoft Azure
      • 6 – Migrar cargas de trabajo desde Microsoft Azure hacía nuestro Datacenter
    • Veeam v9.5 Update 4
      • Veeam Cloud Tier
        • Cómo controlar el ancho de banda en Veeam Cloud Tier
      • Secure Restore y Staged Restore
      • Mejoras en Veeam Agent Management
      • Veeam Community Edition
      • Actualizar Veeam Enterprise Manager y Veeam Backup and Replication a la última versión
      • VeeamONE con Intelligent Diagnostics, Remediation actions, Business View 2.0 y Application Monitoring
    • VeeamON 2022
      • Novedades en Veeam ONE v12
    • VeeamON 2021
      • VBO v6 – Self-Service y Backup Copy Glacier-Azure Archive
    • VeeamON 2020
      • Veeam Backup for AWS v2.0
    • VeeamON 2019
      • Veeam Availability Orchestrator v2.0 – ¡novedades!
    • VeeamON 2017
      • Sesiones recomendadas
      • Día I – Veeam Availability Suite v10 – ¡novedades!
      • Día II – Veeam Azure PN (Powered Network), Scale-out Archive Tier y mucho más
    • VeeamON 2015
      • VeeamON 2015 volverá a Las Vegas en el único Evento sobre Disponibilidad en el Data Center
      • Completo resumen, keynotes e imágenes
      • vBrownBag – Jorge de la Cruz – Stop sending postcards to your customers
  • Zextras
  • PRTG
  • Office 365
    • Microsoft – Añadiendo nuestro dominio a Office 365, configuración de DNS y migración de actual Mailbox
    • Veeam: Usando Microsoft Office 365 para nuestras notificaciones por correo electrónico
    • PRTG: Usando Microsoft Office 365 para nuestras notificaciones por correo electrónico
  • Zimbra
    • Instalación
      • Instalando Zimbra 8.7.6 sobre Ubuntu 14.04 LTS – ¡con Chat y Drive!
      • Amazon Lightsail para instalar Zimbra Collaboration 8.7.1, Parte II
      • Amazon Lightsail para instalar Zimbra Collaboration 8.7.1, Parte I
      • Instalando Zimbra 8.7.x con un solo comando, incluye Chat y Drive
  • Linux
    • InfluxDB, Grafana y Telegraf
      • 1 – Instalación y configuración de los components
      • 2 – Instalar agente en Linux
      • 3 – Integración con PRTG
      • 4 – Instalar agente Telegraf en Nodos remotos Windows
      • 5 – Activar inputs específicos, Red, MySQL/MariaDB, Nginx
      • 6 – Monitorizando Veeam
    • Ansible y Zabbix
      • 1 – Inicio
      • 2 – Instalación de Ansible e integración con Active Directory
      • 3 – Configuración de AutoDiscovery en Zabbix
      • 4 – Instalación del agente de Zabbix en Windows
      • 5 – Instalación del agente de Zabbix en Linux y Auto Remove en Zabbix
    • Jenkins
      • 1 – Inicio
      • 2 – Instalación de Jenkins en Ubuntu
      • 3 – Instalando nuestro primer plugin
      • 4 – Sincronización NTP de Linux
      • 5 – Añadir un Slave Windows a Jenkins
      • 6 – Ejecutar tareas en Linux
      • 7 – Ejecutar tareas en Windows
    • Kubernetes
      • 1 – Introducción a Kubernetes
      • 2 – Instalación paso a paso
      • 3 – RollingUpdate con Kubernetes
      • 4 – Dashboard
      • 5 – Volúmenes NFS
      • 6 – Registry
      • 7 – Traefik
      • 8 – Systemd con Traefik y Proxy de Kubernetes
      • 9 – Heapster Influx Grafana
      • 10 – Labels de Kubernetes
      • 11 – API: Swagger
      • 12 – API: Creando nuestro primer POD
  • Contribuidores
    • Acerca de Jorge
    • Acerca de Oscar Mas
      • Clúster SQL
        • 1 – Introducción
        • 2 – Preparación de los equipos virtuales
        • 3 – Instalación del Clúster de Microsoft
        • 4 – Instalación de SQL Server para Clúster de Microsoft
        • 5 – Configuración de nuestro Clúster de SQL
        • 6 – Monitorización de Clúster de SQL con Zabbix
        • 7 – Actualizando clúster de SQL

Veeam: Don’t let your dog eat your blog – Protegiendo cPanel multi-tenant usando Veeam Agent for Linux y Veeam Cloud Connect

7 May, 2018 - Escrito en: veeam

Saludos amigos, hoy os traigo un blog post muy interesante y pensado para Proveedores de Servicio, pero no limitado a estos.

Hoy os traigo un paso más allá, y se trata de aprovechar la funcionalidad de poder lanzar Backups de los usuarios de un cPanel a un Provededor de Cloud Connect que incluye Veeam Agent for Linux 2.0, cada backup asignado a su tenant, etc.

Como este Blog post se me ha quedado un poco largo, os dejo el menú para que saltéis a donde más interesante os sea:

  • 1.- Topología y breve explicación de la Infraestructura
  • 2.- Instalación de Veeam Agent for Linux 2.0
  • 3.- Vistazo rápido a los comandos CLI de Veeam Agent for Linux 2.0
  • 4.- Añadir los diferentes tenants de Cloud Provider por cada tenant
  • 5.- Creación de los Scripts pre-freeze y post-thaw con Backup de cPanel
  • 6.- Creación y programación de los trabajos de copia de Veeam Agent for Linux 2.0
  • 7.- Lanzar los trabajos de copia de Veeam Agent for Linux 2.0
  • 8.- Comprobando como Proveedor de Servicio que los Backups se han ejecutado
  • 9.- Acceder como tenant a los ficheros de Backup usando Veeam Agent FLR Linux (File-level-recovery)

1.- Topología y breve explicación de la Infraestructura

Como siempre, me gustaría dejaros un diagrama de cómo quedará esta Infraestructura y el flow de datos entre cPanel, Veeam Cloud Connect y los tenants:

Para hacer funcionar todo este entorno tendremos que tener lo siguiente:

  • Una licencia de cPanel WHM, y acceso como root a shell. (También podríamos extra polar esto a un server LAMP con múltiples cargas de trabajo, etc, pero sería más manual)
  • Veeam Agent for Linux 2.0 Server Edition – Usaremos la versión Server ya que queremos crear multi-trabajos, uno por cada tenant, y por supuesto hacer uso de los scripts pre-freeze y post-shaw que nos generará el backup de cada tenant.
  • Un proveedor, o proveedores de Veeam Cloud Connect, podéis echar un vistazo a la lista aquí – https://www.veeam.com/find-a-veeam-cloud-provider.html

Una vez tenemos todo listo, podemos pasar al siguiente punto.

2.- Instalación de Veeam Agent for Linux 2.0

El proceso de instalación es muy sencillo siguiendo estos pasos, como mi cPanel se ejecuta sobre CentOS 6.x, usaré el fichero binario de GitHub para descargar la correspondiente versión:

wget https://download2.veeam.com/veeam-release-el6-1.0-1.x86_64.rpm
--2018-05-03 18:38:19--  https://download2.veeam.com/veeam-release-el6-1.0-1.x86_64.rpm
Resolving download2.veeam.com... 52.85.71.171
Connecting to download2.veeam.com|52.85.71.171|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7863 (7.7K) [application/octet-stream]
Saving to: veeam-release-el6-1.0-1.x86_64.rpm

100%[===============>] 7,863       --.-K/s   in 0s      

2018-05-03 18:38:19 (371 MB/s) - veeam-release-el6-1.0-1.x86_64.rpm saved [7863/7863]

Una vez hemos descargado el fichero, lo instalaremos de la siguiente manera y haremos un update de los paquetes:

rpm -ivh ./veeam-release* && yum check-update
Preparing...                ########################################### [100%]
   1:veeam-release-el6      ########################################### [100%]
Loaded plugins: fastestmirror, universal-hooks
Loading mirror speeds from cached hostfile
epel/metalink                                                                                                                                     |  25 kB     00:00     
 * EA4: 85.13.201.2
 * cpanel-addons-production-feed: 85.13.201.2
 * base: mirror.ams1.nl.leaseweb.net
 * epel: ftp.nluug.nl
 * extras: mirror.ams1.nl.leaseweb.net
 * updates: mirror.ams1.nl.leaseweb.net
EA4                                                                                                                                               | 2.9 kB     00:00 ... 
cpanel-addons-production-feed                                                                                                                     | 2.9 kB     00:00 ... 
MariaDB101                                                                                                                                        | 2.9 kB     00:00     
base                                                                                                                                              | 3.7 kB     00:00     
digitalocean-agent                                                                                                                                | 3.3 kB     00:00     
epel                                                                                                                                              | 4.7 kB     00:00     
extras                                                                                                                                            | 3.4 kB     00:00     
influxdb                                                                                                                                          | 2.5 kB     00:00     
updates                                                                                                                                           | 3.4 kB     00:00     
veeam                                                                                                                                             | 3.3 kB     00:00     
veeam/primary_db                                                                                                                                  | 5.8 kB     00:00     

veeam-release-el6.x86_64                                                                  1.0.5-1                                                                   veeam
root@lonhst01 [~]# yum install veeam
Loaded plugins: fastestmirror, universal-hooks
Setting up Install Process
Loading mirror speeds from cached hostfile
 * EA4: 85.13.201.2
 * cpanel-addons-production-feed: 85.13.201.2
 * base: mirror.nforce.com
 * epel: mirror.vorboss.net
 * extras: mirror.nforce.com
 * updates: mirror.nforce.com
Resolving Dependencies
--> Running transaction check
---> Package veeam.x86_64 0:2.0.0.400-1.el6 will be installed
--> Processing Dependency: veeamsnap = 2.0.0.400 for package: veeam-2.0.0.400-1.el6.x86_64
--> Running transaction check
---> Package kmod-veeamsnap.x86_64 0:2.0.0.400-1.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=================================================
 Package                    Arch     Version     Repository     Size
=================================================
Installing:
 veeam                    x86_64     2.0.0.400-1.el6     veeam     29 M
Installing for dependencies:
 kmod-veeamsnap           x86_64     2.0.0.400-1.el6     veeam     100 k

Transaction Summary
=================================================
Install       2 Package(s)

Total download size: 29 M
Installed size: 77 M
Is this ok [y/N]:

El proceso nos preguntará entonces si queremos instalar los dos paquetes y dependencias, a lo cúal diremos Y, también nos preguntará el asistente si queremos instalar la llave del repositorio de Veeam, diremos Y también, el proceso de instalación apenas dura unos segundos:

Downloading Packages:
(1/2): kmod-veeamsnap-2.0.0.400-1.el6.x86_64.rpm                                                                                                  | 100 kB     00:00     
(2/2): veeam-2.0.0.400-1.el6.x86_64.rpm                                                                                                           |  29 MB     00:00     
----------------
Total                                                                                                                                     40 MB/s |  29 MB     00:00     
warning: rpmts_HdrFromFdno: Header V4 RSA/SHA1 Signature, key ID 8aaddc66: NOKEY
Retrieving key from http://repository.veeam.com/keys/RPM-GPG-KEY-VeeamSoftwareRepo
Retrieving key from file:///etc/pki/rpm-gpg/VeeamSoftwareRepo
Importing CA key 0xFBF8A590:
 Userid : Veeam Software Repository key <[email protected]>
 Package: veeam-release-el6-1.0-1.x86_64 (installed)
 From   : /etc/pki/rpm-gpg/VeeamSoftwareRepo
Is this ok [y/N]:
GPG key signature verified against CA Key(s)
Retrieving key from http://repository.veeam.com/keys/VeeamSoftwareRepo
Retrieving key from file:///etc/pki/rpm-gpg/VeeamSoftwareRepo
GPG key signature verified against CA Key(s)
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : kmod-veeamsnap-2.0.0.400-1.el6.x86_64                                                                                                                 1/2 
  Installing : veeam-2.0.0.400-1.el6.x86_64                                                                                                                          2/2 
Starting veeamservice: [  OK  ]
  Verifying  : veeam-2.0.0.400-1.el6.x86_64                                                                                                                          1/2 
  Verifying  : kmod-veeamsnap-2.0.0.400-1.el6.x86_64                                                                                                                 2/2 

Installed:
  veeam.x86_64 0:2.0.0.400-1.el6                                                                                                                                         

Dependency Installed:
  kmod-veeamsnap.x86_64 0:2.0.0.400-1.el6                                                                                                                                

Complete!

Ya tenemos Veeam Agent for Linux 2.0 instalado, vamos ahora a instalar rápidamente la licencia mediante CLI también, tan sencillo como ejecutar el siguiente comando, recordar que necesitamos la licencia de Server para este caso de uso:

root@lonhst01 [~]# veeamconfig license install --path /root/veeamlicense.xml --server
License was installed successfully.
License information:
  License source: Local license
  Expiration date: 2019/03/25 (326 days left)
  Status: License is valid.
  Mode: Server
  Issued to: Jorge de la Cruz
  Email: [email protected]

3.- Vistazo rápido a los comandos CLI de Veeam Agent for Linux 2.0

Para este tutorial vamos a configurar todo usando el CLI de Veeam Agent for Linux 2.0, de manera que nos acostumbramos a los comandos y podemos posteriormente crear sencillos scripts para automatizar la creación de más trabajos de copia para otros tenants, etc. Al final es lo que hace un Proveedor de Servicio más eficiente, poder automatizar tareas como estas.

De todos los comandos que tenemos que empiezan por veeam*, vamos a hacer especial hincapié en veeamconfig, que si lanzamos un help nos devuelve lo siguiente:

 veeamconfig --help
Veeam Agent for Linux
(c) Veeam Software AG

  Usage: veeamconfig [command]

Commands:
  repository               - Backup repositories management
  vbrserver                - Veeam Backup and Replication servers management
  job                      - Backup jobs management
  backup                   - Backups management
  point                    - Restore points management
  license                  - License management
  config                   - Import/export configuration
  schedule                 - Jobs schedule configuration
  cloud                    - Cloud provider management
  mode                     - Operation mode
  session                  - Sessions management
  ui                       - User interface
  version, --version, -v   - Product version
  help, --help, -h         - Short help

Cómo podemos ver, algunos de los comandos más básicos serían el de versión y este mismo de help, por ejemplo:

veeamconfig -v
v2.0.0.400

Si nos vamos hasta el de licencia que hemos usado anteriormente podremos ver la licencia instalada, así como eliminarla, etc:

veeamconfig license --help
Veeam Agent for Linux
(c) Veeam Software AG

  Usage: veeamconfig license [command]

Commands:
  show               - Display information about license
  install            - Install license
  remove             - Remove local license
  help, --help, -h   - Short help

En mi caso esta es la licencia:

veeamconfig license show
License information:
  License source: Local license
  Expiration date: 2019/03/25 (325 days left)
  Status: License is valid.
  Mode: Server
  Issued to: Jorge de la Cruz
  Email: [email protected]

Si ya saltamos a los otros valores mas avanzados, podemos ver que tenemos cloud, job, schedule, repository que al final son los más importantes, cada uno de ellos se puede añadir el –help para conocer más información, vamos a ver los más importantes y su help a continuación.

4.- Añadir los diferentes tenants de Cloud Provider por cada tenant

Si recordamos el diagrama del punto 1, queremos que cada tenant tenga el backup de su cuenta de cPanel en su propio Veeam Cloud Connect Repository usando su propio tenant de VCC, con lo que usaremos el comando veeamconfig cloud para crear los diferentes tenants, vamos a comenzar por el help:

veeamconfig cloud --help
Veeam Agent for Linux
(c) Veeam Software AG

  Usage: veeamconfig cloud [command]

Commands:
  add                - Add Cloud Connect provider
  edit               - Edit Cloud Connect provider
  resync             - Resync (refresh) available repositories list
  delete             - Delete Cloud Connect provider from database
  list               - List all Cloud Connect providers
  help, --help, -h   - Short help

Bastante sencillo el comando que nos quedará será algo similar a este, que tendremos que lanzar tantas veces como tenants tenemos, aparte de cambiar el nombre, URL y las credenciales claro:

veeamconfig cloud add --name tenant001 --address cloud.veeam.tech --port 6180 --login tenant001 --password Veeam123
Cloud provider certificate information:
   Issuer: /CN=cloud.veeam.tech
   Subject: /CN=cloud.veeam.tech
   Version: 2
   Fingerprint: 708128F99AAB7393A279B7895D6CA79FEC5E6DED
Is this information correct? (yes/no) yes
Cloud Connect provider has been added successfully.

De esta manera estamos añadiendo los diferentes proveedores de Cloud que podremos usar más tarde para crear los trabajos de backup.
Si queremos hacer un listado de los proveedores de Cloud, y el usuario tenant que estamos usando, podemos usar el siguiente comando:

root@lonhst01 [~]# veeamconfig cloud list
Name        ID                                      Address                  Gate servers  Username 
tenant001   {74187486-5683-4e01-b731-5ebfd20b604d}  cloud.veeam.tech:6180                tenant001
tenant002   {abc662a4-29ca-4832-868f-a661b601538e}  cloud.veeam.tech:6180                tenant002
tenant003   {403483f4-6d99-4607-9bf0-531ca6214c0c}  cloud.veeam.tech:6180                tenant003

Una vez que tenemos todos los Veeam Cloud Connect, es interesante conocer el nombre e ID de los Repositorios que estos proveedores nos han asignado, para ello tan sencillo como un veeamconfig repository list, donde podremos ver por cada proveedor cloud y tenant el repositorio que tienen asignado, recordar el nombre de los mismos:

root@lonhst01 [~]# veeamconfig repository list
Name                                             ID                                      Location    Type   Backup server
[CLOUD.VEEAM.TECH][tenant001]CC-REPO-100       {8d3068fb-c48c-4678-ac6c-d2605324c242}  tenant001   cloud               
[CLOUD.VEEAM.TECH][tenant002]CC-REPO-REFS-002  {1a958292-2510-4fd5-8ca2-d1308f849b05}  tenant002   cloud               
[CLOUD.VEEAM.TECH][tenant003]CC-TENANT-003     {98a9574f-f5b7-4911-92aa-dc9a859803ff}  tenant003   cloud

5.- Creación de los Scripts pre-freeze y post-thaw con Backup de cPanel

cPanel incluye una utilidad nativa para realizar el Backup completo, o incremental si quisieramos, de cada cuenta de cPanel, esto nos permite poder crear un script por cada usuario para el pre-freeze y para el post-thaw, los que he creado son bastante sencillos y los he ubicado en /backupveeam/, con lo que quedaría algo así:

root@[/backupveeam/veeamscripts]# ls -la
total 16
drwxr-xr-x  2 root root 4096 May  4 00:51 ./
drw-r----- 24 root root 4096 May  4 01:47 ../
-rwxr-xr-x  1 root root  154 May  4 00:26 post-thaw-tenant001.sh*
-rwxr-xr-x  1 root root  214 May  4 00:51 pre-freeze-tenant001.sh*
-rwxr-xr-x  1 root root  154 May  4 00:28 post-thaw-tenant002.sh*
-rwxr-xr-x  1 root root  214 May  4 00:52 pre-freeze-tenant002.sh*

Recordemos que por cada tenant, tengo sus scripts de pre y post, seguramente con un poco de buen hacer se pueden usar los mismos de manera más avanzada, pero bueno veamos cúal es el contenido de pre-freeze:

#!/bin/bash
##
## Script to protect an user cPanel account
## Author: Jorge de la Cruz
## Version: 0.1
##
/scripts/pkgacct cPaneltenant001 --compress --userbackup --use_backups --backup /backupveeam/tenant001/ 2>/dev/null

Lo que este comando hará es un Backup completo, SQL, ficheros, emails de cPanel de esa cuenta, cuentas de FTP, quotas, etc, y guardarlo en un fichero .tar.gz ubicado en /backupveeam/tenant001

Y este sería el contenido del post-thaw que basicamente es que borre todo el backup para no consumir espacio en disco:

##
## Script to delete an user cPanel account backup after Veeam Backup Job
## Author: Jorge de la Cruz
## Version: 0.1
##
rm -Rf /backupveeam/tenant001/*

Una vez tenemos los ficheros creados no os olvidéis del permiso de ejecución:

chmod +x /backupveeam/*

Nota: En mi caso particular he tenido que aumentar el tiempo de timeout de los trabajos de pre-freeze post-thaw ya que superaba los 10 minutos que Veeam Agent for Linux 2.0 trae por defecto, para ello editaremos el fichero /etc/veeam/veeam.ini y descomentaremos lo siguiente y pondremos 6000 segundos, que son 100 minutos:

[scripts]
# Ignore freeze and thaw scripts result
# ignoreFreezeThawFailures= false

# Timeout for freeze and thaw scripts
 timeoutFreezeThaw= 6000

# Timeout for pre- and post-backup scripts
 timeoutPrePost= 6000

Después tendremos que realizar el típico reinicio de los servicios de Veeam Agent for Linux 2.0:

/etc/init.d/veeamservice restart

Y ya podremos pasar al siguiente punto.

6.- Creación y programación de los trabajos de copia de Veeam Agent for Linux 2.0

Ya tenemos los Repositorios en Cloud listos por cada tenant, así como los scripts para que cPanel haga un backup antes de realizar el snapshot y lo elimine después para no consumir disco, es el momento entonces de crear nuestro trabajo de copia, la sintáxis del trabajo de copia es sencilla, siempre podemos usar el –help para irnos ayudando, por ejemplo:

veeamconfig job create --help
Veeam Agent for Linux
(c) Veeam Software AG

  Usage: veeamconfig job create [options] [command]

Commands:
  help, --help, -h   - Short help
  fileLevel          - Create new file-level backup job

Options:
  --name <value>                    - Job name
  --repoName <value>                - Repository name
  --compressionLevel <0...4>        - Compression level
  --blockSize <256|512|1024|4096>   - Block size (Kb)
  --maxPoints <value>               - Number of restore points to keep on disk
  --setEncryption                   - Enable backup file encryption
  --prefreeze <value>               - Pre-freeze command (executed before snapshot creation)
  --postthaw <value>                - Post-thaw command (executed after snapshot creation)
  --prejob <value>                  - Pre-job command (executed on job start)
  --postjob <value>                 - Post-job command (executed on job finish)
  --indexAll                        - Index all files and directories selected for backup
  --objects <value>                 - Comma-separated list of objects to backup (device file in /dev, filesystem mountpoint, LVM volume group name or LVM logical volume name)
  --backupAllSystem                 - Backup all system
  --indexOnly <value>               - List of all paths to be indexed, separated by comma
  --indexExcept <value>             - List of all paths to be excluded from indexing, separated by comma

Como en nuestro caso queremos que sea un trabajo de copia a nivel de ficheros, nos quedaría algo como lo siguiente, como podéis ver he indicado que el trabajo es una copia a nivel de ficheros, el nombre del trabajo para saber cúal es, el repositorio a donde queremos mandar el backup, puntos de restauración, así como los trabajos de pre-freeze y post-thaw, por último el directorio que queremos proteger :

veeamconfig job create filelevel --name BCJ-tenant001 --repoName '[CLOUD.VEEAM.TECH][tenant001]CC-REPO-100' --maxPoints 7 --prefreeze /root/veeamscripts/pre-freeze-tenant001.sh --postthaw /root/veeamscripts/post-thaw-tenant001.sh --includedirs /backupveeam/tenant001
Job has been created successfully.

Bastante sencillo es también listar los trabajos, es importante recordar el ID de los mismos para poder añadirlos a una programación:

veeamconfig job list
Name          ID                                      Repository                                
BCJ-tenant001 {b6735f06-0acc-4902-b4b8-de961327a9da}  [CLOUD.VEEAM.TECH][tenant001]CC-REPO-100

Ahora que ya tenemos el trabajo de copia creado, queremos progamarlo por supuesto, para ello usaremos el comando veeamconfig schedule:

veeamconfig schedule --help
Veeam Agent for Linux
(c) Veeam Software AG

  Usage: veeamconfig schedule [command]

Commands:
  enable             - Enable schedule
  disable            - Disable schedule
  show               - Show schedule
  set                - Set schedule
  help, --help, -h   - Short help

Basicamente el comando que queremos es el siguiente, una copia diaria, o con la periocidad que el tenant requiera, con el Id del Backup job, y la frecuencia en días:

veeamconfig schedule set --jobId b6735f06-0acc-4902-b4b8-de961327a9da --daily --at 00:15
Job schedule applied successfully.

Ya está todo listo y podemos movernos al siguiente punto, ¡buen trabajo! Recordar que este paso se ha de ejecutar por cada Backup Job a programar por cada tenant.

7.- Lanzar los trabajos de copia de Veeam Agent for Linux 2.0

Los trabajos de copia se ejecutarán automáticamente por supuesto en su horario, en caso de que quisieramos forzar el trabajo y verlo en la UI de Linux, ejecutaremos el comando veeam y seleccionaremos el trabajo que queremos lanzar:
Podremos ver como comienza el trabajo a ejecutarse, y lo primero que se realiza son los scripts que hemos configurado anteriormente:
Si hicieramos un ps -efa podremos ver que se está ejecutando el backup de cPanel:

root@lonhst01 [~]# ps -efa | grep pkgacct
root     22404 22400 23 00:08 ?        00:00:14 pkgacct - tenant001- av: 4 - write compressed stream
tenant00122439 22404  1 00:09 ?        00:00:00 pkgacct - teannt001- av: 4 - create tar stream
root     22453 32438  0 00:09 pts/2    00:00:00 grep pkgacct

Pasados unos minutos, dependiendo de vuestro ancho de banda hacía el proveedor Cloud, así como el tamaño de los tenant de cPanel, podremos ver ya el resultado de la copia:

Algunos puntos a tener en cuenta, los scripts que han funcionado a la perfección, y han tardado 13 minutos para este tenant, así como el tiempo del trabajo total, nada mal.

En otro ejemplo de otro tenant en el que la web es más pequeña, el backup se ha realizado en tan solo 2 minutos:

8.- Comprobando como Proveedor de Servicio que los Backups se han ejecutado

El Proveedor de Servicio podrá comprobar que cada tenant que ha enviado el backup desde Veeam Agent for Linux 2.0 cuenta como un Server, ya que es la licencia que el Veeam Agent for Linux tiene:

Si el Proveedor explora el Repositorio donde se almacenan los Backups, podrá encontrar el fichero .vbk con la copia de cPanel en su interior. Ahora que ya tenemos todo en la parte del proveedor, vamos a ver cómo un tenant puede visualizar y recuperar sus ficheros.

9.- Acceder como tenant a los ficheros de Backup usando Veeam Agent FLR (File-level-recovery)

Ya tenemos Backups, tenemos puntos de restauración, tenemos tenants, tenemos todo, vamos a ver cómo restaurar estos backups, para ello usaremos Veeam Agent FLR, que nos permite restaurar de manera granular los ficheros, montándolos en nuestro Linux, o en los Linux de los tenant en caso de que hayan perdido el server original, o estén restaurando a un nuevo server.

Vamos a utilizar el comando de veeamconfig point que nos da múltiples opciones:

veeamconfig point --help
Veeam Agent for Linux
(c) Veeam Software AG

  Usage: veeamconfig point [command]

Commands:
  mount              - Mount filesystem(s) from restore point
  restore            - Restore data volume(s) from restore point
  list               - List all points for backup
  export             - Export restore point data to virtual disks
  help, --help, -h   - Short help

Lo primero es conocer los Backups, con sus Ids que tenemos por cada tenant, etc:

veeamconfig backup list
Job name                                Backup ID                               Repository                                  Created at      
cPanel.veeam.tech BCJ-tenant001 {0775ab21-cc98-445f-b32d-e3a59c253ace}  [CLOUD.VEEAM.TECH][tenant001]CC-REPO-100  2018-05-04 00:07

Vemos que tenemos un Backup Job que hemos creado antes, que pertenece al tenant001, vamos a ver que puntos de restauración tiene:

veeamconfig point list --backupId 0775ab21-cc98-445f-b32d-e3a59c253ace
Job name                                OIB ID                                  Type  Created at        Is corrupt
cPanel.veeam.tech BCJ-tenant001  {e9b55e40-5976-4ac0-92a2-90f427c47c17}  Full  2018-05-04 01:06  false

Todo está correcto, además de no estar corrupto ni nada, vamos a proceder a montar este backup en nuestro sistema, o el tenant desde su propio Veeam Agent for Linux podría realizar este restore, si somos nosotros los que restauramos el backup al tenant, siempre podemos restaurarlo en su carpeta de cPanel para que pueda ver el fichero, si es el tenant puede restaurar por ejemplo en tmp

veeamconfig point mount --id e9b55e40-5976-4ac0-92a2-90f427c47c17 --mountDir /tmp
Restore point is mounted.
Session ID: [{fa98618f-f470-4593-8b52-33c429ed3646}].
Logs stored in: [/var/log/veeam/Mount/Session_20180504_023017_{fa98618f-f470-4593-8b52-33c429ed3646}].

Una vez el punto de restauración ha sido montado, ya se puede visualizar el contenido del backup, tan sencillo como hacer un ls -la a la siguiente carpeta:

ls -la /tmp/FileLevelBackup_0/backupveeam/tenant001/
total 6046400
drwxr-xr-x 2 root root       4096 May  4 01:05 ./
drwxr-xr-x 3 root root       4096 May  4 00:02 ../
-rw------- 1 root root 6185447473 May  4 01:05 tenant001.tar.gz

Ya desde aquí el tenant puede descomprimir el fichero y realizar las tareas pertinentes, o incluso importarlo a un nuevo cPanel tal cuál está el fichero.

Enlaces interesantes

Ya os he hablado en el pasado sobre Veeam Agent for Linux, podéis encontrar mucha más información sobre la instalación, etc, aquí:

  • Veeam: Veeam anuncia Veeam Agent for Linux 2.0 – Backups a Cloud Connect y ¡mucho más!
  • Veeam: Veeam Agent para Linux repositorio con enlaces rápidos de descarga
  • Veeam: Grabación del Webinar Nuevos Agentes Veeam para Linux y Windows, protegiendo tus cargas de trabajo físicas o en Cloud
  • Veeam: Instalando Veeam Agent para Linux, Backup gratuito para Servers Linux
  • Veeam: Vistazo rápido a Veeam Agent for Linux, Backup para Servers Linux

Espero que os guste esta entrada, es un caso de uso bastante interesante que no he visto aplicado todavía ahí fuera pero que seguro que os da ideas. Un saludo.

Filed Under: veeam Tagged With: veeam, veeam agent for linux, veeam cloud, veeam cpanel, veeam cpanel backup, veeam linux

Reader Interactions

Comments

  1. sisyteces says

    8 April, 2019 at 7:53

    Estupendo artículo Jorge, gracias por compartirlo.

    Reply

Trackbacks

  1. Veeam: Actualización de los Veeam Agents, novedades en Veeam Agent for Windows 2.2 y Veeam Agent for Linux 2.0.1 - El Blog de Jorge de la Cruz says:
    6 September, 2018 at 11:26

    […] Veeam: Don’t let your dog eat your blog – Protegiendo cPanel multi-tenant usando Veeam A… […]

    Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Primary Sidebar

  • Email
  • GitHub
  • LinkedIn
  • RSS
  • Twitter
  • YouTube

Gold Partners

Silver Partners

Libros Gratuitos

Cloud por vExperts
VMware por vExperts

VMware vExpert

Puesto 16 en Top vBlog

Calendario de Posts

May 2018
M T W T F S S
 123456
78910111213
14151617181920
21222324252627
28293031  
« Apr   Jun »

Disclaimer

Todas las opiniones expresadas en este sitio son las mías propias y no representan las opiniones de ninguna compañía con la que haya trabajado, esté trabajando o vaya a estar trabajando.

Copyright © 2026 · El Blog de Jorge de la Cruz