Actualmente las organizaciones disponen de multitud de recursos dispersos entre los mundos del On-premise, Cloud e incluso el Edge. Esto viene a complicar enormemente la gestión de dichos recursos, lo que dicho de otro modo: «es una situación que cuesta dinero a la empresa». Efectivamente, a día de hoy el control del coste se ha convertido en la principal obsesión por encima incluso de la seguridad, lo que viene a justificar la necesidad de ser capaces de mantener una configuración eficiente y óptima de todos los recursos empresariales, ya estén el nuestro Datacenter, en una nube pública, privada o en propio el dispositivo. Es decir, hay que ser capaces de agruparlos en un mismo lugar desde el que aplicar política de gestión, detectar accesos indebidos, controlar las actualizaciones así como los cambios en las configuraciones, para finalmente monitorizar toda la información que el departamento de IT requiera para un correcto seguimiento y optimización. Pues justo esto es lo que viene a conseguir Azure Arc-enabled Server para el caso de las máquinas virtuales.
Y lo bueno es que Azure Arc además dispone de soluciones similares a la que estamos describiendo, haciéndolo extensible a servicios como:
- Azure Arc-enabled SQL Servers
- Azure Arc-enabled Kubernetes
- Azure Arc-enabled Data Services
- Azure Arc-enabled Machine Learning
Visto así, suena genial. Conocemos el porqué, pero nos queda saber el cómo para finalmente descubrir el qué. ¡Vayamos a por ello!
Como lo que queremos es realizar un ejemplo paso a paso, lo primero que debo hacer es configurar mi servicio Azure Arc-enabled Server. Para ello voy a una de mis suscripciones de Azure y selecciono la solución.

En este primer ejemplo voy a incluir un único servidor, por lo que seleccionaré la primera de las opciones. La segunda alternativa te provee de un script al igual que la anterior pero que permite ejecutarse repetidas veces en las distintas máquinas sin tener que ejecutar todos los pasos que verás a continuación por cada una de ellas.

Lo siguiente es configurar el recurso y para ello elijo la región de West Europe y como sistema operativo, la máquina virtual es Linux. Se trata de una Ubuntu. Y finalmente indico que el método de conexión será mediante endpoint público. ¡Casi estamos!

Falta etiquetar correctamente la MV y obtendremos el script que debe ser ejecutado en dicha máquina para conseguir configurarla en nuestro Azure Arc-enabled Server.
# Download the installation package
wget https://aka.ms/azcmagent -O ~/install_linux_azcmagent.sh
# Install the hybrid agent
bash ~/install_linux_azcmagent.sh
# Run connect command
azcmagent connect --resource-group "rg-arc-server-dev" --tenant-id "76a2ae5a-9f00-4f6b-95ed-5d33d77c4d61" --location "westeurope" --subscription-id "1afb941e-4b1b-4d09-88e1-644dde613b1e" --cloud "AzureCloud" --tags "Datacenter='VirtualBox Lenovo',City=Madrid,StateOrDistrict=Madrid,CountryOrRegion=Spain,environment=dev" --correlation-id "186679d0-3031-4873-8591-22601e3e6000"
if [ $? = 0 ]; then echo "\033[33mTo view your onboarded server(s), navigate to https://portal.azure.com/#blade/HubsExtension/BrowseResource/resourceType/Microsoft.HybridCompute%2Fmachines\033[m"; fi
Mientras en otro portátil en el que tengo una VirtualBox con una máquina virtual Linux funcionando, copio y ejecuto el código por la terminal.

El proceso toma su tiempo y te obligará a autenticarte en Azure.

Una vez completado el proceso satisfactoriamente, sólo queda ir al grupo de recursos y refrescar para ver que ahora dispongo de un nuevo recurso en él.

No es otro que la MV recién configurada. ¿Magia?

Ahora sólo queda comenzar a configurar todas las opciones sobre las que queramos actuar en nuestra MV, por ejemplo habilitando la parte de Monitoring Insights. Veamos.

Mientras, he creado un Log Analytics Workspace que es requerido para habilitar Monitoring Insights, que como vemos es tan sencillo como pinchar en el icono y seleccionar el recurso directamente desde el combo y pulsar sobre el botón de Enable. Atentos por que es un proceso que toma su tiempo 😉

Una vez configurado, podremos acceder a la parte de Monitoring Insights de nuestra MV de este modo podremos controlar los procesos que se están ejecutando, así como las métricas de uso de CPU, memoria y demás valores de performance.
NOTA: en caso de que te de error de configuración, mira a ver si se debe a que no encuentra el OMS Agent para Linux. Si es así, debes seguir las instrucciones que se describen aquí. En el área de Agents management de tu Log Analytics Workspace encontrarás el script necesario para instalarlo tanto en máquinas Windows como Linux. Sólo tienes que copiarlo y ejecutar en tu terminal. Ah!, y mucho ojo a las configuraciones de Python, que te pueden dar un poco por saco 😉

Para finalmente reiniciar el servicio mediante
sudo /opt/microsoft/omsagent/bin/service_control restart [<workspace id>]
Otra capacidad muy interesante es la de poder gestionar los updates de la máquina virtual, para ello previamente hay que crear una Automation Account y configurarla.

Una vez creada, accedo a ella y desde la sección de Update management selecciono la cuenta de Log Analytics y pulso sobre el botón de habilitar.

Comprobamos que mi máquina virtual Linux está actualizada.

Si ahora voy a Logs y realizo una query veo todos los registros que ya se han ido insertando desde mi máquina on-prem.

O incluso todos los registros de las principales métricas de mi MV

Desde Log Analytics Workspace podemos revisar la información obtenida igualmente.

Como conclusión final, mencionar que Azure Arc nos permite simplificar enormemente el trabajo de los equipos de operaciones al permitir integrar la información de todos los recursos empresariales en un único lugar y sobre éste construir todo el conjunto de alertas, automatizar acciones, preparar cuadros de mandos y demás opciones.
Es una fantástica herramienta para optimizar recursos y costes, por lo que se abre una genial oportunidad de negocio.