Cómo distribuir el agente de zabbix en todas tus máquinas Linux

Hoy os traigo una pequeña solución a la instalación del agente de zabbix en todo vuestro parque de servidores Linux (o unix).

No es nada complicado pero a veces estas cosas nos hacen ganar mucho tiempo si tenemos que hacer instalaciones masivas.

Lo primero que tenemos que tener es una de las máquinas instalada con el agente, el árbol de directorios y el fichero de configuración completo menos la parte de Server y ServerActive.

bash-4.1$ ls -lrt zabbix

total 24

drwxr-xr-x 2 zabbix zabbix 4096 Sep 23 12:25 bin

drwxr-xr-x 2 zabbix zabbix 4096 Sep 23 12:32 log

drwxr-xr-x 4 zabbix zabbix 4096 Sep 23 14:52 scripts

drwxr-xr-x 2 zabbix zabbix 4096 Sep 23 14:54 conf

drwxr-xr-x 2 zabbix zabbix 4096 Sep 23 14:54 var

drwxr-xr-x 2 zabbix zabbix 4096 Sep 25 10:08 tmp

bash-4.1$ tar cvf zabbix_install.tar zabbix/

Ahora que ya tenemos nuestro fichero .tar vamos a distribuirlo, desempaquetarlo, configurarlo y arrancarlo con una sola línea de Shell, el problema es que si nuestra lista de hosts es muy larga (yo lo he probado con más de 100 servidores) vamos a tener que insertar nuestra contraseña en cada primera iteración, esto solo lo hacemos una vez porque el comando “ssh-copy-id” no da opción a introducirla .

Para ello creamos un fichero “hosts.txt” que contenga todas las IP’s donde vamos a instalar el cliente y ejecutamos lo siguiente:

ssh-keygen && for host in $(cat hosts.txt); do ssh-copy-id zabbix@$host; done

Ahora , después de meter una vez la contraseña por host, tenemos intercambiadas nuestras claves y podremos logarnos en los host remotos sin tener que meter la contraseña.

Vamos a instalar el agente

for host in $(cat hosts.txt); do scp zabbix_install.tar zabbix@$host:/home/zabbix/; done

for host in $(cat hosts.txt); do ssh “$host” “tar xvf zabbix_install.tar; echo Server=$host >> /home/zabbix/conf/zabbix_agentd.conf; echo ServerActive=$host >> /home/zabbix/conf/zabbix_agentd.conf; /home/zabbix/bin/zabbix_agentd –config / home/zabbix/conf/zabbix_agentd.conf” >”output.$host”; done

Y ya lo tenemos instalado en todos nuestros servidores, con el nombre de host en el campo Server y ServerActive.

Espero que os guste

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s